我正在尝试使用 Python 解释来自 GPS 设备的一些串行端口消息。据我所知:1)消息是ASCII 2)消息是连续流
因此我的代码是:
import serial
ser = serial.Serial('COM6',9600)
while True:
ser.close()
ser.open()
line = ser.readline()
print ('original code')
print (line)
result=line.decode(encoding='ascii',errors='strict')
print ('decoded msg')
print (result)
但是,我得到了一些非常奇怪的结果:
原始代码
b'\xb5b\x02\x10\xe0\x00\'\xe4B\x01\xd7\x06\t\x00\x00\x00t\x07\xc0\x1f\x1aA\x80g*F\xc2\x8csA\xa4\xc9P\xc4\x13\x04\x19\x03\x12\xea\x86\xa1\xcc\xc16\xc1z\x19x\xab\x93asA\xde7\x16E\x0b\x07"\x00\x00\x80T7\xb1\xee&\xc1\xc6M[\xb8K\xc1sA\xec\x02\x88D\x07\x04\x16\x03\x00\x00\xf9G\x9b\xc7+A\x19\xd1\x0e\xce\x92\x12tA\xdc\x97\xcc\xc4\x03\x04\x18\x03\x00\x80`\xa9\xb3\x0b/A\x0c\x1c\x19\xa0\x1b\x0euA2\xc2\xdf\xc4\x1b\x04\x16\x03\r\xd0\x9c\x81\x03\xa7@\xc1s-\xb2\xe9{\xc3tA\xd1AdE\x01\x07"\x00\x00\xc0/"&\x150A9\n'
Traceback (most recent call last):
File "C:/2_Task1/test2.py", line 11, in <module>
result=line.decode(encoding='ascii',errors='strict')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 0: ordinal not in range(128)
我想要做的是:1)在不丢失任何数据的情况下解码消息以将所有数据以清晰的格式存储2)知道为什么每次运行循环时代码的长度都不同