WIe liest man Bytestreams an Serial ein

Serenifly:
1.) Das Startzeichen und Endzeichen will man meistens nicht abspeichern
2.) Man sollte überprüfen ob man noch innerhalb der Array Grenze ist

  1. Ja stimmt natürlich, um nicht über das Array-Ende hinauszuschreiben. Dann könnte es eventuell so aussehen:
// Einlesen einzelner Zeichen und Anhängen an ein Char-Array.
// True, wenn das Endzeichen erkannt wurde.
bool read_serial() {
  static byte index;
  while (Serial.available()) {
    char c = Serial.read();
    if (c == 49) {   // das Starzeichen
      index = 0;
    }
    if (index < SERIAL_BUFFER_SIZE) {
      serial_buffer[index] = c;
      index++;
    }
    if (c == 50) {   // das Endzeichen
      return true;
    }
  }
  return false;   // Endzeichen noch nicht erreicht
}

Was Start- und Endzeichen betrifft ist mir eigentlich nicht ganz klar wie das gemeint ist.

Gazello:
das ist kein Ascii sondern eine dec "0" null.

Wenn das alles Dezimalzahlen sind, dann handelt es sich ja nicht um ein sondern um jeweils zwei Start- und Endzeichen. Die Endzeichen wären dann ja "fünf null".
Oder ist ein "Bytewert" gemeint?
Ich glaube, da wird einfach noch mehr Information gebraucht.