Serielle Schnittstelle Auslesen probleme

Musst du das alles per Hand eintippen, oder macht das ein Programm?

EDIT: ok, jetzt hast du es dazu geschrieben :slight_smile:

Bei "Config:100,...." musst du halt jedesmal das Wort davor schreiben. Kein Problem wenn das automatisch kommt, aber per Hand vielleicht nervig. Man kann das schon so machen dass du wirklich in einem anderen Modus bist, wie du es am Anfang beschrieben hast.

So grob:

boolean stateConfig;

void loop()
{
   char* text=receiveBuffer();
   if(text != NULL)
   {
          if(stateConfig == false)
          {
                 if (strcmp(text,"Name:")==0)
                     stateConfig = true;
          }
          else
          {
                //hier muss man jetzt nur noch auf "Ende" abfragen und sonst Zahlen parsen
          }
   }
}

Wenn dann "Ende" kommt setzt man stateConfig wieder auf false und es ist wieder so wie am Anfang.

Dann entfällt das mit strncmp() oder strstr() und du braucht nur noch den strtok() Teil.

Und vielleicht eine Fehlerbehandlung die falsche Eingaben abfängt. Das ist etwas komplizierter. Vielleicht die Variablen mit negativen Werten vorbesetzten und dann abfragen ob alle positiv sind. Dann weiß man man dass alle korrekt eingegeben wurden.

Und so ist es etwas besser:

     if (strcmp(text,"Name:")==0)                                               // Befehl prüfen "Name:"
       {Serial.println(Name);}                                                     // Ausgabe
     else if (strcmp(text,"Firmware:")==0)                                           // Befehl prüfen "Firmware:"

Du musst nicht immer alle Vergleiche machen. Wenn einer gültig ist, kann man abbrechen. Ist aber ne Kleinigkeit.