Satura rādītājs:

Vērtību nolasīšana no BLE ierīces, izmantojot CSR1010 un Dragonboard 410c: 6 soļi
Vērtību nolasīšana no BLE ierīces, izmantojot CSR1010 un Dragonboard 410c: 6 soļi

Video: Vērtību nolasīšana no BLE ierīces, izmantojot CSR1010 un Dragonboard 410c: 6 soļi

Video: Vērtību nolasīšana no BLE ierīces, izmantojot CSR1010 un Dragonboard 410c: 6 soļi
Video: Kontrolējiet maiņstrāvas spuldzi ar Arduino AC Dimmer 2024, Novembris
Anonim
Vērtību nolasīšana no BLE ierīces, izmantojot CSR1010 un Dragonboard 410c
Vērtību nolasīšana no BLE ierīces, izmantojot CSR1010 un Dragonboard 410c

Šī apmācība parāda, kā nolasīt vērtības no BLE ierīces CSR1010, izmantojot Dragonboard 410c ar Linaro

Šajā piemērā CSR1010 emulē sirdsdarbības sensoru.

1. darbība: skenējiet BLE ierīci

Šajā solī pārbaudiet, vai jūsu BT klients ir gatavs BLE ierīču skenēšanai.

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

LE Scan… 18: EE: 69: 00: CE: 00 (nezināms) 18: EE: 69: 00: CE: 00 (nezināms) EE: 52: 5B: 04: 00: 02 CSR HR sensors

2. darbība: ierīces pievienošana

Savas ierīces savienošanai mēs izmantosim gatttool

-b: ierīces MAC adrese

-t: LE adreses veids. Var būt publisks vai nejaušs, jāpārbauda ierīces specifikācijas. Šajā gadījumā tas ir publisks.

-I: interaktīvais režīms gatttool. Tas atvērs uzvedni, lai nosūtītu cmds uz ierīci

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

Kad uzvedne ir atvērta, mēs varam nosūtīt ierīcei savienojumu cmd.

[EE: 52: 5B: 04: 00: 02] [LE]> savienot Mēģina izveidot savienojumu ar EE: 52: 5B: 04: 00: 02

Savienojums ir veiksmīgs

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

3. darbība. Ierīces īpašību izgūšana

Ierīces īpašību izgūšana
Ierīces īpašību izgūšana

Kad ierīce ir pievienota, mēs varam izlasīt visus pieejamos pakalpojumus, nosūtot cmd "primārais"

Pamatojoties uz pakalpojuma UUID, mēs varam atklāt pakalpojuma veidu GATT specifikācijā

www.bluetooth.com/specifications/gatt/services

4. darbība. Ierīces nosaukuma lasīšana

Lasīšanas ierīces nosaukums
Lasīšanas ierīces nosaukums

Izpētīsim raksturlielumus, kas lasīti vispārējā piekļuves profilā (uuid = 1800). Vispirms mums jāiegūst pakalpojuma roktura vērtības, kas aprakstītas pirmajā attēlā, šajā gadījumā sākas no 5 līdz 11. Tagad mēs varam iegūt visus rokturus šajā intervālā, izmantojot cmd char-desc

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

Saskaņā ar vispārējās piekļuves profila specifikāciju UUID 2A00 attiecas uz ierīces nosaukumu.

Ņemot vērā, ka 2a00 ir mūsu ierīces rokturis 0x0007, lasīsim vērtību

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Raksturīgā vērtība/deskriptors: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

Konvertējot hex uz ASCII, ierīces nosaukums ir: '' CSR HR Sensor ''

5. darbība: BPM lasīšana

[EE: 52: 5B: 04: 00: 02] [LE]> primārais roktura rokturis: 0x0001, gala satvēriena rokturis: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr rokturis: 0x0005, gala satvēriena rokturis: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr rokturis: 0x000c, gala grp rokturis: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr rokturis: 0x0014, gala grp rokturis: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb attr rokturis: 0x0018, gala rokturis: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr rokturis: 0x0022, gala grp rokturis: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb

Sirdsdarbības pakalpojuma UUID ir 0x180d, tāpēc rokturu intervāls ir no 0x000c līdz 0x0013

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

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

Visu raksturīgo deklarāciju lasīšana (UUID 0x2803).

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

Raksturīgā vērtība/deskriptors: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Raksturīgā vērtība/deskriptors: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Raksturīgā vērtība/deskriptors: 08 13 00 39 2a

Ievērojiet, ka:

- rokturis 0x000d ir CCCD pakalpojumam 2a37 (sirdsdarbības mērīšana) ar 10. bitu (atbalsts NOTIFY)

- rokturis 0x0010 ir CCCD pakalpojumam 2a38 (ķermeņa sensora atrašanās vieta) ar bitu 02 (atbalsts LASĪT)

- rokturis 0x0012 ir CCCD pakalpojumam 2a39 (sirdsdarbības kontroles punkts) ar bitu 08 (atbalsts WRITE)

Tagad mēs zinām, ka sirdsdarbības mērīšana darbojas tikai ar paziņojumu. Tas nozīmē, ka vispirms mums jāreģistrējas vērtību izmaiņām tās CCCD (UUID 0x2902), kas šajā gadījumā ir rokturis 0xf

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

Paziņojumu rokturis = 0x000e vērtība: 16 65 f3 01 Raksturlieluma vērtība ir veiksmīgi uzrakstīta Paziņojumu rokturis = 0x000e vērtība: 16 6d fa 01 Paziņojumu rokturis = 0x000e vērtība: 16 6d fa 01 Paziņojumu rokturis = 0x000e vērtība: 16 6c f9 01 Paziņojumu rokturis = 0x000e vērtība: 16 6a f7 01 Paziņojuma rokturis = 0x000e vērtība: 16 69 f6 01

Saskaņā ar profila specifikāciju otrais heksadecimālais skaitlis ir BPM informācija.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

6. darbība: ķermeņa sensora atrašanās vietas nolasīšana

Ķermeņa sensora atrašanās vietas lasīšana
Ķermeņa sensora atrašanās vietas lasīšana

Ķermeņa sensora atrašanās vieta ir UUID 0x2A38. Saskaņā ar tā deskriptoru šī īpašība atbalsta pamata lasīšanu, tāpēc mēs varam nolasīt tās vērtību tieši.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Raksturīgā vērtība/deskriptors: 03

Saskaņā ar SIG specifikāciju 03 nozīmē "pirksts"

Ieteicams: