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


    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: 以上代码如有问题,请留言,多谢!

  • 相关阅读:
    asp.net 下载EXCEL文件
    C# 泛型实现Table与实体的相互转换
    SQL处理数据并发,解决ID自增
    html Canvas 画图 能够选择并能移动
    AJAX get/post;
    (转) C# Async与Await的使用
    FormattableString 取代特定区域字符串
    少用 string.Format
    少用 string.Format
    如何重写object虚方法
  • 原文地址:https://www.cnblogs.com/Jimmy1988/p/9713395.html
Copyright © 2020-2023  润新知