用于不同usbtmc后端的通用python接口
universal_usbtmc的Python项目详细描述
python的通用usbtmc包
universal_usbtmc是为了修复usbtmc的混乱 python的实现。
这个项目为不同的方法提供了一个统一的接口/ 实现(“后端”)与USBTMC设备(“仪器”)对话。 这允许您编写非常独立于平台的代码。
它还配有一个交互式usbtmc外壳。
您可以在 您的软件:
- 通过Linux内核模块的USBTMC
- USBTMC通过 python-usbtmc(使用 libusb)
- TCP套接字通过 socket(远程 连接,例如通过 rpi-usbtmc-gateway)
- VXI-11通孔 python-vxi11(一个 基于rpc的tcp连接,不是真正的usbtmc)
- RS-232通过PySerial
如前所述,您将自动获得大量的平台 独立性,因为任何操作系统都至少支持其中的一些 后端。
安装
pip install universal_usbtmc
用法
此软件主要用于其他软件,而不是人类。
但是,它带有一个名为
usbtmc-shell。你可以用它来测试不同的后端
为你工作。(或者尝试与你刚买的新设备通话。)
关于如何将其与不同的
后端。
后端
要与您的设备通信,可以使用以下后端:
- linux_kernel
- python_usbtmc
- tcp_socket
- python_vxi11
- pyserial
后端详细信息
linux_kernel
使用Linux内核模块usbtmc
可以找到内核模块的源代码
here.
若要使用此后端,必须使用Linux内核并具有 编译并加载内核模块。查找设备/dev/usbtmc0 以检查是否检测到USBTMC设备。
您可以运行usbtmc shell来检查是否一切正常:
usbtmc-shell --backend linux_kernel /dev/usbtmc0
python_usbtmc
使用基于libusb-/pyusb的 python-usbtmc。
下面是如何使用USBTMC外壳:
usbtmc-shell --backend python_usbtmc USB::0x1ab1::0x0588::INSTR
要使用后端python_usbtmc,需要安装 要求 python-usbtmc和 PyUSB:
pip install python-usbtmc pyusb
后端在mac os x和linux上工作。
tcp_socket
此后端通过TCP套接字连接到您的仪器。这是怎么回事 如果仪器本身没有以太网端口,有可能吗?你可以 把它放在网上 rpi-usbtmc-gateway!
要使用tcp_socket后端连接,请运行:
usbtmc-shell --backend tcp_socket 192.168.0.21 # or usbtmc-shell --backend tcp_socket TCPIP::192.168.0.21::5025::SOCKET
此后端没有外部依赖项,可用于所有操作 系统。
python_vxi11
此后端通过VXI-11连接到您的仪器。这不是USBTMC 但在某种程度上,与scpi命令的接口通常是相同的。
使用python库 python-vxi11。
使用^ {EM1}$$PythOnVx11 < EEM>后端连接,运行:
usbtmc-shell --backend python_vxi11 192.168.0.21 # or usbtmc-shell --backend python_vxi11 TCPIP::192.168.0.21::INSTR< P>使用此后端,安装Python VXI:
pip install python-vxi11
后端应该在所有操作系统上工作。
资源
- 具有类似目的的项目是 python-ivi