我想在变量中保存imei号(固定大小为15个字节),并且还想比较小于12的信号强度是失败的,但是不起作用?
我希望将imei保存为变量或列表中的123456789880242。
这是我在UART流中获得的输出。
b'imei_123456789880242\n'
b'test_signal_31\n'
问题:有时候uart会吐出额外的xfe
个字节,但不知道如何清除它。
b'\xfeimei_868183032880242\n'
b'test_signal_31\n'
如何存储UART流的第一行?保存以新行结尾的每一行非常容易。但是我做错了事,无法弄清楚?
我手动进行了尝试,得到了想要的东西,但是当我在while循环中实现时,没有得到任何响应。
a = b'imei_868183032880242\n'
a=a.decode()
a.split('\n')
输出:['imei_868183032880242', '']
对于字节字符串操作我还是一个新手,任何学习的资源都是值得的。
代码:
IMEI=b'imei_'
IMEI_E=b'\xfeimei
FTEST1_GSM_SIGNAL=b'test_signal_12\n'
def uart1_serial_read(uart1):
uart1_result = []
device = serial.Serial(uart1, baudrate=115200, bytesize=8, parity='N', stopbits=1,
timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
print('UART1: %s ' % device.name)
run = True
while run:
data=device.readline()
print(data)
if IMEI or IMEI_E in data:
print('Parsing imei')
uart1_result=data.decode()
uart1_result.split('\n')
print(uart1_result)
if (data > FTEST1_GSM_SIGNAL):
TEST1_GSM_SIGNAL_STATUS='PASS'
if (data < FTEST1_GSM_SIGNAL):
TEST1_GSM_SIGNAL_STATUS='FAIL'
if (data == TEST_END):
print("TEST DONE *****")
run = False