Turinys:

Vertybių skaitymas iš BLE įrenginio naudojant CSR1010 ir „Dragonboard 410c“: 6 žingsniai
Vertybių skaitymas iš BLE įrenginio naudojant CSR1010 ir „Dragonboard 410c“: 6 žingsniai

Video: Vertybių skaitymas iš BLE įrenginio naudojant CSR1010 ir „Dragonboard 410c“: 6 žingsniai

Video: Vertybių skaitymas iš BLE įrenginio naudojant CSR1010 ir „Dragonboard 410c“: 6 žingsniai
Video: Kaip naudotis el. knygų skaitytuvu 2024, Lapkritis
Anonim
Vertybių skaitymas iš BLE įrenginio naudojant CSR1010 ir „Dragonboard 410c“
Vertybių skaitymas iš BLE įrenginio naudojant CSR1010 ir „Dragonboard 410c“

Ši pamoka parodo, kaip skaityti vertes iš BLE įrenginio CSR1010 naudojant „Dragonboard 410c“su „Linaro“

Šiame pavyzdyje CSR1010 imituoja širdies ritmo jutiklį.

1 veiksmas: nuskaitykite BLE įrenginį

Atlikdami šį veiksmą patikrinkite, ar jūsų BT klientas yra pasirengęs nuskaityti BLE įrenginius.

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

LE Scan… 18: EE: 69: 00: CE: 00 (nežinoma) 18: EE: 69: 00: CE: 00 (nežinoma) EE: 52: 5B: 04: 00: 02 CSR HR jutiklis

2 žingsnis: Įrenginio prijungimas

Savo įrenginiui prijungti naudosime „gatttool“

-b: įrenginio MAC adresas

-t: LE adreso tipas. Gali būti viešas arba atsitiktinis, reikia patikrinti įrenginio specifikacijas. Šiuo atveju yra viešas.

-I: interaktyvus „gatttool“režimas. Bus atidarytas raginimas siųsti cmds į įrenginį

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

Kai raginimas bus atidarytas, galime nusiųsti „connect cmd“į įrenginį.

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

Ryšys sėkmingas

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

3 žingsnis: Įrenginio charakteristikų nuskaitymas

Įrenginio charakteristikų nuskaitymas
Įrenginio charakteristikų nuskaitymas

Kai įrenginys prijungtas, galime perskaityti visas galimas paslaugas, atsiųsdami cmd „pirminis“

Remdamiesi paslaugos UUID, galime atrasti paslaugos tipą GATT specifikacijoje

www.bluetooth.com/specifications/gatt/services

4 žingsnis: Įrenginio pavadinimo skaitymas

Skaitymo įrenginio pavadinimas
Skaitymo įrenginio pavadinimas

Panagrinėkime charakteristikas, perskaitytas bendrame prieigos profilyje (uuid = 1800). Pirmiausia turime gauti aptarnavimo rankenos reikšmes, aprašytas pirmame paveikslėlyje, šiuo atveju prasideda nuo 5 iki 11. Dabar mes galime nuskaityti visas šio intervalo rankenas naudodami cmd char-desc

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

Pagal bendrosios prieigos profilio specifikaciją UUID 2A00 reiškia įrenginio pavadinimą.

Atsižvelgiant į tai, kad 2a00 yra mūsų įrenginio rankena 0x0007, perskaitykime vertę

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7Būdinga vertė/aprašas: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

Konvertuojant šešiakampį į ASCII, įrenginio pavadinimas yra: '' CSR HR Sensor ''

5 žingsnis: BPM skaitymas

[EE: 52: 5B: 04: 00: 02] [LE]> pirminio rankenos rankena: 0x0001, galinės rankenos rankena: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb 00001800-0000-1000-8000-00805f9b34fb attr rankena: 0x000c, galinė grotelės rankena: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb 00805f9b34fb attr rankena: 0x0018, galinės rankenos rankena: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr rankena: 0x0022, galinė rankena: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb

Širdies ritmo paslaugos UUID yra 0x180d, todėl rankenos intervalas yra nuo 0x000c iki 0x0013

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

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

Visų būdingų deklaracijų skaitymas (UUID 0x2803).

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

Būdinga vertė/aprašas: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Būdinga vertė/aprašas: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Būdinga vertė/aprašas: 08 13 00 39 2a

Pastebėti, kad:

- rankena 0x000d yra CCCD 2a37 paslaugai (širdies ritmo matavimas) su 10 bitu (palaikykite pranešimą)

- rankena 0x0010 yra CCCD, skirta 2a38 tarnybai (kūno jutiklio vieta) su antgaliu 02 (palaikymas SKAITYTI)

- rankena 0x0012 yra CCCD, skirta 2a39 paslaugai (širdies ritmo kontrolės taškas) su bitu 08 (palaikykite WRITE)

Dabar mes žinome, kad širdies ritmo matavimas veikia tik pranešus. Tai reiškia, kad pirmiausia turime užregistruoti jo CCCD vertės keitimus (UUID 0x2902), kuris šiuo atveju yra rankena 0xf

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

Pranešimo rankena = 0x000e reikšmė: 16 65 f3 01 Būdinga reikšmė parašyta sėkmingai Pranešimo rankena = 0x000e vertė: 16 6d fa 01 Pranešimo rankena = 0x000e vertė: 16 6d fa 01 Pranešimo rankena = 0x000e vertė: 16 6c f9 01 Pranešimo rankena = 0x000e vertė: 16 6a f7 01 Pranešimo rankena = 0x000e vertė: 16 69 f6 01

Pagal profilio specifikaciją antrasis šešioliktainis skaičius yra BPM informacija.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

6 veiksmas: skaitykite kūno jutiklio vietą

Kūno jutiklio vietos skaitymas
Kūno jutiklio vietos skaitymas

Kūno jutiklio vieta yra UUID 0x2A38. Pagal aprašą ši charakteristika palaiko pagrindinį skaitymą, todėl jos vertę galime perskaityti tiesiogiai.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Būdinga vertė/aprašas: 03

Pagal SIG specifikaciją 03 reiškia „pirštas“

Rekomenduojamas: