python pyvisa正在尝试从没有读取终止的设备读取可变长度数据

2024-05-19 01:40:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我能够使用miniterm.py从/向信号发生器进行读写。流中没有读取终止字符(根据设备制造商的手册)。我附加了miniterm的调试输出以显示一些事务。要让pyvisa读取任意长度的返回字符串而不终止,我缺少什么吗

---------------------------短期输出------------------

设置:/dev/ttyUSB0 9600,8,N,1 RTS:活动DTR:活动中断:非活动 CTS:非活动DSR:非活动RI:非活动CD:非活动 软件流控制:非活动 硬件流控制:非活动 串行输入编码:UTF-8 串行输出编码:UTF-8 EOL:LF 过滤器:调试默认直接

[TX::[TX:\\\\政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政局局局局局局局局局局局局局局局\ \\\\\\\\\\\\\:::::政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政政:'0']0


任何指向正确方向的指针都会有帮助。这是一种非常奇怪的装置。我尝试过的大多数操作都会以“设备正在使用”或“超时”错误结束

先谢谢你

罗宾


Tags: 字符串pydev编码信号手册字符事务
1条回答
网友
1楼 · 发布于 2024-05-19 01:40:52

下面的read_data()函数在某种程度上解决了这个问题。现在,我们来找出为什么背靠背写入会失败,除非写入之间不使用0.2秒左右的睡眠时间

def read_data(cmd):
    data=""
    byte=""
    looper = True
    dds.write(cmd)
    while(looper==True):
       try:
          byte = dds.read_bytes(1)
          data += byte.decode()
       except:
          looper = False
    return(data)

相关问题 更多 >

    热门问题