@prilichny

Почему мое приложение не отключается от моего BLE устройства?

У меня есть некое самодельное BLE устройство (peripheral) с одной-единственной характеристикой и двумя светодиодами. Когда к моему устройству подключено другое устройство, мое устройство мигает раз в секунду зеленым светодиодом.
Когда я пишу некое значение в характеристику, мое устройство проверяет условия, и если все ок - делает три коротких подмигивания одним светодиодом или мигает один раз другим светодиодом (прошу прощения за сумбурное описание).

У меня стоит задача создать Android приложение-пульт для этого устройства. Приложение подключается по MAC адресу к моему устройству, пишет в характеристику и отключается от устройства. Проблема в том, что после записи в характеристику и отключения приложения от устройства мое устройство продолжает мигать светодиодом, как будто смартфон по-прежнему подключен (раньше помогало выключить полностью приложение или отключить Bluetooth-адаптер, но в какой-то момент и это перестало помогать).

С другой стороны, если я подключаюсь к устройству с помощью других BLE приложений (для разработчиков), которые позволяют писать в характеристику - все отрабатывает штатно, как и задумывалось: начинает мигать светодиод, указывающий на подключение устройства, мигает тот или иной светодиод в момент записи, а при отключении устройства диоды перестают мигать.

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

Вопрос сложно сформулировать. С какой стороны лучше подойти к отладке? Из мыслей:
1. Сделать аналог устройства в виде отдельного приложения на другом телефоне - это позволило бы убедиться в нормальной работе моего приложения (или навело бы на мысли, где проблема)
2. Понять, чем этот баг чреват: меня волнует в первую очередь энергопотребление устройства и потенциальная невозможность подключения к нему (denial of service?). То есть добраться до осциллографа и измерить энергопотребление, когда устройство якобы не отключено? (отладочное мигание светодиода в момент подключения я могу отключить. прошивке). Про вторую часть - приложение при этом спокойно отрабатывает сколько угодно много.
3. С отладкой моего устройства на базе чипа Nordic у меня определенные трудности. На Android отладку делать проще - поэтому иду по пути наименьшего сопротивления.
  • Вопрос задан
  • 17 просмотров
Решения вопроса 1
@prilichny Автор вопроса
А снимаю вопрос. Помогло сделать секундную задержку между записью характеристики и отключением от устройства.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы