2015-01-12 2 views
0

Это мое первое сообщение здесь, так что простите меня, если некоторые вопросы могут оказаться вне сферы видимости, но в основном я пытаюсь написать свою собственную программу для передачи сообщений от малины Pi до светодиодный прокручиваемый знак через последовательную связь (USB на Pi -> адаптер RS232 -> светодиодный знак).Moving Sign Communication Protocol v1.2 with Raspberry Pi

Я не очень хорошо знаком с последовательной связью в целом, но я пытаюсь использовать библиотеку PySerial на Pi (http://pyserial.sourceforge.net/pyserial.html) в формате Moving Sign Protocol V1.2 (http://www.brgprecision.com/pdffiles/Protocol12.pdf).

Вот мой код на Python, пока нет ошибок, но подключенный знак не получает никаких данных.

import serial 
#default port is /dev/tty/USB0 
#portname, baudrate, timeout 
port = serial.Serial('/dev/ttyUSB0', 9600) 
port.open() port.write('0x00\0x01\"FF"\"03"\0x02\'A'\'A'\'A'\'2'\'2'\'7F'\'0100'\'1200'\'000'\'1'\"OMFG"\0x03\"0564"\0x04') 
port.close() 

В принципе, я не знаю, как разобрать сообщение Im пытается записать в соответствующие пакеты последовательных данных. Должен ли я отправлять протокол и текстовое сообщение в один проход, как указано выше? Или я должен разобрать каждое из полей и отправить их по отдельности, как:

port.write('01') # start of head 
port.write('46') # pc address 
port.write('46') # number 1 display 

ect... 

я должен отметить, что я и понюхал USB последовательной связи на моем компьютере и может подтвердить это серийный информация верна, я просто не реальный идеи, как использовать его на RPi. Любая помощь будет высоко ценится!

ответ

0

вы хотите использовать байты

0x00 == 0 == "\x00" 

, который не является такой же, как "0x00", который действительно "\x30\x78\x30\x30" что 4-х символов не единственный байт, что вы надеетесь достичь

так, чтобы отправить часть

ser.write("\x00"*5) # 5 null bytes 

отправить SOH часть

ser.write("\x01") 

Я не уверен, что адрес вещи ... но мы надеемся, что дает представление о

+1

Спасибо вам Joran, из-за вашего понимания о формате байт (в частности, \ х префикс перед каждым до свидания) Я успешно общался с моим знаком. Большое спасибо! – JBawlz