Nun gibt mir der int bytes im receiveEvent ja die Anzahl an bytes zurück die empfangen werden. Ich würde diese nun gerne mit einem for(int i = 0; i < (bytes/2); i++){.....} prüfen lassen, damit auch die richtige Anzahl ankommen/eingeordnet werden.
Kann mir da jemand auf die Sprünge helfen? Das Einlesen der Bytes geschieht hier ja zweimal nachdem es den Buchstaben im "Case" zuordnet: Zuerst die ersten 8 bytes, dann die zweiten 8 bytes mit bitshifting nach links.
Da DP1 undefiniert ist, könnte man dir nur helfen, indem man dich beim Slave auf deine Variable bytes hinweist oder dich fragt, wofür du die while-Schleife hingeschrieben hast, aber soweit bist du ja schon (fast) selbst.
Bitshifting der eingelesenen Daten nach links natürlich um die nächsten 8 hinten an zu hängen.
Die Byteorder ist immer Buchstabe und Wert von 0 bis max. 1023 der gesendet wird. Der Buchstabe wird dann als erstes immer eingelesen und per Switch/Case zugeordnet.
Die Byteorder betrifft nur binäre Werte, keine Texte. Sie gibt an, ob das höchste oder niedrigste Byte an der niedrigen Adresse gespeichert und zuerst übertragen wird.
Nein, sizeof DP1 kennt der Compiler, sobald diese Variable definiert wurde. Hängt auch vom Compiler-target ab.
Aber wem diese Information vorenthalten wird, kann dir nicht wirklich helfen.
Der Wert von DP1 ( 0 .. 1023 ) ist mir völlig egal und wird in immer der gleichen Anzahl Bytes übertragen.
Auch vermute ich, dass der Sketch "eigentlich" richtig arbeitet, und du ihn nur verschönern willst. Da gibt es wohl aus @DrDiettrich und meiner Sicht erstmal Grundlegenderes:
Schön wäre, wenn Sender und Empfänger es absichtlich gleich machen und nicht nur zufälligerweise.