Note that there are some explanatory texts on larger screens.

plurals
  1. POPython instrument drivers
    primarykey
    data
    text
    <p>I am an experimental physicist and am a big enthusiast of <a href="http://en.wikipedia.org/wiki/Python_%28programming_language%29" rel="nofollow noreferrer">Python</a>.</p> <p>I find it great for data analysis and scripting, and I actualy also use it to interface laboratory instruments (network analyzer, scopes, signal analyzers, and signal generators...). I think Python would be a very serious competitor for <a href="http://en.wikipedia.org/wiki/MATLAB" rel="nofollow noreferrer">MATLAB</a> in my field if there would exist a nice library incorporating instrument drivers.</p> <p>Up to now, I have been using several strategies to interface them directly from my <a href="http://en.wikipedia.org/wiki/IPython" rel="nofollow noreferrer">IPython</a> session:</p> <ul> <li><p>Using the library pyVisa, which is nice, working for the large majority of devices, but a little bit low-level, and requires an extra layer of programming to expose useful functions to the user.</p></li> <li><p>I have been able recently to use IVI-COM or .NET drivers using pythondotnet (not <a href="http://en.wikipedia.org/wiki/IronPython" rel="nofollow noreferrer">IronPython</a>, which lacks <a href="http://en.wikipedia.org/wiki/NumPy" rel="nofollow noreferrer">NumPy</a>/<a href="http://en.wikipedia.org/wiki/Matplotlib" rel="nofollow noreferrer">Matplotlib</a>... libraries). This solution is obviously the most satisfying one because the IVI drivers are already quite high level, and they are usually provided by the vendors and instruments from different vendors are then interchangeable.</p></li> </ul> <p>My first question is a rather technical one: I read everywhere that <a href="http://en.wikipedia.org/wiki/Component_Object_Model" rel="nofollow noreferrer">COM</a> objects are integrated in the .NET framework and that you can use COM objets diretly in .NET. In my case, I'm able to use COM objects by importing the comtypes module (see <a href="http://code.activestate.com/recipes/578089-using-iviscope-instrument-driver-with-python/" rel="nofollow noreferrer">http://code.activestate.com/recipes/578089-using-iviscope-instrument-driver-with-python/</a>) and <code>dotnet</code> with <code>clr</code> from pythondotnet, but I simply don't understand how to access those COM objects with the <code>clr</code> module. Can someone explain the link between COM and .NET?</p> <p>Also, I am always a little bit confused, how do I know, when I have a DLL file, if this is containing a .NET module or not, and if I can open it with version 4.0 of .NET (I am a complete beginner in these framework issues and a link to the proper documentation would be perfectly fine)?</p> <p>The second question is, more generally, is there not a module that would already gather a larger number of drivers for different instruments in a unified manner? It seems to me like we must be thousands of people working on the same issues.</p> <p>I recently fell on the module lantz <a href="http://lantz.glugcen.dc.uba.ar/" rel="nofollow noreferrer">http://lantz.glugcen.dc.uba.ar/</a>. Unfortunately, this is in Python 3.0, while I am still using Python 2.7 (with the pythonxy distribution for Windows). Moreover, I am a bit afraid by the fact that this project is not trying to implement the IVI recommendations, which would be a good starting point.</p> <p>Any comment or link to a relevant source of information would be more than welcome.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload