Hallo

ich sitze im Moment an der Frage wie ich einen Datenstrom, der von meinem Roboter kommt am Besten wieder in einfach zu verarbeitende Datenobjekte/pakete verwandeln kann. (möglichst effizient)
Die Daten kommen immer in der Form: (alles in eckigen Klammern entspricht jeweils einem Byte)
[Startbedingung] [ID LowByte] [ID HighByte] [Length] [ersten Datenbyte] .... [letztes Datenbyte] [Kontrollbyte] [Endbedingung]

Diese Byteabfolge soll dann in ein entsprechendes Datenobjekt zerlegt werden das inetwa so aussieht:

uint ID
byte Length
byte[] Datenbytes
byte Kontrollbyte

Meine bisherige Idee ist alle Bytes zwischen einer Startbedinung und einer Endbedingung in einen Datenpuffer (Liste) zu schreiben und mit einem extra Thread diesen Datenpuffer zu verarbeiten.
Allerdings habe ich Bedenken, dass sich dann die verschiedenen Threads in die Haare kommen und es zu inkonstenten Daten kommt.
Deshalb hoffe ich, dass bereits von euch einige vor dem selben Problem standen und mir ihre Lösung davon mitteilen können

Viele Grüße

PS. Wie berechnet man am Besten ein Kontrollbyte ?