Obsah:

Čítanie hodnôt zo zariadenia BLE pomocou CSR1010 a Dragonboard 410c: 6 krokov
Čítanie hodnôt zo zariadenia BLE pomocou CSR1010 a Dragonboard 410c: 6 krokov

Video: Čítanie hodnôt zo zariadenia BLE pomocou CSR1010 a Dragonboard 410c: 6 krokov

Video: Čítanie hodnôt zo zariadenia BLE pomocou CSR1010 a Dragonboard 410c: 6 krokov
Video: Объяснение истории судьи Дредда Лора и ранних лет — ру... 2024, November
Anonim
Čítanie hodnôt zo zariadenia BLE pomocou zariadení CSR1010 a Dragonboard 410c
Čítanie hodnôt zo zariadenia BLE pomocou zariadení CSR1010 a Dragonboard 410c

Tento tutoriál ukazuje, ako čítať hodnoty zo zariadenia BLE CSR1010 pomocou Dragonboard 410c s Linaro

V tomto prípade CSR1010 emuluje snímač srdcového tepu.

Krok 1: Naskenujte zariadenie BLE

V tomto kroku skontrolujte, či je váš klient BT pripravený na skenovanie zariadení BLE.

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

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

Krok 2: Pripojenie zariadenia

Na pripojenie nášho zariadenia použijeme gatttool

-b: MAC adresa zariadenia

-t: typ adresy LE. Môžu byť verejné alebo náhodné, je potrebné skontrolovať špecifikácie zariadenia. V tomto prípade je verejný.

-I: interaktívny režim gatttool. Otvorí sa výzva na odoslanie cmds do zariadenia

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

Akonáhle je výzva otvorená, môžeme odoslať connect cmd do zariadenia.

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

Pripojenie úspešné

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

Krok 3: Načítanie charakteristík zariadenia

Načítavajú sa charakteristiky zariadenia
Načítavajú sa charakteristiky zariadenia

Akonáhle je zariadenie pripojené, môžeme čítať všetky dostupné služby odoslaním cmd „primárne“

Na základe UUID služby môžeme objaviť typ služby v špecifikácii GATT

www.bluetooth.com/specifications/gatt/services

Krok 4: Čítanie názvu zariadenia

Názov zariadenia na čítanie
Názov zariadenia na čítanie

Pozrime sa na charakteristiky prečítané vo všeobecnom prístupovom profile (uuid = 1800). Najprv musíme získať hodnoty popisovača služby, popísané na prvom obrázku, v tomto prípade začína od 5 do 11. Teraz môžeme získať všetky úchyty v tomto intervale pomocou cmd char-desc

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

Podľa špecifikácie všeobecného prístupového profilu UUID 2A00 odkazuje na názov zariadenia.

Vzhľadom na to, že 2a00 je v našom zariadení rukoväť 0x0007, prečítajme 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

Pri prevode hexu na ASCII je názov zariadenia: „CSR HR Sensor“

Krok 5: Čítanie BPM

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

UUID služby srdcovej frekvencie je 0x180d, takže interval spracovania je od 0x000c do 0x0013

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

rukoväť: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb rukoväť: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb rukoväť: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb rukoväť: 0x000d: 00002902-0000-1000-8000-00805f9b34fb kľučka: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb kľučka: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb rukoväť: 0x0012, uuid 00: 00 1000-8000-00805f9b34fb rukoväť: 0x0013, uid: 00002a39-0000-1000-8000-00805f9b34fb

Prečítajte si všetky charakteristické vyhlásenia (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šimni si:

- rukoväť 0x000d je CCCD pre službu 2a37 (meranie srdcového tepu) s bitom 10 (podpora UPOZORNENIE)

- rukoväť 0x0010 je CCCD pre službu 2a38 (umiestnenie telesného senzora) s bitom 02 (podpora READ)

- rukoväť 0x0012 je CCCD pre službu 2a39 (kontrolný bod srdcovej frekvencie) s bitom 08 (podpora WRITE)

Teraz vieme, že meranie srdcového tepu funguje iba s upozornením. To znamená, že sa najskôr musíme zaregistrovať na zmeny hodnôt v jeho CCCD (UUID 0x2902), čo je v tomto prípade rukoväť 0xf

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

Oznamovací úchyt = hodnota 0x000e: 16 65 f3 01 Charakteristická hodnota bola úspešne zapísaná Oznamovací úchyt = 0x000e hodnota: 16 6d fa 01 Oznamovací úchyt = 0x000e hodnota: 16 6d fa 01 Oznamovacia páka = 0x000e hodnota: 16 6c f9 01 Oznamovacia páka = hodnota 0x000e: 16 6a f7 01 Rukoväť oznámenia = hodnota 0x000e: 16 69 f6 01

Podľa špecifikácie profilu je druhým hexadecimálnym číslom informácia o BPM.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Krok 6: Prečítajte si umiestnenie telesného senzora

Čítanie polohy telesného senzora
Čítanie polohy telesného senzora

Umiestnenie telesného senzora je UUID 0x2A38. Táto charakteristika podľa svojho deskriptora podporuje základné čítanie, takže môžeme priamo prečítať jej hodnotu.

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

Podľa špecifikácie SIG 03 znamená „prst“

Odporúča: