Агуулгын хүснэгт:

CSR1010 болон Dragonboard 410c ашиглан BLE төхөөрөмжөөс утгыг унших: 6 алхам
CSR1010 болон Dragonboard 410c ашиглан BLE төхөөрөмжөөс утгыг унших: 6 алхам
Anonim
CSR1010 болон Dragonboard 410c ашиглан BLE төхөөрөмжөөс утгыг унших
CSR1010 болон Dragonboard 410c ашиглан BLE төхөөрөмжөөс утгыг унших

Энэхүү заавар нь Linaro -тай Dragonboard 410c ашиглан BLE төхөөрөмж CSR1010 -аас утгыг хэрхэн уншихыг харуулав

Энэ жишээнд CSR1010 нь зүрхний цохилтын мэдрэгчийг дуурайж байна.

Алхам 1: BLE төхөөрөмжийг скан хийх

Энэ алхамд таны BT үйлчлүүлэгч BLE төхөөрөмжийг скан хийхэд бэлэн байгаа эсэхийг шалгаарай.

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

LE Scan… 18: EE: 69: 00: CE: 00 (тодорхойгүй) 18: EE: 69: 00: CE: 00 (үл мэдэгдэх) EE: 52: 5B: 04: 00: 02 CSR HR Sensor

Алхам 2: төхөөрөмжийг холбох

Бид gatttool ашиглан төхөөрөмжөө холбох болно

-b: Төхөөрөмжийн MAC хаяг

-t: LE хаягийн төрөл. Нийтийн болон санамсаргүй байдлаар байж болох тул төхөөрөмжийн тодорхойлолтыг шалгах шаардлагатай. Энэ тохиолдолд нийтэд ил болно.

-Би: gatttool интерактив горим. Энэ нь cmds -ийг төхөөрөмж рүү илгээх хүсэлтийг нээнэ

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

Тушаал нээгдсэний дараа бид төхөөрөмж рүү connect cmd илгээж болно.

[EE: 52: 5B: 04: 00: 02] [LE]> connectEE рүү холбогдохыг оролдож байна: 52: 5B: 04: 00: 02

Холболт амжилттай боллоо

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

Алхам 3: Төхөөрөмжийн шинж чанарыг олж авах

Төхөөрөмжийн шинж чанарыг олж авах
Төхөөрөмжийн шинж чанарыг олж авах

Төхөөрөмжийг холбосны дараа бид cmd "үндсэн" илгээж, боломжтой бүх үйлчилгээг унших боломжтой болно.

UUID үйлчилгээний үндсэн дээр бид GATT -ийн тодорхойлолтоос үйлчилгээний төрлийг олж мэдэх боломжтой

www.bluetooth.com/specifications/gatt/services

Алхам 4: Төхөөрөмжийн нэрийг уншина уу

Төхөөрөмжийн нэрийг уншиж байна
Төхөөрөмжийн нэрийг уншиж байна

Ерөнхий хандалтын профайл (uuid = 1800) дээрх шинж чанаруудыг судалж үзье. Эхлээд бид эхний зурган дээр тайлбарласан үйлчилгээний бариулын утгыг авах ёстой бөгөөд энэ тохиолдолд 5-11 хооронд эхэлнэ. Одоо бид cmd char-desc ашиглан энэ интервал дахь бүх бариулыг авах боломжтой.

[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11 бариул: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb бариул: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb бариул: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb бариул: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb бариул: 0x0009, uuid: 00002a01-0000 uuid: 00002803-0000-1000-8000-00805f9b34fb бариул: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb бариул: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b3000f00 -1000-8000-00805f9b34fb бариул: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb бариул: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb бариул: 0x0010, uuid: 00002000000 00805f9b34fb бариул: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb

Ерөнхий хандалтын профайлын тодорхойлолтын дагуу UUID 2A00 нь төхөөрөмжийн нэрийг хэлнэ.

2a00 бол манай төхөөрөмжийн 0x0007 бариул гэдгийг харгалзан үзээд утгыг нь уншъя

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Онцлог утга/тайлбарлагч: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

Hex -ийг ASCII болгон хөрвүүлэхэд төхөөрөмжийн нэр нь: "CSR HR Sensor"

Алхам 5: BPM -ийг унших

[EE: 52: 5B: 04: 00: 02] [LE]> primattr бариул: 0x0001, end grp handle: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr handle: 0x0005, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr бариул: 0x000c, төгсгөлийн grp бариул: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr бариул: 0x0014, төгсгөлийн grp бариул: 0x0017 uuid: 0000180f-0000-1000 00805f9b34fb attr бариул: 0x0018, төгсгөлийн grp бариул: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr бариул: 0x0022, төгсгөлийн grp бариул: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34f

Зүрхний цохилтын үйлчилгээний UUID нь 0x180d хэмжээтэй тул бариулын интервал 0x000c -ээс 0x0013 хүртэл байна.

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

бариул: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb бариул: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb бариул: 0x000e, uuid: 00002a37-0000-1000-8000-00fff: 00002902-0000-1000-8000-00805f9b34fb бариул: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb бариул: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb бариул: 0x0010, 00x0000 1000-8000-00805f9b34fb бариул: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb

Бүх шинж чанарын мэдэгдлийг унших (UUID 0x2803).

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

Онцлог утга/тодорхойлогч: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Онцлог утга/тодорхойлогч: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Онцлог утга/тайлбарлагч: 08 13 00 39 2a

Үүнийг анхаарна уу:

- 0x000d бариул нь 2a37 (Зүрхний цохилтыг хэмжих) үйлчилгээний 10 -р битийн CCCD юм (мэдэгдэлийг дэмжих)

- 0x0010 бариул нь 2a38 (Биеийн мэдрэгчийн байршил) үйлчилгээний 02 -р битийн CCCD юм (READ -ийг дэмждэг)

- 0x0012 бариул нь 2a39 (Зүрхний цохилтыг хянах цэг) үйлчилгээний CCCD бөгөөд бит нь 08 (Бичихийг дэмждэг)

Зүрхний цохилтын хэмжилт нь зөвхөн мэдэгдлийн дагуу ажилладаг гэдгийг бид одоо мэдэж байна. Энэ нь эхлээд CCCD (UUID 0x2902) дахь утгын өөрчлөлтийг бүртгэх ёстой гэсэн үг бөгөөд энэ тохиолдолд 0xf бариултай болно.

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

Мэдэгдлийн бариул = 0x000e утга: 16 65 f3 01 Онцлог утгыг амжилттай бичсэн Мэдэгдлийн бариул = 0x000e утга: 16 6d fa 01 Мэдэгдлийн бариул = 0x000e утга: 16 6d fa 01 Мэдэгдлийн бариул = 0x000e утга: 16 6c f9 01 Мэдэгдлийн бариул = 0x000e утга: 16 6a f7 01 Мэдэгдлийн бариул = 0x000e утга: 16 69 f6 01

Профайлын тодорхойлолтын дагуу хоёр дахь зургаан өнцөгт дугаар нь BPM мэдээлэл юм.

BPM:

6d = 109

6d = 109

6c = 108

6а = 106

69 = 105

Алхам 6: Биеийн мэдрэгчийн байршлыг уншина уу

Биеийн мэдрэгчийн байршлыг уншиж байна
Биеийн мэдрэгчийн байршлыг уншиж байна

Биеийн мэдрэгчийн байршил нь UUID 0x2A38 юм. Тодорхойлогчийн хэлснээр энэ шинж чанар нь үндсэн уншилтыг дэмждэг тул бид түүний утгыг шууд уншиж чаддаг.

[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11 Онцлог утга/тайлбарлагч: 03

SIG -ийн дагуу 03 нь "хуруу" гэсэн утгатай.

Зөвлөмж болгож буй: