Reinhard T. schrieb:
Ich übertrage die Werte eines EKG Moduls und einzelne Werte sind
manchmal um ca. 50 Bit nach oben oder unten versetzt.
Du solltest nicht Rohdaten (d.h. einfach irgendwelche Bytes) übertragen, sondern ein /Protokoll/ verwenden, mit dem Du erkennen kannst, wo zusammengesetzte Werte anfangen und ob es Übertragungsfehler gibt.
Eine einfache Variante davon wäre die Übertragung als Klartext mit Dezimalzahlen, und als Trennzeichen z.B ein Zeilenvorschub.
Um den Wert 512 zu übertragen, müsstest Du statt der beiden Bytes 0x02 0x00 die Zeichenfolge 512\n, also die Bytes 0x35 0x31 0x32 0x0d verwenden.
Da Ziffern nur im Bereich zwischen 0x30 und 0x39 liegen können, ist klar, daß jedes andere empfangene Byte entweder das Trennzeichen zum Abschluss einer Übertragung (0x0d) oder aber ein Übertragungsfehler sein muss.
Dieser Übertragung kann man auch mit einem einfachen Terminalprogramm wie z.B. Teraterm /zusehen/.