我是一名实验物理学家,是
Python的大爱好者.
我发现它非常适合数据分析和脚本编写,我也可以用它来连接实验室仪器(网络分析仪,示波器,信号分析仪和信号发生器……).
我认为如果存在一个包含仪器驱动程序的漂亮库,Python将成为MATLAB领域非常重要的竞争对手.
到目前为止,我一直在使用几种策略直接从我的IPython会话接口:
>使用pyVisa库,它很好,适用于大多数设备,但有点低级,需要额外的编程层来向用户公开有用的功能.
>我最近能够使用pythondotnet(不是IronPython,缺少NumPy/Matplotlib …库)使用IVI-COM或.NET驱动程序.这个解决方案显然是最令人满意的解决方案,因为IVI驱动程序已经处于相当高的水平,并且它们通常由供应商提供,来自不同供应商的仪器可以互换.
我的第一个问题是技术问题:
我到处读到COM对象集成在.NET框架中,并且您可以在.NET中直接使用COM对象.在我的例子中,我可以通过导入comtypes模块(参见http://code.activestate.com/recipes/578089-using-iviscope-instrument-driver-with-python/)和dotnet与pyrondotnet中的clr来使用COM对象,但我根本不明白如何使用clr模块访问这些COM对象.有人可以解释COM和.NET之间的联系吗?
此外,我总是有点困惑,我怎么知道,当我有一个DLL文件,如果它包含一个.NET模块,如果我可以用.NET 4.0版本打开它(我是一个完整的这些框架问题的初学者和正确文档的链接会非常好吗?
第二个问题是,更一般地说,没有一个模块可以统一收集不同仪器的大量驱动程序吗?在我看来,我们必须成千上万的人在处理同样的问题.
我最近落在模块lantz http://lantz.glugcen.dc.uba.ar/上.
不幸的是,这是在Python 3.0中,而我仍在使用Python 2.7(使用Windows的pythonxy发行版).此外,我有点害怕这个项目不是试图实施IVI建议,这将是一个很好的起点.
任何对相关信息来源的评论或链接都将受到欢迎.