Bluetooth Low Energy: Verwenden Sie BlueZ-stack als ein Peripheriegerät (mit benutzerdefinierten Dienste und Merkmale)
Ich versuche, mit der BlueZ-stack auf einem Linux-Rechner zu erstellen, die ein GATT-server mit kundenspezifischen Diensten und Eigenschaften. Das endgültige Ziel ist es, mit 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:
- Peripheriegeräte mit 1 service enthält 3 Eigenschaften.
- Service uuid = 0xFFFF
- Char 1 uuid = 0xAAAA, Eigenschaften = lesbar
- Char 2 uuid = 0xBBBB, Eigenschaften = lesbar & beschreibbar
- Char 3 uuid = 0xCCCC, Eigenschaften = Meldepflichtige
Vom zentralen Gerät, möchte ich sehen, die das periphere Gerät, schließen Sie es und entdecken Sie einen service (0xFFFF) hat die drei Eigenschaften (0xAAAA, 0xBBBB, 0xCCCC). Ich sollte dann in der Lage sein zu Lesen, der Wert 0xAAAA, Lesen und schreiben, um den Wert von 0xBBBB, und aktivieren Sie Benachrichtigungen auf 0xCCCC.
Bitte beachten Sie, dass ich mir bewusst bin, dass ein ähnliche Frage existiert, aber es wird nur erläutert, wie die peripheren als Inserent. Eine andere Frage gelöst erläutert, wie Sie einen GATT-server, aber nicht erklären, wie das Spiel mit den Eigenschaften der Eigenschaften (z.B. lesbar, Meldepflichtige, etc.), oder vielleicht bin ich etwas fehlt.
Vielen Dank im Voraus.
InformationsquelleAutor Youssif Saeed | 2014-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie sehen, gatt-Beispiel Praxis-oder Profilen unter Profil/Verzeichnis wie Alarm - /server.c. Im Grunde, Sie müssen nur registrieren Sie Ihr service mit gatt_service_add () - Funktion nach den vorhandenen code. Zum Beispiel :
Auch, ich vergaß die details, aber um die zu bekommen-alert-server arbeiten, müssen Sie enable experimental - (und Betreuer-Modus?) während der Konfiguration durch hinzufügen von "--enable-maintainer-mode" und "--enable-experimental"
Ausführen, führen Sie die kompilierte "bluetoothd" mit -n und-d Option zum Debuggen (auch -E für die Aktivierung der experimentellen Dienste). Setzen Sie den adapter wieder nach laufen bluetoothd. Und dann können Sie die Verbindung vom remote-Gerät verwenden gatttool (auch mit bluetoothd läuft auf dem remote-Gerät).
AFAIK wurde es nicht implementiert, können Sie einen Blick auf BlueZ-Entwicklung mailing-Liste. Außerdem werden Sie informiert über die neueste version. (Jetzt 5.16)
OK tun wird. Danke.
Erstellen einer benutzerdefinierten GATT-server, ich bin in der Lage, um die entsprechenden code aus plugsins/Beispiel.c, kann aber nicht kompilieren meinen code, weil ich nicht finden können, alle Bibliotheken. Gibt es etwas, was ich verlinken kann, um beim kompilieren meines Codes, oder bin ich da etwa falsch?
InformationsquelleAutor Isa A
1) goto Bluez-Ordner
2) sudo ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --disable-systemd --enable-experimental --enable-maintainer-mode
3) sudo make all
4) Werben Anschließbare Pakete
5) sudo service bluetooth-stop
6) sudo src/bluetoothd -d -n
7) Von anderen PC-Typ (Ändern Sie die MAC-id gatt-server mac)
Schritt 6 ist für in Fall, dass Sie wollen, zu kompilieren plugins/gatt-Beispiel.c
wenn Sie kompilieren wollen server.c von Profil/Zeit oder profle/alert(ersetzen mit der Warnung, die in Ort, Zeit) oder anyother Datei in Profil Ordner ersetzen Schritt 6
sudo src/bluetoothd --plugin=- n
InformationsquelleAutor Jagdish
Andere Lösung besteht nun mit Bluetoothctl Kommandozeilen-tool. Mehr details dazu finden Sie hier:-
BlueZ: How to set up a GATT-server von der Befehlszeile aus
Ich bin nicht sicher, wenn Bluetoothctl eingeführt wurde, aber es ist relativ neu an der Zeit, dieses schreiben und daher ist es gar nicht gibt, die in früheren Versionen von BlueZ. Ich bin mit BlueZ v5.50 und das der version, die ich getestet.
InformationsquelleAutor Youssif Saeed