PIC18F4520, USART "LX200 Protokoll"

OP #2457131
Lesenswert?

Hallo

Ich versuche gerade eine USART Kommunikation zwischen einem PIC18F4520 
und einer Astronomie-Software herzustellen, die mit dem sogenannten 
"LX200 Protokoll" arbeitet. In diesem Protokoll wird jeder Befehl mit 
Rauten (quasi "#BefehlX#") gekennzeichnet, nur leider schickt das 
Programm gerne mal bis zu 3 Befehle gleichzeitig, was mir die Auswertung 
erschwert.

In diesen Ketten sind die einzelnen Befehle dann jeweils nur noch durch 
"#" getrennt, also z.B. "#BefehlX#BefehlY#BefehlZ#"
Außerdem ist die Länge der Befehle variabel.

Aktuell gehe ich so vor, dass ich alles was reinkommt in einem großen 
char array ablege, in diesem dann die "#" zähle, und sofern mindestens 
2x "#" im array liegen, den Befehl in ein separates kleines array 
schmeiße und auswerte. Das große array rotiere ich anschließend um die 
entsprechende Anzahl von Stellen um die entstandene Lücke zu schließen. 
Anschließend beginnt der ganze Spaß von vorn...

Kommt mir noch nicht sehr effizient vor, hat vielleicht jemand eine 
bessere Idee? Programmiert wird in C++, es stehen also alle 
Perversitäten der Stringfunktionen zur Verfügung. ;)

mfg
Vincent

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren