【发布时间】:2021-03-17 14:39:13
【问题描述】:
我有这个数字百分表:Helios-Preisser Digimet 1722-502"。它具有通过 USB 串行电缆输出读数的能力。USB 电缆末端是一个特殊的 4 针连接器,可插入卡尺和另一端的普通 USB。
虽然设备自带特殊软件,但我正在尝试编写一个基本的python库来与它通信。下面是解释数据通信协议的manuel的sn-p
我正在使用 python Serial 库,并设法与它进行一些通信。这是我目前所拥有的
import serial
ser = serial.Serial(port ='/dev/tty.usbserial-MA4LOCLF', baudrate=4800,parity=serial.PARITY_EVEN, bytesize=serial.SEVENBITS,stopbits=serial.STOPBITS_TWO, dsrdtr=True, xonxoff=True)
# press the small red button on the cable. This generates a data entry
In [77]: ser.inWaiting()
Out[77]: 8
In [78]: ser.read(8)
Out[78]: '+000.00\r'
因此,当使用插入千分表的电缆上的红色小按钮来请求数据的模式时,这非常有用
但是,还有另一种模式可以请求数据输入。这是手册中描述为“通过外围设备请求进行数据传输”的模式,其中必须将 DataRequest 引脚脉冲低至 T1(100ms 我有点想不通。我知道此模式有效,因为当您下载(仅在 Windows 中)设备随附的软件时,您可以发送该请求。所以必须有一种方法可以用 python 串行库模拟这个请求,但我被卡住了,我什至不知道如何继续。
任何帮助,将不胜感激。
谢谢In [79]: ser.write('0\r')
Out[79]: 2
In [80]: ser.inWaiting()
Out[80]: 0
【问题讨论】: