seriova komunikacia

balu balu na k-net.fr
Neděle Srpen 6 17:12:47 CEST 2017


dakujem, to dole vyzera trochu sofistikovanejsie, ale tiez uzitocne.

Ma to byt taky maly analogovy displej ku digitalnym datam. Bude to 
ukazovat vybrane parametre mojich geretov v robote, nie viac ako 200 
rucickovych merakov, pole anunciatorov a tak :-)

Este by sa hodili nejake velke priemyselne indikatory, velmi sa mi pacia 
tie polgulove 1-2 palcove s kovovym ramom. Teraz sa to uz nerobi, vsetko 
z plastu... Keby sa niekomu valalo na policke a chcel by vyhodit tak by 
ma urcite zaujimali :-)

b.





On 06/08/2017 13:56, František Burian wrote:
> Ahoj Danieli,
>
> Odpověď závisí na tom zdali budeš chtít přenášet binární data.
>
> Pokud ne, a celý protokol bude jen text, posílal bych zprávy ve stylu:
> "name=value\n", v klientech kontroloval jediný separační znak \n, když
> přijde, provedl bych akci založenou na předchozím přijatém textu (nemusí
> být name=value. může být i signalizace stavu, např
> "black_hole_detected"). Toto podporuje i mezery v názvu proměnné.
>
> Pokud budeš chtít přenášet i binární RAW data, tak pokud nevadí že je
> expanduješ do HEX, posílal bych je v hex blobu. Pokud vadí (kvůli
> velikosti), zvolil bych protokol SLIP, tedy 0xC0 jako separátor zpráv,
> 0xDB 0xDC jako "symbol" 0xC0, symbol 0xDB 0xDD jako symbol 0xDB a pro
> separaci name/value symbol 0xDB 0xDE, zpracování shodné jako v
> předchozím případě, s tím rozdílem že můžeš posílat binární data přímo a
> nestaráš se o délku - tu ti "odseparuje" ten symbol 0xC0 resp 0xDB 0xDE
>
> Já osobně bych se ale přimlouval k textu odděleném \n protože se ti to
> bude lépe ladit - nachrlit předpřipravený text ze souboru na sériovku
> zvládneš, a co v tom souboru bude za parametry si pěkně přečteš.
>
> Asi bych dal feature že pokud klientská stanice objeví první znak zprávy
> jako 0x0A tak ho zahodí, pak to bude fungovat i na windows. (nebo
> poslední znak zprávy 0x0D - teď zrovna nevím zdali \n je CR nebo LF na
> linuxu)
>
> Pokud počítáš s chybami na lince, je potřeba přidat nějaké CRC/checkcum
> ale tím se vše zkomplikuje.
>
> Pokud budeš chtít mít proměnné strukturované, tak name=value bych
> nahradil JSONem (např:
>
> "module1=[power=on,amps=3.14159,warn='OVERLOADED']\n"
>
> Franta


Další informace o konferenci Hw-list