WIe liest man Bytestreams an Serial ein

Hier ein Beispiel zum Verwenden von memcpy und memcmp ("MemoryCopy" und "MemoryCompare"):

// Beispiel für memcpy und memcmp ("MemoryCopy" und "MemoryCompare")
// Erkannt werden soll, wo 2 mal hintereinander die gleiche Zeichenkette vorhanden ist.
 
// Beispieldaten: (Index 3 und 6 sind gleich wie der Vorgänger)
byte buffer[][9] = { "ABCDEFGHI", "abcdefghi", "123456789", "123456789", "abcdefghi", "RSTUVWXYZ", "RSTUVWXYZ", "binAmEnde" };

byte prevArray[9];
byte currentArray[9];

void setup() {
  Serial.begin(9600);

  for (int i = 0; i < 8; i++) {
    // Speicher kopieren mit memcpy:
    // usage: void * memcpy ( void * destination, const void * source, size_t num );
    memcpy (currentArray, buffer[i], 9);    // 9 Zeichen kopieren

    // Speicher vergleichen mit memcmp
    // usage: int memcmp ( const void * ptr1, const void * ptr2, size_t num );
    int n = memcmp ( prevArray, currentArray, 9);    // 9 Zeichen vergleichen

    // Ausgabe zur Kontrolle:
    Serial.print(i);
    if (n == 0) {
      Serial.println("  ist gleich wie das vorige Array");
    }
    else {
      Serial.println("  ist neu");
    }
    
    memcpy (prevArray, currentArray, 9);   // Speicher kopieren
  }
}

void loop() { }

In diesem Beispiel wird zwar nichts von der seriellen Schnittstelle eingelesen (um es einfacher zu halten) - aber das hast du ja schon gelöst.

Weiterführende Links: :slight_smile:
http://www.cplusplus.com/reference/cstring/