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

1. 前言

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

  1. 服務器和板卡(arm)之間須要嚴格的時間同步
  2. 板子啓動wifi配網成功以後,總會有必定的時間延時
  3. 配網以前的時間均爲1970-01-01,配網以後變爲如今的UTC本地時間

如今須要測試一下,從聯網成功,到時間更新完成,大體的延遲時間。bash

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: 以上代碼若有問題,請留言,多謝!測試

相關文章
相關標籤/搜索