我已经针对类似问题here和here发布了几个问题,但经过周末的思考和排查,我想探索更多可能的原因,但缺乏知识。
我应该如何检查我当前的代码是否正在通过USB-RS232连接的传感器上写入任何内容。这是我的代码。
port = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=20, bytesize=8, rtscts =1,dsrdtr=1)
f_w = open('/home/ryan/python_serial_output.txt','r+')
f_o = open('/home/ryan/python_serial_parse.txt','w')
port.send_break()
sys_reply = port.read(100000)
sys_reply_str = sys_reply.decode('cp437')
print(sys_reply_str)
sys_reply_str_haha = sys_reply_str.replace("\r","")
sys_reply_str_haha = sys_reply_str_haha.replace("\n","")
i = list(sys_reply_str_haha)
if str(i[-1]) == '>':
port.reset_input_buffer()
print("ip_b_reset")
port.reset_output_buffer()
print("op_b_reset")
print(port.writable())
ip = 'CR1'
ip_en = ip.encode('cp437')
port.write(ip_en)
read_syscheck = port.read(1000)
read_syscheck_str = read_syscheck.decode('cp437')
print(read_syscheck_str)
使用相同的解码格式我尝试写入端口并应收到回复
>CR1
*[Parameters set to FACTORY defaults]*
相反,我得到了
Sensor 2009
All rights reserved.
Firmware Version: 34.11
>
ip_b_reset
op_b_reset
True
CR1
7F7FD30000000030C6A87F9978B9302....
这就是为什么我得出结论我可能不会写入传感器。
PS:数据流7F7FD30000000030C6A87F9978B9302 ....始终存在,并在超时时显示。因此,我不确定这是否是实际阅读的开始?或者只是一个随机读数。