Einen Gatt-Server erstellen?
Habe ich ein breiteres Spektrum Frage hier, also wenn jemand könnte mich zu einem doc oder Artikel, die erklären könnte, das würde ausreichen. Unnötig zu sagen, eine Tage im Wert von googeln hat mich geärgert nirgendwo, und ich könnte eine helfende hand.
Bin ich Anschluss an eine BeagleBoard mit BlueZ 5.9, und es ist meine Absicht:
- Erstellen Sie eine Gatt-server,
- Laden Sie es mit einigen schreibbare Attribute und
- Werben, dass der server eine Verbindung zu einem android-Gerät.
Habe ich die Android-app wird eine Verbindung herstellen und betreiben als zentrale, rendering 3 im wesentlichen abgeschlossen. Ich weiß nicht, wie die Befehle - die wörtliche Dinge zu geben - zu initiieren, der eine Gatt-server /Attribute erstellen, die auf dem BeagleBoard. Ich wusste, dass hardware groß geschrieben, so dass es möglich ist, dass ich nur meine Terminologie völlig falsch - das heißt, jede Hilfe wäre geschätzt, Abschluss 1 und 2, auch wenn es nur einen Schubs in die richtige Richtung. Danke!
InformationsquelleAutor der Frage Alxjrvs | 2013-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Terminologie ist vor allem die richtige.
In der Regel, eine GATT-Datenbank hat die Dienste 0x1800 (Generic Access) und 0x1801 (Generic Attribute) zumindest. Das Generic Access service enthält zwei obligatorische Merkmale: Gerätename und Aussehen. Der Generische service-Attribut sollte leer sein.
Daher die minimal GATT-Datenbank sieht wie folgt aus:
Nach diesen beiden services, können Sie Ihre eigenen Leistungen. In Ihrem Fall, Sie scheinen nicht zum Ziel, einen bekannten Dienst, so erstellen Sie ein eigenes.
Erstellen Sie zunächst eine 128-bit UUID, zum Beispiel mit der
uuidgen
- tool auf Ihrem Mac-BefehlszeileDies wird Ihre service-UUID
Dann, Sie haben erwähnt, dass Sie möchten, dass mehrere beschreibbare Merkmale. Erzeugen wir also eine andere UUID.
Und fügen eine Eigenschaft, um die service -
Ihre charakteristischen Wert sollte nicht mehr als 20 bytes, und wählen Sie "Write Request", um sicherzustellen, dass die Bestätigungen der schreibt an die zentrale. Wenn Sie die Option "Befehl Schreiben", schreibt verworfen werden kann, indem Sie entweder Ihre Telefon-stack oder der peripheren.
Nachdem Sie festgelegt haben diese Eigenschaft, sind Sie bereit, mit der Codierung zu beginnen.
Ich weiß nicht, das BeagleBoard-SDK, aber in der Regel starten Sie durch Initialisierung des GATT-Bibliothek und weitere Module (zum Beispiel für die Unterstützung der schreibt, haben Sie zum initialisieren eines zweiten Teils der Bibliothek).
Nach dieser Initialisierung registrieren Sie Ihre GATT-Datenbank. Wenn Sie nicht über ein nettes tool für die Erzeugung der binären Daten, die Sie haben können, um Ihnen zu schreiben, Euch. Das ist erklärt in der Bluetooth Core-Spezifikation V4.0. Wir hoffen, Sie finden eine API, die die transformation für Sie 🙂
Wenn die Registrierung erfolgreich ist, müssen Sie die Werbung Parametern und können beginnen, Werbung (Fragen Sie Ihren SDK-Dokumentation und Beispiele HIERFÜR nochmal).
Was jetzt passiert, ist, dass in einiger Zeit, erhalten Sie einen Rückruf, dass eine Verbindung hergestellt wurde, und später, erhalten Sie eine Attribut-Anforderung für einen bestimmten Griff. Dann, Sie müssen nur zum verarbeiten der Anforderung durch den Blick auf den Griff, der gelieferte Wert und die Art der operation (Lesen /schreiben). Vergessen Sie nicht, immer wieder ein Erfolg Wert oder ein Fehlercode in der Antwort auf die Anfrage, wie ansonsten, Sie sperren die Bluetooth-Kommunikation.
Normalerweise, diese Bluetooth-chips arbeiten immer mit asynchronen Operationen. Sie werden eine Anfrage senden und müssen dann warten, bis die Anforderung abgeschlossen ist, bevor das nächste gesendet wird. Denken Sie daran, dass bei der Programmierung, es spart Zeit :-).
Wenn Sie versuchen wollen, auf Android erste, weil es mehr vertraut für Sie ist, können Sie versuchen, das Galaxy S 4 mit Android 4.2. Es hat auch eine LE peripheren Modus - habe ich noch nicht getestet, seine Zuverlässigkeit, obwohl. Die zuverlässigste smartphone-stack in dem moment zu handeln, als LE Peripherie ist derzeit in iOS 7 - so kann es sich lohnen, Kommissionierung bis ein iPod touch, wenn Sie erschwinglich zu spielen, um mit.
InformationsquelleAutor der Antwort Etan
Kasse blenoes ist ein BLE-Peripheriegerät stack-Bibliothek, die ich erstellt für node.js vor kurzem. Es unterstützt derzeit Linux (getestet mit BlueZ 4.101) und OS X 10.9.
Gibt es Beispiele, wie es zu benutzen hier und hier.
InformationsquelleAutor der Antwort sandeepmistry
Den Schlüssel anpassen gatt-service-ist der daemon-Programm bluetoothd von bluez.
Habe ich beschrieben, wie die Anpassung eines gatt-service in mein bloggerbitte überprüfen Sie es.
InformationsquelleAutor der Antwort Gaiger Chen