On dirait que l'ancienne version de Bluez (hcitool &gatttool) ne vous permet pas d'écrire sur des appareils Bluetooth Low Energy. J'ai fini par installer une version plus récente (5.17 à ce jour) afin d'activer les notifications, etc.
Pour obtenir une liste de toutes vos poignées, vous pouvez exécuter ce qui suit :
char-desc
Vous pouvez alors lire à partir d'un handle :
char-read-hnd 0x000e
(la poignée ci-dessus est pour mon niveau de batterie nrf51822)
Où le handle est l'un de la liste que vous avez obtenue de char-desc.
Tout comme Tim l'a dit ci-dessus, vous pouvez écrire dans la poignée de notification pour obtenir des indications ou des notifications. (dans mon cas, mon appareil n'avait que des notifications)
char-write-req 0x000f 0100
(la poignée ci-dessus est pour ma notification de niveau de batterie nrf51822)
Dans mon cas, la notification de la batterie ne devrait rien envoyer tant que le niveau de la batterie n'a pas changé.
J'ai écrit un article de blog assez long sur la configuration avec Bluez. Vous pouvez le trouver ici :Premiers pas avec Bluetooth Low Energy N'hésitez pas à le consulter !
Essayez ceci...
Exécutez gatttool -b <MAC Address> --interactive
comme tu l'as fait avant. Vous obtiendrez une invite, puis vous tapez connect
. Vous devriez voir un CON
dans l'invite indiquant que vous êtes connecté à l'appareil. Tapez ensuite char-read-uuid 2902
. Vous devriez obtenir une liste de tous les attributs CCC (Client Characteristic Configuration) sur l'appareil. Vous pouvez essayer de les régler tous sur 0100 pour recevoir des notifications, 0200 pour les indications, 0300 pour les deux ou 0000 pour tout désactiver. Tapez help
pour voir toutes les commandes et leurs arguments.
MODIFIER :
L'utilisation du --listen
L'argument nécessite que vous le coupliez avec d'autres commandes pour activer les notifications et/ou les indications. Voici donc un exemple qui fonctionne dans Bluez 4.101 :
gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen
Évidemment, vous devez remplacer le handle par le handle du CCC pour lequel vous souhaitez activer les notifications. Cependant, je trouve toujours plus facile d'utiliser simplement le mode interactif.
Réponse finale pour lire la fréquence cardiaque sur 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
pour conserver la valeur CCC, vous devez coupler les deux appareils. une fois qu'ils sont jumelés, vous n'avez pas besoin de régler à nouveau le CCC. lors de la prochaine reconnexion, il trouvera le réglage, qui sera enregistré dans le FLASH du porte-clés. essayez de configurer après l'appairage via SMP.