Sieht so aus, als ob die ältere Version von Bluez (hcitool &gatttool) es Ihnen nicht erlaubt, auf Bluetooth Low Energy-Geräte zu schreiben. Am Ende installierte ich eine neuere Version (5.17 zum Zeitpunkt dieses Schreibens), um Benachrichtigungen usw. zu aktivieren.
Um eine Liste aller Ihrer Handles zu erhalten, können Sie Folgendes ausführen:
char-desc
Sie können dann von einem Handle lesen:
char-read-hnd 0x000e
(Der obige Griff ist für meinen Batteriestand nrf51822)
Wobei der Handle einer aus der Liste ist, die Sie von char-desc.
erhalten haben
Genau wie Tim oben sagte, können Sie an das Benachrichtigungs-bezogene Handle schreiben, um Hinweise oder Benachrichtigungen zu erhalten. (in meinem Fall hatte mein Gerät nur Benachrichtigungen)
char-write-req 0x000f 0100
(Das obige Handle ist für meine nrf51822-Benachrichtigung über den Batteriestand)
In meinem Fall sollte die Batteriebenachrichtigung nichts senden, bis sich der Batteriestand geändert hat.
Ich habe einen ziemlich langen Blogbeitrag über die Einrichtung von Bluez geschrieben. Sie finden es hier:Erste Schritte mit Bluetooth Low Energy Probieren Sie es aus!
Versuchen Sie Folgendes...
Führen Sie gatttool -b <MAC Address> --interactive
aus wie du es vorher getan hast. Sie erhalten eine Eingabeaufforderung und geben dann connect
ein . Sie sollten eine CON
sehen in der Eingabeaufforderung, die anzeigt, dass Sie mit dem Gerät verbunden sind. Geben Sie dann char-read-uuid 2902
ein . Sie sollten eine Liste aller CCC-Attribute (Client Characteristic Configuration) auf dem Gerät erhalten. Sie können versuchen, sie alle auf 0100 einzustellen, um Benachrichtigungen zu erhalten, 0200 für Hinweise, 0300 für beide oder 0000 für alles Aus. Geben Sie help
ein um alle Befehle und ihre Argumente zu sehen.
BEARBEITEN:
Die Verwendung des --listen
argument erfordert, dass Sie es mit anderen Befehlen koppeln, um die Benachrichtigungen und/oder Anzeigen einzuschalten. Hier ist also ein Beispiel, das in Bluez 4.101 funktioniert:
gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen
Offensichtlich müssen Sie das Handle auf das Handle des CCC ändern, für das Sie Benachrichtigungen aktivieren möchten. Ich finde es jedoch immer noch viel einfacher, einfach den interaktiven Modus zu verwenden.
Endgültige Antwort zum Lesen der Herzfrequenz auf Mio Alpha :
gatttool -b xx:xx:xx:xx:xx:xx -t random --char-write-req -a 0x0025 -n 0100 --listen
Characteristic value was written successfully
Notification handle = 0x0024 value: 10 4b 33 03
Notification handle = 0x0024 value: 10 4b 33 03
Notification handle = 0x0024 value: 10 4b 33 03
Notification handle = 0x0024 value: 10 4a 3e 03
Notification handle = 0x0024 value: 10 4c 28 03 28 03
Notification handle = 0x0024 value: 10 4c 28 03
Notification handle = 0x0024 value: 10 4b 33 03
Notification handle = 0x0024 value: 10 4a 3e 03 3e 03
Um den CCC-Wert beizubehalten, müssen Sie die beiden Geräte koppeln. Sobald sie gekoppelt sind, müssen Sie den CCC nicht erneut einstellen. Bei der nächsten Wiederverbindung findet es die Einstellung , die im c FLASH des Schlüsselanhängers gespeichert wird. Versuchen Sie die Konfiguration nach dem Pairing über SMP.