Close

Odpověď na: Komunikace přes sériovou linku

Úvodní stránka Fórum Hardware Arduino Komunikace přes sériovou linku Odpověď na: Komunikace přes sériovou linku

#10463
Zbyšek Voda
Správce

Dobrý den, asi úplně nejjednodušší cesta je použít nějaký oddělovač, který vložíte vždy mezi dvě čísla – třeba byte s hodnotou 255 (0b11111111), popřípadě možná vhodnější 0. Vždycky čekáte, dokud nepřečtete znak s hodnotou 0 a potom přečtete dva byty.

Tato metoda má své mouchy – třeba si musíte ošetřit situaci, kdy i datový být má hodnotu oddělovače (0, popř. 255). Napadá mě třeba k byte před odesláním vždy přičíst 1 – potom se byte s hodnotou 0 v datových bytech nemůže vyskytnout. Po přijetí 1 zase odečtete. Tam je ale zase problém s přetečením.

Dalším způsobem by mohlo být použít redundanci – prostě byte dat pošlete vždycky dvakrát za sebou (například).

Nebo zkusit použít nějaký standardizovaný formát dat – JSON, CSV apod… To už je ale trochu „s kanonem na vrabce“ (viz http://www.zive.cz/clanky/pojdme-programovat-elektroniku-jak-to-ze-je-prumerna-webova-stranka-stejne-velka-jako-doom/sc-3-a-185860/default.aspx).

Výběr vhodného protokolu řeší například zde: http://forum.arduino.cc/index.php?topic=195224.0.