shedepe
22.12.2011, 12:24
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 ?
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 ?