2016-10-03 2 views
0

Ich arbeite an einem Projekt, wo ich Daten zwischen Android und Raspberry Pi über Bluetooth übertragen muss. Allerdings bin ich neu und ich habe kein tiefes Verständnis darüber, was passiert, wenn zwei Geräte gepaart werden. Ausgehend von der Annahme, dass die beiden Geräte von Interesse bereits gepaart sind, wo wäre der Ausgangspunkt für die Programmierung für eine solche Aufgabe? Ich habe auf BluetoothSocket gelesen, aber ich bin mir noch nicht sicher, wo ich anfangen soll. Kann mir bitte jemand helfen?Datenübertragung über Bluetooth zwischen gekoppeltem Android und Raspberry PI

Vielen Dank im Voraus!

Antwort

0

Ich habe vor einiger Zeit an der gleichen Aufgabe gearbeitet. Der Punkt ist, dass, um mit dem Senden und Empfangen von Daten zu beginnen, zuerst die Verbindung hergestellt werden muss. Es gibt zwei Nebengeräte, die eine Verbindung herstellen (Socket erstellen) und die andere Empfangsverbindung (Bluetooth-Server-Socket), die nach dem Verbindungsaufbau eine Verbindung herstellen. Nachdem die Verbindung hergestellt wurde, sollten Sie keine eingehende Verbindung mehr empfangen oder versuchen, Verbindungen herzustellen. Von der Implementierungsperspektive aus sollten Sie wenige Threads implementieren, um all diese Phasen zu verwalten - Verbindungsthread, Annahme-Thread, Kommunikationsthread. Es gibt ein großartiges Beispiel von Google: https://github.com/googlesamples/android-BluetoothChat. Es benutzt diese Technik. Der einzige Nachteil ist, dass es Handler (Android-Funktion, so dass die Geräte kommunizieren können) verwendet, um den Benutzer über Bluetooth-Ereignisse zu informieren. Ich habe es ein wenig modifiziert, indem ich einen anderen Thread eingeführt habe, Status-Updates erhalten und Methoden von der Callback-Schnittstelle aufgerufen habe, ich kann den Code aus dem Projekt verwenden: https://github.com/AlexShutov/LEDLights.

+0

Vielen Dank! Ich werde es versuchen und Sie wissen lassen, was passiert. – SaxMaster

1

Ich habe in der gleichen Frage, hier ist die Lesung, die ich an meinem Ende gefunden habe. Ich habe versucht, in Python zu programmieren, also ist der Winkel des ersten, der zweite ist C++, aber hat ein wirklich gründliches Intro.

https://people.csail.mit.edu/albert/bluez-intro/index.html

und dies ist wirklich zu gut, das Intro ist nicht zu dicht:

http://beej.us/guide/bgnet/output/html/multipage/index.html

Die spezifischen Teile zu sehen, die Planung Aspekt beinhaltet. Das Intro des beej-Programmierhandbuchs zeigt speziell, welche Sockets und wie sie in einem Netzwerk Sinn passen. Dies bedeutet Streaming-Sockets und Datagramm-Sockets. Außerdem wird angezeigt, welche Sockets verwendet werden und welche verfügbar sind. Die Kapitel 1 bis 3 gaben mir eine solide Lesebasis, um mit dem zweiten Dokument einige Dinge zu bestimmen.

Kapitel 2 des MIT-Dokuments geht detailliert auf jeden der Schritte ein, die auf struktureller Ebene einschließlich L2CAP + UDT, RCOMM und was auch immer der Strom war, erfolgen muss. Aus dem Lesen dieser konnte ich feststellen, dass das Netzwerk, das ich verwenden wollte, ein L2CAP war. Ich hoffe, dass diese Hilfe Sie in die richtige Richtung zeigt, obwohl Sie wissen, welches Netzwerk Sie einrichten möchten und welche Sprache Sie programmieren möchten.

+0

Sie haben nur Links zu Programmierhandbüchern für Bluetooth bereitgestellt. Fügen Sie Details hinzu, wie das OP erreichen kann, was er benötigt. Ich möchte nicht ablehnen, aber deine Antwort ist nicht vollständig. –

+0

Wird tun. Das tut mir leid. – user69103