Obsah:

Čtení hodnot ze zařízení BLE pomocí CSR1010 a Dragonboard 410c: 6 kroků
Čtení hodnot ze zařízení BLE pomocí CSR1010 a Dragonboard 410c: 6 kroků

Video: Čtení hodnot ze zařízení BLE pomocí CSR1010 a Dragonboard 410c: 6 kroků

Video: Čtení hodnot ze zařízení BLE pomocí CSR1010 a Dragonboard 410c: 6 kroků
Video: ELDER SCROLLS BLADES NOOBS LIVE FROM START 2024, Prosinec
Anonim
Čtení hodnot ze zařízení BLE pomocí CSR1010 a Dragonboard 410c
Čtení hodnot ze zařízení BLE pomocí CSR1010 a Dragonboard 410c

Tento tutoriál ukazuje, jak číst hodnoty ze zařízení BLE CSR1010 pomocí Dragonboard 410c s Linaro

V tomto případě CSR1010 emuluje snímač srdečního tepu.

Krok 1: Naskenujte zařízení BLE

V tomto kroku zkontrolujte, zda je váš klient BT připraven pro skenování zařízení BLE.

root@linaro-alip:/home/linaro# sudo hcitool lescan

LE Scan… 18: EE: 69: 00: CE: 00 (neznámý) 18: EE: 69: 00: CE: 00 (neznámý) EE: 52: 5B: 04: 00: 02 CSR HR Sensor

Krok 2: Připojení zařízení

K připojení našeho zařízení použijeme gatttool

-b: MAC adresa zařízení

-t: Typ adresy LE. Může být veřejný nebo náhodný, je třeba zkontrolovat specifikace zařízení. V tomto případě je veřejný.

-I: interaktivní režim gatttool. Otevře se výzva k odeslání cmds do zařízení

root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I

Jakmile je výzva otevřena, můžeme odeslat connect cmd do zařízení.

[EE: 52: 5B: 04: 00: 02] [LE]> connectAptempting to connect to EE: 52: 5B: 04: 00: 02

Připojení úspěšné

[EE: 52: 5B: 04: 00: 02] [LE]>

Krok 3: Získání charakteristik zařízení

Načítání charakteristik zařízení
Načítání charakteristik zařízení

Jakmile je zařízení připojeno, můžeme přečíst všechny dostupné služby odesláním cmd „primární“

Na základě UUID služby můžeme zjistit typ služby ve specifikaci GATT

www.bluetooth.com/specifications/gatt/services

Krok 4: Čtení názvu zařízení

Název čtecího zařízení
Název čtecího zařízení

Prozkoumejme vlastnosti načtené na Generic Access Profile (uuid = 1800). Nejprve musíme získat hodnoty popisovače služby, popsané na prvním obrázku, v tomto případě začíná od 5 do 11. Nyní můžeme načíst všechny úchyty v tomto intervalu pomocí cmd char-desc

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 rukojeť: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb rukojeť: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb rukojeť: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb rukojeť: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x0009, uuid: 00002a01-0000b9005b uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb rukojeť: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb rukojeť: 0x000d uu -1000-8000-00805f9b34fb rukojeť: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb rukojeť: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb rukojeť: 0x0010, uuid: 00002803-0000-1 00805f9b34fb rukojeť: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb

Podle specifikace generického přístupového profilu UUID 2A00 odkazuje na název zařízení.

Vzhledem k tomu, že 2a00 je rukojeť 0x0007 v našem zařízení, přečtěte si hodnotu

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Typická hodnota/deskriptor: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

Při převodu hexu na ASCII je název zařízení: „CSR HR Sensor“

Krok 5: Čtení BPM

[EE: 52: 5B: 04: 00: 02] [LE]> držadlo primární baterie: 0x0001, koncová rukojeť grp: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb rukojeť attr: 0x0005, koncová rukojeť grp: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb rukojeť attr: 0x000c, koncová rukojeť grp: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb rukojeť attr: 0x0014, koncová rukojeť grp: 0x0017 uuid: 0000180f-0000-1000-8000 00805f9b34fb rukojeť attr: 0x0018, koncová rukojeť grp: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr rukojeť: 0x0022, koncová rukojeť grp: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34

UUID služby Heart Rate je 0x180d, takže interval zpracování je od 0x000c do 0x0013

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013

rukojeť: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb rukojeť: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb rukojeť: 0x000d: 00002902-0000-1000-8000-00805f9b34fb rukojeť: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb rukojeť: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb rukojeť: 0x0012, uuid 00: 00 1000-8000-00805f9b34fb rukojeť: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Přečtení všech charakteristických prohlášení (UUID 0x2803).

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d

Charakteristická hodnota/deskriptor: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Charakteristická hodnota/deskriptor: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Charakteristická hodnota/deskriptor: 08 13 00 39 2a

Všimněte si, že:

- rukojeť 0x000d je CCCD pro službu 2a37 (měření tepové frekvence) s bitem 10 (podpora UPOZORNĚNÍ)

- rukojeť 0x0010 je CCCD pro službu 2a38 (umístění snímače těla) s bitem 02 (podpora READ)

- rukojeť 0x0012 je CCCD pro službu 2a39 (kontrolní bod srdečního tepu) s bitem 08 (podpora WRITE)

Nyní víme, že měření srdečního tepu funguje pouze s oznámením. To znamená, že nejprve se musíme zaregistrovat pro změny hodnot v jeho CCCD (UUID 0x2902), což je v tomto případě handle 0xf

[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100

Oznamovací úchyt = hodnota 0x000e: 16 65 f3 01 Údajová hodnota byla úspěšně zapsána Oznamovací popisovač = hodnota 0x000e: 16 6d fa 01 Oznamovací rukojeť = 0x000e hodnota: 16 6d fa 01 Oznamovací rukojeť = hodnota 0x000e: 16 6c f9 01 Oznamovací rukojeť = hodnota 0x000e: 16 6a f7 01 Oznamovací úchyt = hodnota 0x000e: 16 69 f6 01

Podle specifikace profilu je druhým hexadecimálním číslem informace o BPM.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Krok 6: Čtení polohy snímače těla

Čtení polohy snímače těla
Čtení polohy snímače těla

Umístění tělesného senzoru je UUID 0x2A38. Podle svého deskriptoru tato charakteristika podporuje základní čtení, takže můžeme její hodnotu číst přímo.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Charakteristická hodnota/deskriptor: 03

Podle specifikace SIG 03 znamená „prst“

Doporučuje: