我需要从串行设备写入和读取寄存器。一切正常,但我需要将消息存储在一个变量中。例如:
instrument = minimalmodbus.Instrument("/dev/ttyUSB0", 1, minimalmodbus.MODE_ASCII, debug=True)
instrument.serial.baudrate = 9600
instrument.serial.bytesize = serial.EIGHTBITS
instrument.serial.parity = serial.PARITY_NONE
instrument.serial.stopbits = serial.STOPBITS_ONE
instrument.serial.timeout = 2
r = instrument.read_register(1, functioncode=3)
print(r)
我得到的是
MinimalModbus debug mode. Create serial port /dev/ttyUSB0
MinimalModbus debug mode. Will write to instrument (expecting 15 bytes back): ':010300010001FArn' (3A 30 31 30 33 30 30 30 31 30 30 30 31 46 41 0D 0A)
MinimalModbus debug mode. Clearing serial buffers for port /dev/ttyUSB0
MinimalModbus debug mode. Sleeping 3.71 ms before sending. Minimum silent period: 4.01 ms, time since read: 0.30 ms.
MinimalModbus debug mode. Response from instrument: ':0103020000FArn' (3A 30 31 30 33 30 32 30 30 30 30 46 41 0D 0A) (15 bytes), roundtrip time: 31.7 ms. Timeout for reading: 2000.0 ms.
0
其是正确的;我需要的是将':010300010001FArn'
和':0103020000FArn'
存储在一个变量中,可能还有预期返回的字节数。我该怎么做?我没有在文件上找到任何关于这个的东西
选项1(修改库以返回";回答";从private函数communicate到程序的变量。
选项2(将调试日志输出保存到一个变量中,并为字符串筛选此变量。