- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 15

Thema: Unverständliches Verhalten bei Bluetooth-Verbindung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Wie hast Du denn das Timing der beiden sendenden Applikationen verglichen, damit Du Dir sicher bist, das sich das Verhalten des Empfängers ändert?
    Das ist visuell am SM ganz deutlich zu erkennen.

    Wie sieht es denn aus wenn die App aus dem Playstore ein compiliertes Programm ist und der AppInventor z.B. selbst in Java geschieben ist und die Befehlsblöcke als YAIL Code von einem Interpreter verarbeitet werden?
    Zu diesen Details kann ich nichts sagen.

    Das unterschiedliche Timingverhalten durch die Apps könnte ich ja verstehen, aber der Arduino hat einen Empfangspuffer der seriellen Schnittstelle, da steht 2 x das gleiche drin und trotzdem ist das Verhalten des Programms deutlich unterschiedlich. Das leuchtet mir eben nicht ein.

    vG
    Fredyxx

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Ich würde schon auf der Senderseite schauen.
    Code:
    value = *10|9|2#
    1234567812345678
    Beim einen mal bekommst Du 16 Byte Nutzdaten am Stück beim anderen je 8 Byte und dann wieder 8 Byte.

    Versuch doch mal 18-22 Zeichen zu senden und schau mal was da vom Timing her passiert.
    Das müsste ja, wenn es Byteweise aufgeteilt wird, bei AppInventor noch langsamer gehen und dann auch auf drei mal kommen.

  3. #3
    HaWe
    Gast
    woher weisst du, dass es am Empfänger / dem Arduino liegt?
    Es könnte doch auch an unterschiedlich schnellen Sendern liegen?

    Nur ein mögliches Erklärungsmodell, es kann ntl auch andere Ursachen haben:

    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:

    String value = Serial2.readStringUntil('\n');
    Serial.println(value);

    Wenn die ganzen Zeichen nun lange brauchen, bis sie Sender-seitig hinterhergedackelt kommen, dauert es halt mal mehr, mal weniger lange, bis alle vorhanden sind und vollständig angezeigt werden können. Dabei werden sie nicht byte-weise geschrieben, so wie sie eintrudeln, sondern erst, wenn sie vollständig sind, d.h. wenn der string bis zum '\n' vollständig ist!

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Beim einen mal bekommst Du 16 Byte Nutzdaten am Stück beim anderen je 8 Byte und dann wieder 8 Byte.
    Verstehe ich leider nicht. "value = " kommt ja nicht vom Tablet, sondern vom MEGA an SM.

    Versuch doch mal 18-22 Zeichen zu senden und schau mal was da vom Timing her passiert.
    Ändert nichts.

    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:
    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.

    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
    Geändert von fredyxx (10.02.2017 um 23:43 Uhr)

Ähnliche Themen

  1. Bluetooth Verbindung "verlängern"
    Von meddie im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 9
    Letzter Beitrag: 28.06.2016, 17:28
  2. RP6 - Bluetooth keine Verbindung!?!
    Von Philsuro im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 18.01.2011, 21:52
  3. Antworten: 2
    Letzter Beitrag: 02.05.2010, 14:51
  4. Bluetooth-Verbindung auf LCD
    Von otis im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 20.08.2007, 10:54
  5. Antworten: 1
    Letzter Beitrag: 21.09.2006, 17:45

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test