I am an experimental physicist and a great Python enthusiast.
I think this is great for data analysis and scripting, and I also use it for the interface of laboratory instruments (network analyzer, areas, signal analyzers and signal generators ...). I think Python would be a very serious competitor for MATLAB in my area if there was a good library that included tool drivers.
So far, I have used several strategies to interact directly with my IPython session:
Using the pyVisa library, which is nice, works on most devices, but is a bit low-level, and requires an additional level of programming to provide useful functions to users.
Recently, I have managed to use IVI-COM or .NET drivers using pythondotnet (not IronPython , which is what NumPy / Matplotlib lacks ... libraries). This solution is obviously the most satisfactory, because the IVI drivers are already quite high level, and they are usually provided by suppliers, and tools from different suppliers are then interchangeable.
My first question is pretty technical: I read everywhere that COM objects are integrated into the .NET platform and that you can use COM objects directly in .NET. In my case, I can use COM objects by importing the comtypes module (see http://code.activestate.com/recipes/578089-using-iviscope-instrument-driver-with-python/ ) and dotnet using clr from pythondotnet but I just donβt understand how to access these COM objects using the clr module. Can anyone explain the relationship between COM and .NET?
Also, I'm always a little confused how do I know when I have a DLL file if it contains a .NET module or not, and if I can open it using version 4.0.NET (I am a complete newbie to these problems with base, and a link to the correct documentation will be perfectly fine)?
The second question: in general, is there a module that already collects more drivers for different tools in a unified mode? It seems to me that we should be thousands of people working on the same problems.
I recently fell on the lantz module http://lantz.glugcen.dc.uba.ar/ . Unfortunately, this is in Python 3.0, while I'm still using Python 2.7 (with the pythonxy distribution for Windows). Moreover, I am a little afraid of the fact that this project is not trying to implement the IVI recommendations, which would be a good starting point.
Any comment or link to the appropriate source of information will be more than welcome.
Samuel
source share