Indholdsfortegnelse:

Læsning af værdier fra en BLE -enhed ved hjælp af CSR1010 og Dragonboard 410c: 6 trin
Læsning af værdier fra en BLE -enhed ved hjælp af CSR1010 og Dragonboard 410c: 6 trin

Video: Læsning af værdier fra en BLE -enhed ved hjælp af CSR1010 og Dragonboard 410c: 6 trin

Video: Læsning af værdier fra en BLE -enhed ved hjælp af CSR1010 og Dragonboard 410c: 6 trin
Video: Sådan laver man FAKE BRÆK! | Akavet 2024, December
Anonim
Læsning af værdier fra en BLE -enhed ved hjælp af CSR1010 og Dragonboard 410c
Læsning af værdier fra en BLE -enhed ved hjælp af CSR1010 og Dragonboard 410c

Denne vejledning viser, hvordan du læser værdier fra BLE -enhed CSR1010 ved hjælp af Dragonboard 410c med Linaro

I dette eksempel efterligner CSR1010 en pulssensor.

Trin 1: Scan BLE -enhed

I dette trin skal du kontrollere, om din BT -klient er klar til at scanne BLE -enheder.

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

LE Scan … 18: EE: 69: 00: CE: 00 (ukendt) 18: EE: 69: 00: CE: 00 (ukendt) EE: 52: 5B: 04: 00: 02 CSR HR -sensor

Trin 2: Tilslutning af enhed

Vi vil bruge gatttool til at forbinde vores enhed

-b: Enhedens MAC -adresse

-t: LE -adressetype. Kan være offentlig eller tilfældig, skal tjekkes enhedsspecifikationer. I dette tilfælde er det offentligt.

-I: gatttool interaktiv tilstand. Det åbner en prompt om at sende cmds til enheden

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

Når prompten er åben, kan vi sende connect cmd til enheden.

[EE: 52: 5B: 04: 00: 02] [LE]> connect Forsøger at oprette forbindelse til EE: 52: 5B: 04: 00: 02

Forbindelsen lykkedes

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

Trin 3: Hentning af enhedsegenskaber

Henter enhedens egenskaber
Henter enhedens egenskaber

Når enheden er tilsluttet, kan vi læse alle tilgængelige tjenester ved at sende cmd "primær"

Baseret på tjenesten UUID kan vi opdage servicetypen i GATT -specifikation

www.bluetooth.com/specifications/gatt/services

Trin 4: Læsning af enhedsnavn

Læser enhedsnavn
Læser enhedsnavn

Lad os undersøge de egenskaber, der er læst på Generic Access Profile (uuid = 1800). Først skal vi hente servicehåndtagets værdier, beskrevet på første billede, i dette tilfælde starter fra 5 til 11. Nu kan vi hente alle håndtag i dette interval ved hjælp af cmd char-desc

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

I henhold til specifikationen for generisk adgangsprofil refererer UUID 2A00 til enhedsnavn.

I betragtning af at 2a00 er håndtaget 0x0007 i vores enhed, lad os læse værdien

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

Ved konvertering af hex til ASCII er enhedsnavnet: '' CSR HR Sensor ''

Trin 5: Læsning af BPM

[EE: 52: 5B: 04: 00: 02] [LE]> primærattr-håndtag: 0x0001, ende-grp-håndtag: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr-håndtag: 0x0005, ende-grp-håndtag: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr håndtag: 0x000c, ende grp håndtag: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr håndtag: 0x0014, ende grp håndtag: 0x0017 uuid: 0000180f-00000 00805f9b34fb attr håndtag: 0x0018, ende grp håndtag: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr håndtag: 0x0022, ende grp håndtag: 0xffff uuid: 0000180a-0000-1000-8000-00805f9

Pulsservice UUID er 0x180d, så håndteringsintervallet er fra 0x000c til 0x0013

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

håndtag: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb håndtag: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb håndtag: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34f: 00002902-0000-1000-8000-00805f9b34fb håndtag: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb håndtag: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb håndtag: 0x0012, uuid: 1000-8000-00805f9b34fb håndtag: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Læser alle de karakteristiske erklæringer (UUID 0x2803).

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

Karakteristisk værdi/beskrivelse: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Karakteristisk værdi/deskriptor: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Karakteristisk værdi/deskriptor: 08 13 00 39 2a

Læg mærke til det:

- håndtag 0x000d er CCCD for service 2a37 (pulsmåling) med bit 10 (understøtt NOTIFY)

- håndtag 0x0010 er CCCD for service 2a38 (Body Sensor Location) med bit 02 (understøtt LÆS)

- håndtag 0x0012 er CCCD for service 2a39 (hjertefrekvenskontrolpunkt) med bit 08 (support WRITE)

Nu ved vi, at pulsmåling kun fungerer med underretning. Det betyder, at vi først skal registrere for værdiændringer i dens CCCD (UUID 0x2902), som i dette tilfælde håndterer 0xf

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

Notifikationshåndtag = 0x000e værdi: 16 65 f3 01 Karakteristisk værdi blev skrevet med succes Notification handle = 0x000e value: 16 6d fa 01 Notification handle = 0x000e value: 16 6d fa 01 Notification handle = 0x000e value: 16 6c f9 01 Notification handle = 0x000e value: 16 6a f7 01 Notifikationshåndtag = 0x000e værdi: 16 69 f6 01

Ifølge profilspecifikationen er det andet hex -nummer BPM -informationen.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Trin 6: Læsning af kropssensorens placering

Læsning af kropssensorens placering
Læsning af kropssensorens placering

Body Sensor Location er UUID 0x2A38. Ifølge dens deskriptor understøtter denne egenskab grundlæggende læsning, så vi kan læse dens værdi direkte.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Karakteristisk værdi/deskriptor: 03

Ifølge SIG -specifikationen betyder 03 "Finger"

Anbefalede: