2016-05-06 2 views
0

Я использую малиновый pi с Bluetooth-ключом для имитации маяка. Я хочу измерить время, необходимое мобильному приложению для обнаружения UUID маяка, когда я изменяю его в малине. С помощью этого кода я узнал сервер, используемый смартфон для синхронизации плиткеСинхронизировать время между приложением android и сервером

final Resources res = this.getResources(); 
     final int id = Resources.getSystem().getIdentifier(
       "config_ntpServer", "string","android"); 
     final String defaultServer = res.getString(id); 

Чем я синхронизированное время в Raspberry Pi с

sudo ntpdate -u 2.android.pool.ntp.org 

Перед тем, как изменить идентификатор маяка I печати время

timestamp() { 
    date +"%T,%3N" 
} 


timestamp # print timestamp 

sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1..... 

Тогда я сравниваю время, когда я изменил UUID и время в LogCat когда UUID был замечен в первый раз, и результат является отрицательным Alwayse UUID изменен на 15: 33: 03,276 и обнаружен в 15: 33: 02.301.

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

ответ

1

Несколько мыслей:

  • Оба Android устройства и Pi по умолчанию будет синхронизировать свое время с сервером NTP автоматически, если у них есть подключение к сети. Вам не нужно ничего делать.

  • Демон NTP не всегда сразу меняет часы - он постепенно корректирует его с течением времени, чтобы не нарушать процессы linux при непосредственном скачке. Поскольку у малины Pi нет часов реального времени, у него всегда есть неправильное время при загрузке. Возможно, вам придется подождать минуты после загрузки, прежде чем он синхронизируется с устройством Android.

  • NTP не совершенен. Не ожидайте, чтобы синхронизировать ваши часы с более чем 10 миллисекундами при использовании интернет-серверов времени. Поскольку время обнаружения Bluetooth может быть очень быстрым (также в диапазоне 10 с миллисекунды), если вы получаете время обнаружения -100 мс, это может быть в пределах этой настройки.

То, что вы показываете, - это время обнаружения около -1,0 секунды. Это говорит о том, что время не синхронизировано хорошо. Я подозреваю, что проблема Pi и устранение неполадок. Возможно, было бы полезно показать время на миллисекунду на обоих устройствах рядом для устранения неполадок.

Смежные вопросы