BLE интерпретирует журнал hci wireshark

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

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

Сервисный UUID: 0x1800 Характеристика_UUID: 0x2006

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

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


person FishingIsLife    schedule 24.05.2018    source источник


Ответы (1)


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

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

person Emil    schedule 24.05.2018