联网成功到更新本地时钟的时间差

1. 前言

最近在做一个嵌入式的项目,遇到了一下的麻烦:

  1. 服务器和板卡(arm)之间需要严格的时间同步
  2. 板子启动wifi配网成功之后,总会有一定的时间延时
  3. 配网之前的时间均为1970-01-01,配网之后变为现在的UTC本地时间

现在需要测试一下,从联网成功,到时间更新完成,大致的延迟时间。

2. 程序

ARM板子的时间同步模块为ntp模块,如下图所示:
mark
(注: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: 以上代码如有问题,请留言,多谢!

posted @ 2018-09-27 15:35  Jimmy_Nie  阅读(380)  评论(0编辑  收藏  举报