Vypadá to, že starší verze Bluez (hcitool &gatttool) neumožňuje zapisovat do zařízení Bluetooth Low Energy. Nakonec jsem nainstaloval novější verzi (5.17 v době psaní tohoto článku), abych povolil oznámení atd.
Chcete-li získat seznam všech vašich úchytů, můžete spustit následující:
char-desc
Poté můžete číst z popisovače:
char-read-hnd 0x000e
(výše uvedená rukojeť je pro můj nrf51822 stav baterie)
Kde je úchyt jedna ze seznamu, který jste získali z char-desc.
Stejně jako Tim řekl výše, můžete napsat na rukojeť související s oznámeními, abyste získali indikace nebo oznámení. (v mém případě mé zařízení mělo pouze oznámení)
char-write-req 0x000f 0100
(výše uvedený úchyt je pro mé upozornění na úroveň baterie nrf51822)
V mém případě by oznámení o baterii nemělo nic odesílat, dokud se úroveň baterie nezmění.
Napsal jsem docela dlouhý blogový příspěvek o nastavení s Bluez. Najdete ho zde:Začínáme s Bluetooth Low Energy Neváhejte a vyzkoušejte to!
Zkuste toto...
Spusťte gatttool -b <MAC Address> --interactive
jako jsi to dělal předtím. Zobrazí se výzva a poté zadáte connect
. Měli byste vidět CON
ve výzvě oznamující, že jste se připojili k zařízení. Poté zadejte char-read-uuid 2902
. Měli byste získat seznam všech atributů CCC (Client Characteristic Configuration) na zařízení. Můžete je zkusit nastavit všechny na 0100, abyste dostávali upozornění, 0200 pro indikace, 0300 pro oba nebo 0000 pro vše vypnuté. Zadejte help
zobrazit všechny příkazy a jejich argumenty.
UPRAVIT:
Použití --listen
argument vyžaduje, abyste jej spojili s jinými příkazy, abyste zapnuli oznámení a/nebo indikace. Zde je příklad, který funguje v Bluez 4.101:
gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen
Je zřejmé, že musíte změnit rukojeť na rukojeť CCC, pro kterou chcete zapnout oznámení. Stále však považuji za jednodušší použít interaktivní režim.
Konečná odpověď pro čtení srdeční frekvence na 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
Chcete-li zachovat hodnotu CCC, musíte obě zařízení spárovat. jakmile jsou spárovány, nemusíte CCC znovu nastavovat. při příštím opětovném připojení najde nastavení, které se uloží do FLASH klíčenky. zkuste nakonfigurovat po spárování přes SMP.