GATT API bluez - MI band 2 - PullRequest
       65

GATT API bluez - MI band 2

0 голосов
/ 06 сентября 2018

Я несколько недель пытался подключиться к часам MI Band 2 и прочитать значение характеристики сердечного ритма, но безуспешно.

Я немного не уверен, что это за процедура, когда мы говорим о ГАТТ. Для API https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt я думал об использовании интерфейса org.bluez.GattCharacteristic1 для считывания значения.

Я могу подключить и спарить часы и получить все UUID (сервисы, дескрипторы и характеристики). Измерение сердечного ритма имеет следующую информацию:

Characteristic
    /org/bluez/hci0/dev_CD_1D_69_25_19_5E/service0027/char0028
    00002a37-0000-1000-8000-00805f9b34fb

Я пытался использовать программу bluetoothctl для считывания значения, но получил «недопустимый» отзыв.

Какова процедура считывания значения признака с использованием GATT API.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Ваше устройство использует принятый профиль частоты сердечных сокращений, поскольку 0x2A37 является принятой характеристикой UUID для измерения частоты сердечных сокращений. Я бы порекомендовал вам использовать инструменты командной строки BlueZ следующим образом: -

1. Найдите маркер характеристики сердечного ритма, используя: -

gatttool -b 00:11:22:33:44:55 --characteristics

Замените 00: 11: 22: 33: 44: 55 на адрес Bluetooth вашего устройства. По сути, вы хотите найти uuid, содержащий 2a37, и записать соответствующий ему «дескриптор значения символа».

2. Найдите дескрипторы по этому дескриптору, используя: -

gatttool -b 00:11:22:33:44:55 char-desc --handle=0xXX

Где XX - дескриптор значения символа, который вы записали ранее. Вы должны быть в состоянии увидеть несколько характерных дескрипторов на этом дескрипторе. Запишите на ручку символа uuid 2902.

3- Включить уведомления, написав «0100» для этого дескриптора, используя: -

gatttool -b 00:11:22:33:44:55 --sec-level=high --char-write --handle=0xYYYY --value=0100

Где 0xYYYY - дескриптор CCCD, который вы отметили на шаге 2. Как только это произойдет, вы должны начать получать данные индикации, которые можно расшифровать, используя найденную структуру данных температуры здесь .

Более подробную информацию об использовании команд BlueZ можно найти по следующим ссылкам: -

Надеюсь, это поможет.

0 голосов
/ 07 сентября 2018

Может быть, вы можете попробовать программу оболочки gatttool или использовать приложение типа nRF Connect для чтения.

...