Versuche doch mal nachzuvollziehen was gemacht wird.
1.) Es wird eine Zeile eingelesen bis zu einem Endzeichen
2.) Wenn die Zeile angekommen ist, wird sie ausgewertet
In serialBuffer steht immer nur eine Zeile. Bisher sind das zwei Werte pro Zeile. Also muss Platz sein für: Anfangszeichen (wenn vorhanden) + Werte + Delimiter. Das Endzeichen wird nicht abspeichert.
Der Code aus #52 sendet das:
A-10,-100
B10,100
A-20,-200
B20,200
...
Jeweils mit einem CR + LF am Ende
Du könntest auch erst alle A Werte senden und dann alle B Werte. Oder beliebig anders. Da man jedesmal auf 'A' oder 'B' abfragt landet dass dann immer im richtigen Array.
Und es stehen eben jedesmal nur zwei Werte in einer Zeile. Man könnte auch A und B zusammen in einer Zeile senden. Aber das macht nur die Auswertung komplizierter und der Puffer müsste evtl. größer sein. Aber so hat man A in einer Zeile und B steht in einer anderen Zeile.
Du musst dich nur für ein Format entscheiden und den Parser entsprechend anpassen. Optionen gibt es da viele. Aber so ist es wahrscheinlich am einfachsten
Werde das auf die Art und weise machen mit dem altserial auch für den Sender, sodass ich sehen kann, was wirklich rausgesendet wird.
Das geht aber nicht für XBee! XBee sendet fest auf Serial. Es ist aber gar kein Problem das rumzudrehen und mit Serial zu senden und die Daten per altSerial und FTDI Adapter zum PC zu senden. Deshalb habe ich die zwei #define Zeilen einfügt. Damit muss am Code sonst nichts anpassen.
Ich würde dir aber mal raten die XBee Module erst mal wegzulassen und die Daten wie in dem Beispiel oben fest vorzugeben. Das Format kannst du auch ruhig anpassen. Aber du hast so eine Fehlerquelle weniger. Wenn das geht kann man weiter gehen auf XBee + feste Werte. Und am Ende dann die Sensoren dran.
Oder wenn du sicher bist dass XBee richtig geht (was glaube ich der Fall ist), dann nimm gleich XBee, aber erst mal ohne die Sensoren.
Außerdem beachten, dass der Test-Code Integer verwendet. Aber das lässt sich auch leicht auf Float umstellen. Man muss nur die Datentypen ändern und atoi() gegen atof() austauschen