首页 > 解决方案 > 通过 ascii 与 USB 设备通信

问题描述

我正在 Jupyter 笔记本中编写一些 python 脚本来连接用于施加电压和测量电流的 USB 设备。它是定制的,我所要做的就是它以 ASCII 响应。

我尝试了 pyserial,但没有运气,然后在 pyvisa 上取得了部分结果。但首先是一些上下文,该设备可以用 Tera 术语进行通信,但我正在尝试使用 python 自动收集数据。

总的来说,我可以向它发送命令并返回值。例如,如果我发送'n',它会显示'id# #of points used #average' tera term 'n' 例如。

到目前为止,在 Python 中,我的代码如下所示:

import numpy as np
import pyvisa as pyv
import time
import os
import sys


rm = pyv.ResourceManager()

# look for dev
rm.list_resources()

#get name
dev_id = rm.list_resources()[1]

#set up
dev = rm.open_resource(dev_id)

send = 'n'
for i in range(20):
    print(dev.query_ascii_values(send,'s'))

当我尝试发送 'n' 时,它每隔一段时间就会返回并出错,当它确实捕获了这些值时,它并不是我所期望的整行。第一个“n”命令通常返回“#id > #average”,只有当它拾取时似乎会拾取平均值。 我的 send 'n' if 循环拾取的值。

我对此感到很困惑,制造该设备的人不知道python,而且我不知道任何其他编码语言。如果有人能指出我正确的方向,将不胜感激。

编辑1:

退货是什么?? 0\r\n意思?设备不知道我在问什么?或者设备没有响应?

标签: pythonusbasciidata-collection

解决方案


推荐阅读