Интервал подключения Bluetooth с низким энергопотреблением на iPhone

В Руководстве по проектированию Apple Bluetooth говорится, что интервал подключения должен быть установлен как таковой на периферийном устройстве.

Interval Min ≥ 20 ms
Interval Min + 20 ms ≤ Interval Max

При установке минимального значения 20 мс, максимального значения 40 мс я ожидаю получить подтверждение от iPhone и самый низкий доступный интервал, но iPhone всегда устанавливает интервал соединения 37,5 мс. Попытка уменьшить максимальное значение приводит к отклонению статуса от iPhone, который затем устанавливает интервал соединения на ~ 100 мс.

Можно ли каким-то образом сократить это время до 20 мс (поскольку это минимум согласно рекомендациям Apple)? Каков реальный минимум? По моим наблюдениям, Interval min можно установить на 30 мс, без разницы.


person chwi    schedule 08.08.2012    source источник


Ответы (2)


Недавно я экспериментировал с этим. Это не соответствует их рекомендациям, поэтому я не уверен, почему это работает, но, используя следующие настройки подключения, я смог получить интервал 18,75 мс с iPad:

  • мин. интервал = 10 мс
  • максимальный интервал = 20 мс
  • задержка = 0
  • тайм-аут = 100 мс
person kruzty    schedule 17.08.2012
comment
Да, похоже, это ошибка, которая должна быть исправлена ​​в iOS6. Никто не знает, почему это работает :P - person chwi; 18.08.2012
comment
И как вы, люди, меняете интервал MIN и MAX? Можете ли вы опубликовать код, который выполняет эту операцию? Спасибо заранее. - person uerceg; 25.02.2013
comment
Я также хочу знать, как установить интервал подключения из приложения iOS. Пожалуйста, дайте мне знать об этом. - person spaleja; 11.03.2013

Bluetooth SIG определяет минимальные и максимальные значения интервала соединения = от 7,25 мс до 4000 мс. Реализация может выбрать любое значение из этого диапазона в качестве минимального или максимального интервала соединения. Однако минимальный интервал соединения не должен превышать максимальный интервал соединения. Минимальное значение зависит от характеристик батареи периферийного устройства, а максимальный интервал подключения зависит от буферов, доступных на периферийном устройстве. Iphone, установивший эти значения на 37,5 мс, дает нам намек на то, что буферы, доступные на периферийном устройстве, являются постоянными. Вы можете попробовать изменить этот параметр и посмотреть, изменится ли теперь интервал соединения.

person Jitender    schedule 14.08.2012
comment
Точно нет. iPhone не умеет считывать состояния буфера на периферии, и изменение параметров не работает (за исключением обнаруженной мной ошибки). iOS 5, по-видимому, поддерживает только этот интервал соединения (37,5), но в iOS6 он должен быть немного лучше, если верить их поддержке. Я делаю периферийное устройство с нуля, поэтому хорошо его контролирую, и изменение параметров подключения вообще не имеет значения. - person chwi; 14.08.2012