用于不同usbtmc后端的通用python接口

universal_usbtmc的Python项目详细描述


python的通用usbtmc包

universal_usbtmc是为了修复usbtmc的混乱 python的实现。

这个项目为不同的方法提供了一个统一的接口/ 实现(“后端”)与USBTMC设备(“仪器”)对话。 这允许您编写非常独立于平台的代码。

它还配有一个交互式usbtmc外壳。

您可以在 您的软件:

如前所述,您将自动获得大量的平台 独立性,因为任何操作系统都至少支持其中的一些 后端。

安装

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-usbtmcPyUSB

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

后端应该在所有操作系统上工作。

pyserial

此后端使用PySerial来 通过rs232连接到您的设备。在某些设备上,这更稳定 而不是usbtmc连接。

usbtmc-shell --backend pyserial ASRL::/dev/ttyUSB0,9600::INSTR

当然,你需要安装 PySerial先!后端工作 在所有操作系统上。

资源

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
html解析JSoup触发“java.nio.charset.IllegalCharsetNameException:iso88591”   java无法通过internet连接到ServerSocket   文本的java示例代码。木卫一。ReadAll   单元测试如何使用JUnit测试java代码   java如何从Edifact d96a读取交货日期。txtfile?   java将每次运行后的输出更改为所有运行后的一个输出   单页应用程序的JavaSpring引导资源处理程序模式   java正则表达式,从字符串中删除“<xxxxxxx>”   java通过文档生成器提交post请求   JFrame的java未定义类型   Java SE应用程序的mysql数据库版本控制   带有透明复合SWT的java堆栈布局