Windows CE intègre un client SNTP capable de mettre à l’heure automatiquement notre carte en se synchronisant sur un serveur sur internet.
Pour intégrer dans notre image le client SNTP, il faut ajouter le composant "SNTP Client with DST" :
Il faut ensuite le configurer en insérant les clés suivantes dans project.reg :
; configuration du client SNTP
[HKEY_LOCAL_MACHINE\Services\TIMESVC]
"Server"=multi_sz:"utcnist.colorad.edu","tick.usno.navymil"
"refresh"=dword:5265C00 ; mise à jour de l'heure une fois par jour
"recoveryrefresh"=dword:36EE80 ; durée avant réessai en cas d'erreur : 1 heure
"threshold"=dword:5265C00 ; différences max heure mini2440 par rapport au serveur
"trustlocalclock"=dword:0
"AutoUpdate"=dword:1 ; doit à priori toujours être à 1
"ServerRole"=dword:0 ; Client mode
Quelques explications :
Server : liste des serveurs SNTP
Refresh : durée, en ms, entre deux synchronisations.
RecoveryRefresh : durée, en ms, avant la prochaine synchronisation, si la précédente a échoué.
Threshold : différence minimale autorisée entre l’heure de notre carte et celle du serveur (si la différence est supérieure, la synchronisation n’est pas effectuée).
TrustLocalClock : = 1 si nous sommes capables de communiquer en temps réel avec le serveur.
Attention, il semble que des valeurs inférieures à 5 minutes ne soient pas acceptées.
Pour tester le fonctionnement de la synchronisation SNTP, il suffit de redémarrer la carte avec une heure proche de l’heure courante. L’heure doit être synchronisée peu après le démarrage.
Si ça ne fonctionne pas, quelques pistes de debug :
vérifier que la carte est bien connectée à internet.
dans une console, entrer la commande "services list" et vérifier que le serveur SNTP est bien démarré.
vérifier que l’heure de départ est bien proche de l’heure (voir paramètre threshold).