BLE-интерпретация - PullRequest
       22

BLE-интерпретация

0 голосов
/ 24 мая 2018

Я экспериментирую с BLE-сниффингом и wireshark, чтобы получить данные для обменаС самого начала: у меня есть приложение производителя, которое связывается с устройством.Это устройство, которое является сервером, должно быть связано с моим смартфоном, и это делается из приложения.Поэтому я сделал приложение для быстрого подключения и сравнил файл hci_log на предмет различий.Теперь, я думаю, у меня есть данные для обмена, чтобы сделать сопряжение.Теперь проблема: у меня есть UUID службы и характеристики и значение, которое я хочу отправить.Я собирался создать машину состояний, потому что для этого нужно отправить несколько команд.Вот выдержка из сниффа:

ATT 26 Уведомление о значении отправленного дескриптора, дескриптор: 0x0031 (общий профиль доступа: центральное разрешение адреса: неизвестно)

UUID службы: 0x1800Characteristic_UUID: 0x2006

значение: 18: 00: 17: 00: 22: 00: 12: 2f: 2f: 77: 2f: 43: 2f: 55: 53: 47: 58: 32:44: ff

Я не знаю, нужно ли мне отправлять с помощью команды признака .Write () или мне нужно отправить уведомление / CCCD. Я предполагаю, что мне нужно отправитьэто к уведомлению, но я не могу найти команду включения уведомлений в журнале раньше.Можно ли отправить данные в уведомление до его включения?Спасибо за вашу помощь

1 Ответ

0 голосов
/ 25 мая 2018

Если устройство не связано, клиенту необходимо записать 0x0001 (байты 0x01, а затем 0x00) в дескриптор конфигурации характеристик клиента, чтобы сервер мог отправлять уведомления.Если устройства отключены, а затем снова подключены, дескриптор необходимо переписать.

Если устройства связаны, клиенту также необходимо выполнить запись в дескриптор, но если они отключаются и повторно подключаются, сервер запоминает дескрипторзначение, чтобы клиенту не приходилось писать его снова.

...