BlueZ: How to set up a GATT-server von der Befehlszeile aus
Ich würde gerne wissen, ob es eine Möglichkeit zum einrichten einer gatt-server aus der Linux-Kommandozeile. Ich weiß, dass die BlueZ gatttool Befehl ermöglicht es Ihnen, zu handeln, als eine gatt-client und befragen Sie einen remote-gatt-server, allerdings glaube ich nicht, dass dieses tool kann verwendet werden, um einen server aufzusetzen.
Was ich erreichen will ist eine gatt-server, erstellt von der Befehlszeile aus, und kann verhört werden von einem zentralen Gerät (z.B. iOS-oder Android-Gerät) zu verbinden, um die GATT-server, entdecken Sie die Leistungen und Eigenschaften, und Bearbeiten Sie die Daten in den Eigenschaften.
Beispiel:
Gatt-Server mit 1-service enthält 3 Eigenschaften.
- Service uuid = 0xFFFF
- Char 1 uuid = 0xAAAA, Wert = 01, Eigenschaften = lesbar
- Char 2 uuid = 0xBBBB, value = 00, Eigenschaften = lesbar & beschreibbar
- Char 3 uuid = 0xCCCC, Wert = 02, Eigenschaften = Meldepflichtige
Ich bin mit kernel-version 3.11.0-und BlueZ 5.19
- Werfen Sie einen Blick auf [Bluez: werben service / gatt-server-Beispiel?][1] oder [Erstellung eines Gatt-Server?][2] oder [Bluetooth Low Energy: Verwenden Sie BlueZ-stack als ein Peripheriegerät (mit benutzerdefinierten Dienste und Merkmale)][3] erhalten Sie einige Hinweise, wie Sie Vorgehen. [1]: stackoverflow.com/questions/20682294/... [2]: stackoverflow.com/questions/19549555/creating-a-gatt-server [3]: stackoverflow.com/questions/21428446/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also das ist jetzt gehandhabt mit der neuen bluetoothctl tool. Ein gatt-Tabelle können Sie mit diesem Werkzeug wie folgt:-
Habe ich versucht dies mit ein paar service - /Merkmal-Kombinationen und war in der Lage, um es an die Arbeit. Die LÜCKE (0x1800) und GATT (0x1801) Dienste sind standardmäßig verfügbar und werden Bestandteil des GATT-Tabelle, wenn Sie werben. Sie können auch den folgenden Befehl verwenden, um die verfügbaren services:-
Habe ich auch vor dem gleichen Problem, konnte aber finden keine richtige Lösung, was Sie am besten tun, mit einem bluez-stack auf einer Ubuntu-Maschine ist, verwenden einige Befehle zu werben LE-Pakete. Diese Pakete werden ständig beworben, wie das ist, wenn es ist ein LE-server, Wenn Sie den scan mithilfe einer GATT-Client erhalten Sie den Namen Ihres bluez-Gerät auf die scan-Liste.
Verwenden Sie die folgenden Befehle unter:
Legen Sie die LE-advertisement-Pakete mit dem folgenden Befehl:
· Nun werben die LE-Pakete mit dem folgenden Befehl:
Ich glaube, es ist nicht möglich, setup GattServer von CLI.
Vor allem, weil es ist ein upper-layer-Funktionalität, so gibt es kein tool, um es zu tun (wie die meisten tools bieten die untere Schicht Funktionalitäten).
Aber Sie können verwenden, imitieren die Art und Weise bluez schafft service mit dbus.
Brauchten wir einen GattService mit beiden Merkmalen (R,W,N)
Was wir schließlich getan haben, war Folgendes -
1. verwenden Sie die libgdbus (von bluez source) Es hat all die dbus-wrapper zu registrieren Dienstleistungen bluez.
Erstellt ein übersetzer (socket IPC) zu trennen die Lizenzierung Problem (GPL)
Befehl senden, um die service-registrar, einen Dienst zu erstellen
e,g - op_code = create_service, uuid = 'service_uuid'
op_code = create_charac, uuid='charac_uuid' flags='rwn'
Hoffe, das hilft.