Hallo,
ich bin gerade dabei etwas zu bauen, was Daten eines Smartphones empfängt und diese dann verarbeitet, bis diese Daten zum Test zurückgesendet werden sollen.
Momentan sendet das Handy (verbunden mit dem Arduino Server) Zahlen als ASCII an das Arduino Board.
Die Daten, die das Handy sendet werden dann abgefangen und abgefragt mit einer ganz normalen Schleife wie man sie aus dem Wifi Beispiel kennt.
Sagen wir mal c == '1'.
char c ist das was der client sendet. (client.read())
Einzelne Zahlen dienen als Anweisung.
Bei 1 soll er etwas bestimmtes mit den kommenden Daten anstellen.
Nun bin ich soweit gekommen, dass der Arduino nicht mehr weiss wann stopp ist und
somit nicht mit den bekommenen Daten weiterarbeiten kann.
Mit client.readBytes(buf, len) lese ich die kommenden Daten.
Diese enthalten (in ASCII) so gut wie alle Zeichen bzw. werden so gut wie alle Zeichen enthalten.
Also kann ich nicht mehr abfragen, ob ein bestimmtes Zeichen enthalten ist, um diese Daten weiter zu verarbeiten.
Ich habe es versucht mit if (client.readBytes(buf, len) > 0) , doch client.readBytes(buf, len) ergibt immer 0.
Ich habe auch versucht einen String jeden char aufnehmen zu lassen und dann über das Smartphone, einen "Schlussstring" zu senden. Diesen dann abzufragen mit String.endsWith(), doch diese Methode funktioniert komischerweise nicht.
Meine Frage ist wie ich abfragen kann, wann ein client fertig ist Daten zu senden, um dann mit den empfangenen Daten zu arbeiten?