微信做引流网站,js调用wordpress,网站 内页,网站设计建设定制合宙嵌入式操作系统LuatOS——在蜂窝物联网模组上推出开源二次开发框架#xff0c;功能齐全性能稳定#xff0c;可大幅度降低用户的研发成本和研发周期。
在LuatOS中#xff0c;获取时间函数用得最多的就是os.time()函数了。接下来#xff0c;我会讲一些与这个函数以及其他…合宙嵌入式操作系统LuatOS——在蜂窝物联网模组上推出开源二次开发框架功能齐全性能稳定可大幅度降低用户的研发成本和研发周期。
在LuatOS中获取时间函数用得最多的就是os.time()函数了。接下来我会讲一些与这个函数以及其他时间函数相关的知识。
一、时间戳相关
os.time()这个函数只能获取当前时间戳如果客户希望获取的是当前时间即相应的年月日时分秒可以使用os.date()函数。
参考下面的示例 关于位数 比较遗憾的是Lua只有秒级时间戳没有毫秒以及微秒级时间戳暂时没有什么好的办法解决该问题。
二、时间同步
理论上4G模块在驻网链接基站成功以后基站会发送当前时间给4G模块此过程被称为基站授时。也就是说只要模块驻网成功内部时间是没有问题的
但是通过大量的事实验证下来某运营商部分卡无法与基站进行授时操作部分基站同步给4G模块的时间也有极小概率出错。
所以除了基站授时预备情况下还准备了NTP授时服务器对模块进行授时操作。此处专网卡客户需要注意——如果时间参数对你比较重要需要将NTP授时服务器的域名加入运营商白名单中。
2.1 基站时间同步
除上述某运营商的部分卡以外多数情况下只要驻网成功内部就会更新时间。
如果驻网不成功那么4G模块会从2000年00时00分00秒进行计时。所以用户需要获取时间的应用场景下尽量等到联网成功有时间同步信息发出来再进行。
LuatOS版本示例 AT版本 可以查看开机的打印开机打印如下。 注此处时间为格林尼治时间需要8才是中国区时间。
2.2 NTP服务器授时
如果用户对基站授时的准确性有疑虑之前也出现过基站授时比实际时间差了16天的情况可以关闭基站授时转而使用NTP授时服务器去给模块进行授时。
现在有一些免费公开的NTP授时服务器如阿里云、腾讯云。
当然如果对授时要求比较高需要稳定可靠的时间同步机制——建议自建NTP授时服务器。
LuatOS版本示例 三、基础应用
定时休眠定时唤醒
在一些对功耗要求比较严格但是只需要定时数传的场景下时间应用的重要性就出来了。
用户可以使用合宙自研低功耗模式定时唤醒模块进行数传数传后又进入休眠模式。具体实现可以参考下方链接。 四、进阶应用
获取当前时间的后一天凌晨零点到一点随机时间戳
多数情况下需要对系统留有OTA的余地。为了让用户无感升级需要对OTA的时间进行限制比如凌晨0点。但是如果所有设备都在凌晨0点对设备进行升级升级服务器无法处理高并发可能会导致各种异常出现。
所以就需要在用户指定的一个时间段内进行升级最为稳妥。
接下来的LuatOS脚本就获取到了当前时间的后一天凌晨零点到凌晨一点的随机时间戳并与当前时间戳进行计算好给休眠模式下的OTA应用做出一个具体的休眠时间秒数设置。
LuatOS版本示例 今天就分享到这里了~如果你对时间应用有其他疑问欢迎来找合宙咱们一起学习一起进步。