Я использую pyserial для записи и чтения между двумя Raspberry Pi через UART.
Raspberry pi 1: отправить данные на Raspberry pi 2
while 1:
ser=serial.Serial('/dev/ttyAMA0')
if not ser.isOpen():
ser.open()
msg=raw_input('RPi 1 send:')
ser.write(msg)
ser.close()
Raspberry pi 2: получение данных от Raspberry pi 1
while 1:
ser=serial.Serial('/dev/ttyAMA0' ,timeout=0)
if not ser.isOpen():
ser.open()
data=ser.read(1024)
if data.__len__()>0:
print 'RPi 2 receive:',data
ser.close()
Я запускаю оба кода.
и отправить данные
RPi 1 send : Hello
и получать данные
RPi 2 receive : Hello
Но если RPi 1 отправляет данные более 8 символов
Например
RPi 1 send : Hello Raspberry pi NO.2
Результат
RPi 2 receive: Hello Ra
RPi 2 receive: spberry
RPi 2 receive: pi NO.2
Это моя проблема. Потому что я хочу, чтобы он получил вот так
(RPi 2 получает: Hello Raspberry pi NO.2) # показать только одну строку.
и если отправить (более 8 символов) снова, он появится в новой строке.
Какой код соединить его в одну строку? или другой способ сделать это? :)