天天看點

聯網成功到更新本地時鐘的時間差

1. 前言

最近在做一個嵌入式的項目,遇到了一下的麻煩:

  1. 伺服器和闆卡(arm)之間需要嚴格的時間同步
  2. 闆子啟動wifi配網成功之後,總會有一定的時間延時
  3. 配網之前的時間均為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: 以上代碼如有問題,請留言,多謝!