Недавно я приобрел электрический скутер Segway Ninebot ES2. Я могу подключиться к самокату через Bluetooth LE и получить информацию, такую как состояние батареи, текущий пробег, температура и так далее. Все это делается через приложение .
На моем устройстве Android я успешно удалил файл журнала HCI, который импортировал в Wireshark. Я вижу все запросы и команды, отправляемые назад и вперед между моим телефоном и скутером. Тем не менее, запросы и ответы являются мусором, и я не знаю, как их интерпретировать.
Пример отправленной команды (информация говорит Sent Write Command, Handle: 0x000e (Nordic UART Service: Nordic UART Tx)
)
Пример полученного значения, которое я получил сразу после (информация говорит Rcvd Handle Value Notification, Handle: 0x000b (Nordic UART Service: Nordic UART Rx)
)
Как я должен интерпретировать эти ответы? Если бы уровень заряда батареи был 59%, я бы ожидал, что он вернет что-то вроде 0x3b
(шестнадцатеричный 0x3b равен 59 десятичных). Но, честно говоря, я понятия не имею, как это работает. Может быть, они возвращают кучу данных в типе данных, только их приложение знает, как интерпретировать? Как JSON для веб-сайтов.
Вот пример из приложения nRF Connect for Mobile , где я нажимаю стрелку вниз по всем характеристикам: https://i.imgur.com/hREDomP.jpg (большое изображение)
И, возможно, более важно: как мне повторить запрос или команду в nRF Connect? Я попытался отправить байтовый массив, который выглядит как 0x {02410011000d.....}
(из команды записи) в приложении, но я не знаю, как прочитать ответ.