2016-05-06 3 views
0

J'utilise un pi de framboise avec un dongle Bluetooth pour simuler une balise. Je veux mesurer le temps nécessaire pour qu'une application mobile détecte l'UUID d'une balise quand je la change dans la framboise. Avec ce code, j'ai trouvé le serveur utilisé par le smartphone pour synchroniser la tuileSynchroniser l'heure entre une application android et un serveur

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

Que je synchronisé le temps dans la pi framboise avec

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

Avant de changer l'id de la balise I impression le temps

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


timestamp # print timestamp 

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

Puis je compare le moment où je l'ai changé l'UUID et le temps dans le logcat lorsque l'UUID a été vu pour la première fois et le résultat est négatif Alwayse UUID changé à 15: 33: 03,276 et détecté à 15: 33: 02.301.

Est-ce un problème de synchronisation? Y a-t-il une meilleure manière de faire cela?

Répondre

1

Quelques réflexions:

  • deux l'appareil Android et Pi par défaut synchroniser leur temps à un serveur NTP automatiquement si elles disposent d'une connexion réseau. Tu ne devrais rien faire. Le démon NTP ne change pas toujours l'horloge immédiatement - il l'ajuste lentement au fil du temps afin de ne pas perturber les processus Linux par un saut immédiat. Depuis le Raspberry Pi n'a pas d'horloge en temps réel, il a toujours une heure incorrecte au démarrage. Vous devrez peut-être attendre quelques minutes après le démarrage avant de synchroniser avec l'appareil Android.

  • NTP n'est pas parfait. Ne vous attendez pas à synchroniser vos horloges sur plus de quelques dizaines de millisecondes lorsque vous utilisez des serveurs de temps Internet. Étant donné que les temps de détection bluetooth peuvent être très rapides (également dans la plage de 10s de millisecondes), si vous obtenez des temps de détection de -100 ms, cela peut être dans les limites de cette configuration.

Ce que vous montrez est un temps de détection d'environ -1,0 secondes. Cela suggère que le temps n'est pas bien synchronisé. Je suppose que le Pi est le problème et dépanner là-bas. Il peut être utile de montrer l'heure à la milliseconde sur les deux appareils côte à côte pour dépanner.