Verstehe ich leider nicht. "value = " kommt ja nicht vom Tablet, sondern vom MEGA an SM.Beim einen mal bekommst Du 16 Byte Nutzdaten am Stück beim anderen je 8 Byte und dann wieder 8 Byte.
Ändert nichts.Versuch doch mal 18-22 Zeichen zu senden und schau mal was da vom Timing her passiert.
Wäre eine Möglichkeit. Würde aber doch bedeuten, dass der Sendebefehl meiner App den Text byteweise rüberschickt, während Ardroid den Text immer als Block sendet. Es müsste also unterschiedliche Sendebefehle geben.Sobald nur 1 einziges angekommenes Zeichen das "available" anzeigt, gibt der Arduino bereits aus:
if (Serial2.available()) {
Serial.print("value = ");
da muss der Rest der Zeichen noch gar nicht da sein.
Denn jetzt fängt er erst an, den Rest des Strings einzulesen:
Ich habe auch mal hinter "if (Serial2.available())" ein delay (1000) eingefügt, was aber nur das "value = " verzögert, die Verzögerung zum *10|9|2# bleibt aber trotzdem. Ich dachte, damit den eintrudelnden Bytes die Zeit zu geben, die sie bis zum letzten Zeichen brauchen. Oder ruht bei delay auch das Einlesen der Zeichen von der SS?
Noch mal zur Erinnerung: mit Ardroid kommt "value = *10|9|2#" immer sofort und gleichzeitig!
Ich habe mal 2 Videos angefügt. Die sind zwar verwackelt und verschwommen, lassen aber den Unterschied trotzdem erkennen.
Danke für eure Ideen.
vG
fredyxx
Lesezeichen