我在Raspberry Pi上有2个串行端口。当前,代码正在从端口1读取数据并将其写入端口2,反之亦然。我想做的是根据两个指定字符(例如#或!)将我从两个端口读取的输入拆分为不同的消息(字符组)
此外,如何最终修改当前的“ for”循环,以便可以拆分两个端口的消息,当前代码仅用于从1个端口拆分数据。
我已经尝试过split(),它给出了类型错误。原因可能是串行输入可能是其他类型
import serial
ser1 = serial.Serial('/dev/ttyUSB0', timeout=2)
ser2 = serial.Serial('/dev/ttyUSB1', timeout=2)
print (ser1)
print (ser2)
ser1_list = []
ser2_list = []
while (True):
data1 = ser1.readlines()
data2 = ser2.readlines()
if data1 or data2:
ser1_list.extend(data1)
ser2.writelines(data1)
byte_split1 = ser1_list.split("1")
ser2_list.extend(data2)
ser1.writelines(data2)
byte_split2 = ser1.split('1')
for x in byte_split1:
print(x)
else:
break
ser1.close()
ser2.close()
[预期结果示例:如果输入是:
abcde#fghi#jklmnop#
它将输出:
abcde
fghi
jklmnop
看来您正在尝试在两个位置之间建立聊天室。请考虑查找如何以规范的方式进行此操作: