1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. mani9876, 27.03.2013 #1
    mani9876

    mani9876 Threadstarter Neuer Benutzer

    Hallo!

    Ich versuche eine Kommunikation zw. Android und einem Bluetooth - RS232 Adapter aufzubauen.

    Ich habe die Bluetooth - Chat Sample genommen, natürlich die UUID verändert.

    Soweit funktioniert es ja, allerdings empfängt das Handy die Daten nur teilweise bzw. falsch.

    Ich sende tesweise jede Sekunde "Hallo" per RS232 Adapter raus.

    Ankommen tut:
    "H"
    "allo"
    "a"
    "allo"
    ...

    Bei größeren Texten schneidet er auch einiges ab.

    Weiß jemand was hier das Problem sein kann?

    Vielen Dank!
    Lg
    Manuel

    EDIT:

    Hab soeben bemerkt, wenn ich das Handy während des empfangs ausschalte, und danach einschalte, funktionierte in der Zeit wo es ausgeschalten war einwandfrei. Es steht also wirklich "Hallo" , "Hallo" , "Hallo" da. Auch längere Texte stimmen.
    Vielleicht weiß ja jemand wo ich da ansetzten muss?
     
    Zuletzt bearbeitet: 27.03.2013
  2. mani9876, 28.03.2013 #2
    mani9876

    mani9876 Threadstarter Neuer Benutzer

    Hallo!

    Hab scheinbar das Problem entdeckt, aber leider noch nicht die Lösung:

    So sieht der Code aus der in der Endlosschleife den Buffer abfragt, wo die Daten hereinkommen:

    Code:
     while (true) 
                {
                    try 
                    {
                        
                        System.out.println("--- Lesen von InputStream ---");
                        // Lesen vom Inputstream
                        bytes = mmInStream.read(buffer);
                        System.out.println("Empfangener Stream:");
                        System.out.println(bytes);
                        // Die empfangenen Daten an die Activity senden
                        mHandler.obtainMessage(WimappWorkplace.MESSAGE_READ, bytes, -1, buffer)
                                .sendToTarget();
                    } 
                    catch (IOException e) 
                    {
                        Log.e(TAG, "bytes could not read", e);
                        connectionLost();
                        break;
                    }
                }
    
    Und so sieht der Code aus, der aufgerufen wird, sobald sich neue Daten im Buffer befunden haben:

    Code:
                case MESSAGE_READ: // Daten werden gerade gelesen
                    x++;
                    byte[] readBuf = (byte[]) msg.obj;
                    // String welcher die empfangenen Daten beinhaltet
                    final String BTdata = new String(readBuf, 0, msg.arg1);
                    System.out.println("Empfangener Datensatz");
                    System.out.println(BTdata);
                    break;
    
    Über logcat, kann ich nun die beiden Bereiche beobachten, hier erkennt man, dass die Daten aus dem Buffer zwar richtig gelesen werden, allerdings scheint es sich zeitlich zu überschneiden, wo neue Daten übergeben werden, und dadurch kommen solch komische Datenschnipsel zusammen.

    Seht selbst:

    03-28 10:41:21.422: INFO/System.out(3634): Empfangener Stream:
    03-28 10:41:21.422: INFO/System.out(3634): 1
    03-28 10:41:21.422: INFO/System.out(3634): --- Lesen von InputStream ---
    03-28 10:41:21.432: INFO/System.out(3634): Empfangener Datensatz
    03-28 10:41:21.432: INFO/System.out(3634): M
    03-28 10:41:21.452: INFO/System.out(3634): Empfangener Stream:
    03-28 10:41:21.452: INFO/System.out(3634): 9
    03-28 10:41:21.452: INFO/System.out(3634): --- Lesen von InputStream ---
    03-28 10:41:21.452: INFO/System.out(3634): Empfangener Stream:
    03-28 10:41:21.452: INFO/System.out(3634): 10
    03-28 10:41:21.452: INFO/System.out(3634): --- Lesen von InputStream ---
    03-28 10:41:21.452: INFO/System.out(3634): Empfangener Datensatz
    03-28 10:41:21.452: INFO/System.out(3634): IST MANUE
    03-28 10:41:21.462: INFO/System.out(3634): Empfangener Datensatz
    03-28 10:41:21.462: INFO/System.out(3634): IST MANUEL

    Gesendet wird jede Sekunde "MEIN NAME IST MANUEL"
    Zuerst werden 9 Zeichen gelesen, aber scheinbar reicht es nicht zur kompletten Ausführung des 2. Codes, sondern zeitlich überschneidet sich das.

    Hat jemand eine Idee warum, bzw. wie man das Problem beheben kann?

    Danke
    Lg
    Manuel
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Bluetooth LE mit MIT App Inventor 2 Android App Entwicklung 15.06.2018
Hintergrundprozess funktioniert nicht Android App Entwicklung 29.05.2018
Bluetooth Kommunikation funktioniert ab Android 7 nicht mehr Android App Entwicklung 25.01.2018
openOptionsMenu() funktioniert nicht Android App Entwicklung 23.01.2018
Peer2Peer auch ohne Wifi, Bluetooth und Server? Android App Entwicklung 10.12.2017
[OFFEN] Bluetooth Low Energy Charakteristik auslesen Android App Entwicklung 06.12.2017
Android App mit Raspberry Pi über Bluetooth verbinden Android App Entwicklung 18.11.2017
[OFFEN] Webview Cache funktioniert nicht Android App Entwicklung 31.10.2017
[OFFEN] Android app selber entwickeln mit Bluetooth Android App Entwicklung 13.10.2017
[Offen] Android Layout funktioniert nicht Android App Entwicklung 08.09.2017
Du betrachtest das Thema "Bluetooth Chat Programm mit SPP funktioniert nur teilweise" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.