Bei 9600 Baudrate kommt ein Byte ca alle 1 mS. Um 14 Byte zu empfangen braucht es ca 15mS. Du mußt dem Arduino Zeit geben die Bytes zu empfangen bevor Du sie ausliest. Ein delay(20); vor char inByte = Serial.read(); müßte genügen.
Grüße Uwe
Du liest Zeichen und hängst sie an einen leeren String an, der daraufhin den Inhalt
"7,522451,285,3" haben soll ?
Na gut, wenn die Zeichen so schnell kommen, dass zwischendrin nie Serial.available() 0 zurückliefert, kann es evtl. gehen.
Bei 9600 Bd kriegst du ca. ein Zeichen je ms. Üblicherweise sollte eine leere loop() schneller sein...
Ich würde es so machen, dass bei Empfang des ersten Zeichens ( '7' ) so lange gewartet wird, bis alle Zeichen da sein müssten ( ca 20 ms ), diese von Text in Zahlen gewandelt werden und dann das entsprechende sendCode Kommando gesendet wird.
Zur Synchronisierung würde ich auch Zeilenende-Zeichen mitsenden, auslesen und dadurch das sendCode Kommando starten ...