ako naprogramovat

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pondělí Duben 15 09:37:32 CEST 2024


Tohle asi nejcasteji resi meziznakovy timeout, viz treba Modbus RTU, kde 
se teda podle nej i identifikuje konec paketu, ale normalne pri vysilani 
definuju nejaky minimalni rozestup mezi pakety a u prijmu pri prodleve 
delsi nez ... restartuju automat na zacatek paketu. Casto ma pro to UART 
i HW podporu.
Dne 15.04.2024 v 9:33 David Obdrzalek napsal(a):
> Taky myslím. Pokud přečtu vše od B5 62 až po checksum a ten je v pořádku, tak
> považuji paket za korektní a nečekám na další paket.
> (To bych taky mohl následně dostat nějaký nesmysl, který by mi tím pádem zabil ten
> první, korektně přijatý, paket)
>
> Taky může ale nastat situace, že přijde B5 62 a pár bajtů prvního paketu a pak se
> komunikace odmlčí (a zbytek prvního paketu nepřijde), pak B5 62 a zbylých 30 bytů
> druhého paketu v pořádku včetně checksumu. Takže kdybych se syncnul na tu první
> hlavičku a přečetl následujících 30 bytů, tak sežeru i začátek druhého paketu (ale
> ne celý), checksum nebude souhlasit, což je správně, ale následuje zbytek druhého
> paketu, který musím odignorovat až do jeho konce a do další signatury. (tady opět
> čeká čert, který do druhého paketu jako platná data dá zase signaturu B562, na
> kterou se zase syncnu a začnu číst paket, ale ten samozřejmě zase bude mít špatný
> checksum ... a tak dále až do skonání světa). Asi jediné řešení beze změny protokolu
> nebo způsobu přenosu se mi zdá neustále plovoucím způsobem zkoušet chytat signaturu
> a mít případně rozjetých víc čtení...
>
> D.O.
>
> On 15 Apr 2024 at 6:58, Martin Záruba wrote:
>
>> Tomu nerozumím. Pokud mám na konci paketu checksum, pak jakmile přečtu
>> odpovídající (a může být i variabilní podle obsahu, ale zjistitelný)
>> počet znaků a souhlasí mi checksum, je paket platný. Pokud jsou za ním
>> nesmysly, nezajímají mě až do počátečního "B5".
>>
>> Martin Záruba
>>
>> Dne 15.4.2024 v 0:40 Zuffa Jan napsal(a):
>>> Ja k tomu dodam len, ze je potrebne mysliet aj na "false sync"
>>> to znamena ze ked paket zacina B5 tak ked sa docita zvysok dat
>>> je mozne povazovat ho za platny az ked dalsi zacina tiez bajtom B5 inak
>>> moze dojst k situacii kedy je zaciatok zly a potom uz nesedi nic. Netreba sa spoliehat
>>> na to ze komunikacia  a zariadenie su  idealne. V mojom profesionalnom zivote som
>> sa stretol uz velakrat s tym, ze na stole vsetko fungovalo ale v realnych
>> podmienkach nie.
>>> J.
>>>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list