Синхронизация времени нескольких устройств с помощью BLE

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

Для этого я использую Bluetooth с низким энергопотреблением. Ведущее устройство играет периферийную роль, объявляя настраиваемую услугу, содержащую характеристику «текущее время», а другие устройства, действующие как центральные, будут искать эту рекламу, подключаться к ведущему, считывать текущее время. Пока мне удалось заставить его работать только для одного периферийного устройства и одного центрального.

Может ли периферийное устройство подключаться к нескольким центральным устройствам, если да, то каков предел количества подключений?

Есть ли лучший способ решить этот вариант использования синхронизации времени нескольких устройств?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
952
1

Ответы 1

Это немного специфично для SoC, но вам стоит почитать этот блог: https://devzone.nordicsemi.com/b/blog/posts/wireless-timer-synchronization-among-nrf5-devices

Максимальный джиттер 220 нс за 30 минут - настоящее достижение. Хотя он не использует BLE, но проприетарный 2,4 ГГц, идея может быть применена и для BLE, но не с той же производительностью.

Другие вопросы по теме