Попытка подключить телефон Android к несколько необычному, нестандартному устройству BLE (монитору артериального давления). Точки данных:
- Моя программа прекрасно подключается и читает другие устройства BLE.
- Моя программа видит устройство в сканировании BLE, но не подключается. Вместо этого я сразу получаю статус «Отключено» с помощью общего GATT_ERROR (код состояния 0x85).
- Приложение сканера Nordic Android BLE подключит и прочитает / запишет устройство.
- Устройство использует неизвестную службу (FFF0) с одной характеристикой (FFF1) для уведомлений от устройства, а другая (FFF2) - для записи на него команд.
- Программное обеспечение анализатора пакетов TI BLE указывает на то, что на устройство никогда не отправляется запрос на подключение.
Вот что я наблюдал за сканерным приложением Nordic:
Когда вы включаете устройство, оно рекламирует, и приложение может подключиться к нему. Если затем включить уведомления на FFF1, вы получите байт 0xA5; это в соответствии со спецификацией устройства, которая говорит, что посылает этот байт каждые 500 мс. (Довольно элементарные) документы говорят, что это «ожидание соединения», но очевидно, что оно уже подключено.
Если вы затем запишите указанную строку «start» в FFF2, она начнет считывать данные и будет работать правильно.
Приложение Nordic может подключаться; почему не моё?
Обновление: проверили, что приложение Nordic работает на том же телефоне Android, на котором работает моя программа.