Sembra che la versione precedente di Bluez (hcitool e gatttool) non ti consenta di scrivere su dispositivi Bluetooth Low Energy. Ho finito per installare una versione più recente (5.17 al momento della stesura di questo documento) per abilitare le notifiche, ecc.
Per ottenere un elenco di tutti i tuoi handle puoi eseguire quanto segue:
char-desc
Puoi quindi leggere da un handle:
char-read-hnd 0x000e
(la maniglia sopra è per il mio livello di batteria nrf51822)
Dove l'handle è uno della lista che hai ottenuto da char-desc.
Proprio come ha detto Tim sopra, puoi scrivere all'handle relativo alle notifiche per ottenere indicazioni o notifiche. (nel mio caso il mio dispositivo aveva solo notifiche)
char-write-req 0x000f 0100
(l'handle sopra è per la mia notifica del livello della batteria nrf51822)
Nel mio caso la notifica della batteria non dovrebbe inviare nulla finché il livello della batteria non è cambiato.
Ho scritto un post sul blog piuttosto lungo su come ottenere la configurazione con Bluez. Puoi trovarlo qui:Inizia con Bluetooth Low Energy Sentiti libero di provarlo!
Prova questo...
Esegui gatttool -b <MAC Address> --interactive
come facevi prima. Riceverai un prompt e quindi digiti connect
. Dovresti vedere un CON
nel prompt che indica che sei connesso al dispositivo. Quindi digita char-read-uuid 2902
. Dovresti ottenere un elenco di tutti gli attributi CCC (Client Characteristic Configuration) sul dispositivo. Puoi provare a impostarli tutti su 0100 per ricevere notifiche, 0200 per indicazioni, 0300 per entrambi o 0000 per tutto disattivato. Digita help
per vedere tutti i comandi e i loro argomenti.
MODIFICA:
L'uso del --listen
L'argomento richiede di accoppiarlo con altri comandi per attivare le notifiche e/o le indicazioni. Quindi ecco un esempio che funziona in Bluez 4.101:
gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen
Ovviamente devi cambiare l'handle con l'handle del CCC per il quale vuoi attivare le notifiche. Tuttavia, trovo ancora molto più semplice utilizzare solo la modalità interattiva.
Risposta finale per la lettura della frequenza cardiaca su 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
per mantenere il valore CCC è necessario accoppiare i due dispositivi. una volta accoppiati non è necessario reimpostare il CCC. alla successiva riconnessione ritroverà l'impostazione , che verrà salvata nella FLASH del portachiavi. provare a configurare dopo l'associazione tramite SMP.