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