У меня есть приложение BLE, работающее на nrf51822 на Zephyr. Приложение считывает данные с датчика влажности и температуры и выставляет характеристики окружающей среды c. Главное выставленное значение - температура (uuid: 2A6E).
У меня проблемы с чтением этих данных через Bluez на linux. С приложением nrfConnect все работает без проблем - я подключаюсь к устройству и вижу показания температуры - где-то между 20 и 26 градусами (назначенными указанному uuid).
Через Bluez Я могу подключиться и прочитать характеристики c, но значения не имеют для меня никакого смысла. Вот мой рабочий процесс:
$ sudo gatttool -t random -b <ADDR> -I
$ [<ADDR>][LE]> connect
$ Attempting to connect to <ADDR>
$ Connection successful
$ [<ADDR>][LE]> char-desc
# there are a lot of other chars here, I list the one that interests me
$ handle: 0x0017, uuid: 00002a6e-0000-1000-8000-00805f9b34fb
$ [<ADDR>][LE]> char-read-hnd 0x17
$ Characteristic value/descriptor: 2e 09
Итак, я получаю это значение, и я не могу преобразовать его каким-либо известным мне способом во что-то, что имело бы смысл. Мне знаком этот документ: температура xml, но я не могу понять, как это может мне помочь. Так или иначе, приложение Nordi c может иметь смысл, и я бы тоже хотел это сделать.