Frage zu Serial.find()


hallo,

ich habe meinen mega auf der serial1 mit meinem neuen spielzeug (esp8266 wifi-modul) gekoppelt.
wenn ich einen at-befehl raus sende, dann bekomme ich auch wieder eine antwort zurück.

ich benutze jetzt die serial1.find funktion, um abhängig von der antwort etwas zu steuern
also in etwa so:
code: [select]
   if(!serial1.find("ok")) {
      serial.print ("error");
      }
   else
      {
       serial.print ("ok");
      }


kann ich jetzt aber noch die empfangenen daten auf der debug-schnittstelle ausgeben?
ein hintergeschobenes
code: [select]
  while (serial1.available()) {
    serial.write(serial1.read());
}
gibt nichts mehr aus, da vermutlich der puffer schon wieder leer ist.


als einzige lösung sehe ich, dass ich nicht mit der find-funktion arbeite, sondern nur das serial-read verwende, die bytes in einem string sammle, und dann den string nach meinem suchstring parse.

gehts irgendwie besser?
ich meine: den serial.find befehl zu verwenden finde ich schön, aber wie kann ich dann noch einmal den empfangspuffer auslesen, um die daten zu kommen?

gruß/hk007

quote
als einzige lösung sehe ich, dass ich nicht mit der find-funktion arbeite, sondern nur das serial-read verwende, die bytes in einem string sammle, und dann den string nach meinem suchstring parse.
ich würde es machen, in ein chararray einlesen ende ein '/0' setzen.
dann kann z.b mit strstr gesucht werden.


Arduino Forum > International > Deutsch (Moderator: uwefed) > Frage zu Serial.find()


arduino

Comments

Popular posts from this blog

invalid use of void expresion in FlexiTimer2 library

error: a function-definition is not allowed here before '{' token

LED Strip Code