Inhoudsopgave:

Waarden lezen vanaf een BLE-apparaat met CSR1010 en Dragonboard 410c: 6 stappen
Waarden lezen vanaf een BLE-apparaat met CSR1010 en Dragonboard 410c: 6 stappen

Video: Waarden lezen vanaf een BLE-apparaat met CSR1010 en Dragonboard 410c: 6 stappen

Video: Waarden lezen vanaf een BLE-apparaat met CSR1010 en Dragonboard 410c: 6 stappen
Video: VAL NIET IN HET VERKEERDE MYSTERY ZWEMBAD CHALLENGE met PIEN | SUPER SMERIG - Bibi 2024, November
Anonim
Waarden lezen van een BLE-apparaat met CSR1010 en Dragonboard 410c
Waarden lezen van een BLE-apparaat met CSR1010 en Dragonboard 410c

Deze zelfstudie laat zien hoe u waarden van BLE-apparaat CSR1010 kunt lezen met Dragonboard 410c met Linaro

In dit voorbeeld emuleert de CSR1010 een hartslagsensor.

Stap 1: Scan BLE-apparaat

Controleer in deze stap of uw BT-client klaar is om BLE-apparaten te scannen.

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

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

Stap 2: Apparaat aansluiten

We zullen gatttool gebruiken om ons apparaat aan te sluiten

-b: MAC-adres apparaat

-t: LE-adrestype. Kan openbaar of willekeurig zijn, moet de apparaatspecificaties controleren. In dit geval is het openbaar.

-I: gatttool interactieve modus. Er wordt een prompt geopend om cmds naar het apparaat te sturen

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

Zodra de prompt is geopend, kunnen we connect cmd naar het apparaat sturen.

[EE:52:5B:04:00:02][LE]> connectProbeert verbinding te maken met EE:52:5B:04:00:02

Verbinding succesvol

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

Stap 3: Apparaatkenmerken ophalen

Apparaatkenmerken ophalen
Apparaatkenmerken ophalen

Zodra het apparaat is aangesloten, kunnen we alle beschikbare services lezen door de cmd "primair" te verzenden

Op basis van de service-UUID kunnen we het servicetype in de GATT-specificatie ontdekken

www.bluetooth.com/specifications/gatt/services

Stap 4: Apparaatnaam lezen

Apparaatnaam lezen
Apparaatnaam lezen

Laten we eens kijken naar de kenmerken die zijn gelezen op Generic Access Profile (uuid=1800). Eerst moeten we de service-handle-waarden ophalen, beschreven op de eerste afbeelding, in dit geval begint het van 5 tot 11. Nu kunnen we alle handvatten in dit interval ophalen met behulp van de cmd char-desc

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

Volgens de Generic Access Profile-specificatie verwijst de UUID 2A00 naar Device Name.

Aangezien de 2a00 het handvat 0x0007 in ons apparaat is, laten we de waarde lezen

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

Hex converteren naar ASCII, de apparaatnaam is: ''CSR HR Sensor"

Stap 5: De BPM aflezen

[EE:52:5B:04:00:02][LE]> primaryattr handle: 0x0001, end grp handle: 0x0004 uuid: 00001801-0000-1000-8000-000805f9b34fb attr handle: 0x0005, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-000805f9b34fb attr handgreep: 0x000c, einde handgreep: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr handgreep: 0x0014, einde handgreep: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb attr handgreep: 0x0018, uiteinde handgreep: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr handgreep: 0x0022, einde handgreep: 0xffff uuid: 0000180a-0000-1000-8000-000805f9b34fb

De UUID van de hartslagservice is 0x180d, dus het handvatinterval is van 0x000c tot 0x0013

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

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

Alle Kenmerkverklaringen lezen (UUID 0x2803).

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

Kenmerkwaarde/descriptor: 10 0e 00 37 2a [EE:52:5B:04:00:02][LE]> char-read-hnd 0x0010 Kenmerkwaarde/descriptor: 02 11 00 38 2a [EE:52:5B: 04:00:02][LE]> char-read-hnd 0x0012 Karakteristieke waarde/descriptor: 08 13 00 39 2a

Let erop dat:

- handvat 0x000d is de CCCD voor service 2a37 (Hartslagmeting) met bit 10 (ondersteuning NOTIFY)

- handvat 0x0010 is de CCCD voor service 2a38 (Body Sensor Location) met bit 02 (ondersteuning LEZEN)

- handvat 0x0012 is de CCCD voor service 2a39 (Heart Rate Control Point) met bit 08 (ondersteuning WRITE)

Nu weten we dat hartslagmeting alleen werkt met melding. Het betekent dat we ons eerst moeten registreren voor waardeveranderingen in de CCCD (UUID 0x2902), in dit geval handle 0xf

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

Meldingshandvat = 0x000e-waarde: 16 65 f3 01 Kenmerkwaarde is met succes geschreven Meldingshandvat = 0x000e-waarde: 16 6d fa 01 Meldingshandvat = 0x000e-waarde: 16 6d fa 01 Meldingshandvat = 0x000e-waarde: 16 6c f9 01 Meldingshandvat = 0x000e-waarde: 16 6a f7 01 Meldingshandvat = 0x000e waarde: 16 69 f6 01

Volgens de profielspecificatie is het tweede hexadecimale nummer de BPM-informatie.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Stap 6: De locatie van de lichaamssensor aflezen

De locatie van de lichaamssensor lezen
De locatie van de lichaamssensor lezen

Lichaamssensorlocatie is de UUID 0x2A38. Volgens de descriptor ondersteunt dit kenmerk basislezen, zodat we de waarde ervan direct kunnen lezen.

[EE:52:5B:04:00:02][LE]> char-read-hnd 0x11 Karakteristieke waarde/descriptor: 03

Volgens SIG-specificatie betekent 03 "vinger"

Aanbevolen: