Мазмұны:

CSR1010 және Dragonboard 410c көмегімен BLE құрылғысынан мәндерді оқу: 6 қадам
CSR1010 және Dragonboard 410c көмегімен BLE құрылғысынан мәндерді оқу: 6 қадам

Бейне: CSR1010 және Dragonboard 410c көмегімен BLE құрылғысынан мәндерді оқу: 6 қадам

Бейне: CSR1010 және Dragonboard 410c көмегімен BLE құрылғысынан мәндерді оқу: 6 қадам
Бейне: SKYRIM SE #269. Лорд-Вампир и Двемерская сфера! 2024, Желтоқсан
Anonim
CSR1010 және Dragonboard 410c көмегімен BLE құрылғысынан мәндерді оқу
CSR1010 және Dragonboard 410c көмегімен BLE құрылғысынан мәндерді оқу

Бұл оқулық Linaro көмегімен Dragonboard 410c көмегімен BSR 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 сенсоры

2 -қадам: құрылғыны қосу

Біз құрылғыны қосу үшін gatttool қолданамыз

-b: құрылғының MAC мекенжайы

-t: LE мекенжай түрі. Жалпыға ортақ немесе кездейсоқ болуы мүмкін, құрылғы сипаттамасын тексеру қажет. Бұл жағдайда жалпыға ортақ.

-I: 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 11handle: 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: 00002a09-0000000000000000 uuid: 00002803-0000-1000-8000-00805f9b34fb тұтқасы: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb тұтқасы: 0x000c, uuid: 00002800-0000-1000-8000-00805f9u300f00: 0x000b00 -1000-8000-00805f9b34fb тұтқасы: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb тұтқасы: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb тұтқасы: 0x0010, uuid: 00002000 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

Он алтылықты ASCII -ге түрлендіру, құрылғының атауы: '' CSR HR Sensor ''

5 -қадам: BPM оқу

[EE: 52: 5B: 04: 00: 02] [LE]> бастапқы бақылау тұтқасы: 0x0001, соңы грп тұтқасы: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb аттракцион: 0x0005, соңғы грп тұтқасы: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb аттракционының тұтқасы: 0x000c, соңы грп тұтқасы: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb аттракцион: 0x0014, соңғы грп тұтқасы: 0x0017 uuid: 0000180f-0000-1000 00805f9b34fb аттракционының тұтқасы: 0x0018, соңы грпінің тұтқасы: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr тұтқасы: 0x0022, соңғы грп тұтқасы: 0xffff uuid: 0000180a-0000-1000-8000-00b5f9b34f

Жүрек соғу жылдамдығының 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 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 2а [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Сипаттамалық мән/дескриптор: 02 11 00 38 2а [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Сипаттамалық мән/дескриптор: 08 13 00 39 2а

Назар аударыңыз:

- 0x000d тұтқасы 2a37 (жүрек соғу жиілігін өлшеу) қызметіне арналған 10 -разрядты CCCD болып табылады (NOTIFY қолдау)

- 0x0010 тұтқасы 02a38 (Дене сенсорының орналасуы) қызметіне арналған CCCD, 02 битпен (ОҚУ -ды қолдау)

- 0x0012 тұтқасы - 08 биті бар 2a39 (жүрек соғу жиілігін басқару нүктесі) қызметіне арналған CCCD (WRITE қолдау)

Енді біз жүрек соғу жиілігін өлшеу тек хабарламамен жұмыс істейтінін білеміз. Бұл дегеніміз, алдымен 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 6а 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 «саусақ» дегенді білдіреді

Ұсынылған: