合宙LuatOS应用,与时间相关那些事

合宙嵌入式操作系统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版本示例:


今天就分享到这里了~如果你对时间应用有其他疑问,欢迎来找合宙,咱们一起学习一起进步。

相关推荐
云山工作室5 分钟前
用于电动汽车的永磁同步电机调速系统建模与仿真(论文+)
stm32·单片机·嵌入式硬件·毕业设计·毕设
yuan199971 小时前
AD7689 12位串行ADC驱动与应用
单片机·嵌入式硬件
磨十三1 小时前
MCU 时钟系统全解析:主时钟、PLL、分频与外设时钟门控
arm开发·单片机·嵌入式硬件
逐步前行1 小时前
Proteus 8.9(四)51单片机仿真
嵌入式硬件·51单片机·proteus
DIY机器人工房2 小时前
嵌入式面试题:纹波率怎么计算;Buck 电路电感值的标准计算式是什么?
stm32·嵌入式硬件·面试题·diy机器人工房
DIY机器人工房2 小时前
嵌入式面试题:电容滤波,低频高频谁来滤?放置顺序怎么定?
stm32·单片机·嵌入式硬件·diy机器人工房
学习路上_write2 小时前
嵌入式系统bringup指南:软硬件调试
c语言·单片机·嵌入式硬件
学术小白人4 小时前
会议第一轮投稿!2026年物联网、数据科学与先进计算国际学术会议(IDSAC2026)
人工智能·物联网·数据分析·能源·制造·教育·rdlink研发家
磨十三4 小时前
ARM Cortex-M 系列 MCU:内核、指令、异常与中断解析
arm开发·单片机·嵌入式硬件
罗汉松(山水白河)5 小时前
关于串口与UDP通讯的实验
单片机·嵌入式硬件·网络协议·udp·tcp·串口、