Mein Tip: es ist nicht verboten, sich während der Entwiclungsphase im
Code mittels eingestreuten printf einen Überblick zu verschaffen, was da
eigentlich passiert und mit welchen Werten gearbeitet wird.
Wenn dir nicht klar ist, wie ein bestimmtes Endergebnis zustande kommt,
dann musst du dir eben dieses Wissen verschaffen. Zum Beispiel, indem
man im Code zusätzliche printf einfügt, die einem dieses Wissen
verschaffen.
Zum Beispiel ist interessant, welche Werte über die Serielle
Schnittstelle reinkommen. Also geb ich mir die Bytes, so wie sie
reinkommen aus.
Zum Beispiel möchte ich gerne wissen, ob die Synchronisierung auf den
Anfang der Nachricht geklappt hat. Auch das gebe ich mir mittels printf
aus. Wenn es einen Checksum Error gegeben hat (was eigentlich nicht
vorkommen sollte), dann möchte ich das wissen und ich gebe mir auch hier
eine entsprechende Meldung aus, zusammen mit der Information wo im
Buffer die Startsequenz erneut angetroffen wurde. Zudem wird es eine
gute Idee sein, wenn ich mir am Anfang der Auswertung mal alle
empfangenen und gesammelten Bytes in einem Rutsch ausgebe, damit ich sie
mir aus dem Protokoll nicht mühsam zusammensuchen muss um sie mal
händisch den Bits zuzuordnen.
> leider sind die ausgegeben werte def. falsch ;(
lass dir mal die sizeof(DataSetBinary ) ausgeben. Die sollte eigentlich
deiner Array-Length entsprechen. Je nachdem, ob dein Compiler Padding
bytes eingefügt hat oder nicht, kann die aber auch unterschiedlich sein.