如何将串行输入拆分为消息

问题描述 投票:0回答:1

我在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
python python-3.x serial-port pyserial
1个回答
0
投票

看来您正在尝试在两个位置之间建立聊天室。请考虑查找如何以规范的方式进行此操作:

© www.soinside.com 2019 - 2024. All rights reserved.