联网成功到更新本地时钟的时间差
1. 前言
最近在做一个嵌入式的项目,遇到了一下的麻烦:
- 服务器和板卡(arm)之间需要严格的时间同步
- 板子启动wifi配网成功之后,总会有一定的时间延时
- 配网之前的时间均为1970-01-01,配网之后变为现在的UTC本地时间
现在需要测试一下,从联网成功,到时间更新完成,大致的延迟时间。
2. 程序
ARM板子的时间同步模块为ntp
模块,如下图所示:
(注:ntp是网络时间同步协议,非常精确和稳定,可自行维基百科查询)
本次测试采用shell脚本形式,代码如下:
#!/bin/bash
#ping IP地址(或网址)建议使用IP地址
ip=baidu.com
cnt=2
timer=0 #从联网到时间更新所消耗的秒数
#每次ping 两次ip地址
while true
do
ping -c $cnt -w 2 $ip > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "联网成功" #如果ping通了,表示wifi已经联网了
while true
do
echo "timer=$timer"
let "timer++"
time=`date|awk '{print $6}'` #获取板卡中当前的时间(6是因为我的板卡第6列是年份,这个需要根据系统不同自行修改)
if [ $time -eq 2018 ]
then
echo "the time is $time"
echo "从联网到更新时间共经历$timer秒"
exit
else
echo "The time is $time"
fi
sleep 1
done
else
echo "网络未连接"
sleep 1
fi
done
PS: 以上代码如有问题,请留言,多谢!