0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-09-25 07:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

图片


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

11.jpg
12.jpg

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2950

    文章

    48121

    浏览量

    418279
  • OTA
    OTA
    +关注

    关注

    7

    文章

    630

    浏览量

    38438
  • LuatOS
    +关注

    关注

    0

    文章

    171

    浏览量

    2748
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LuatOS:485 总线硬件设计要点与 exmodbus 库开发实战

    在工业物联网通信开发中,485 总线与 Modbus 协议的组合应用十分常见。本文以 Air780EHV 系列模组为实例,围绕 LuatOS 开发环境,详解 485 总线的硬件设计细节,包括其
    的头像 发表于 03-19 17:57 220次阅读
    <b class='flag-5'>LuatOS</b>:485 总线硬件设计要点与 exmodbus 库开发实战

    猛!MCU模组:Air1601/1602双星出击!

    在嵌入式开发中,你是否曾面临这样的困境:高清UI渲染依赖昂贵高端芯片、图像处理卡顿、多网通信协同复杂、工业级稳定设计繁琐……Air1601/Air1602系列MCU模组应运而生:——以“高清显示
    的头像 发表于 02-13 14:05 862次阅读
    猛!<b class='flag-5'>合</b><b class='flag-5'>宙</b>MCU模组:Air1601/1602双星出击!

    LuatOS 系统框架的模块化设计原理

     LuatOS 的设计核心在于高度模块化与松耦合架构。系统将硬件驱动、通信协议、定时任务等封装为独立模块,通过统一的注册与回调机制接入主事件循环。这种设计不仅提升了代码复用率,也使得开发者可以按需
    的头像 发表于 02-03 15:56 280次阅读
    <b class='flag-5'>LuatOS</b> 系统框架的模块化设计原理

    轻松掌握——LuatOS socket基础知识和应用开发

    对于刚接触LuatOS开发的工程师而言,实现设备联网往往是第一个重要目标,而Socket编程正是实现这一目标的核心技术路径。本文以循序渐进的方式,带领读者从最基础的Socket概念入手,逐步掌握在
    的头像 发表于 01-28 20:07 351次阅读
    轻松掌握——<b class='flag-5'>LuatOS</b>  socket基础知识和应用开发

    解锁:LuatOS框架的使用(下篇)

    接上一篇 2.3 LuatOS 的定时器(timer) 对于 LuatOS 应用程序来说,定时器本质上也算是一种特殊的消息,因为定时器太常用了,所以把他单独拎出来,单独的一个章节进行讲解
    的头像 发表于 01-28 13:18 268次阅读
    解锁:<b class='flag-5'>LuatOS</b>框架的使用(下篇)

    LuatOS框架的使用(上)

    在资源受限的物联网终端设备中,如何实现快速开发与稳定运行是关键挑战。LuatOS框架通过将Lua语言与底层硬件抽象层深度融合,提供了一套简洁高效的开发范式。本文将围绕LuatOS框架的使用展开,从
    的头像 发表于 01-27 19:38 336次阅读
    <b class='flag-5'>LuatOS</b>框架的使用(上)

    LuatOS-Air脚本移植到LuatOS版本注意事项

    LuatOS-Air的api: 在https://doc.openluat.com/wiki/21?wiki_page_id=2068这里,又分为了5.1 原生接口 ,提供的 额外接口 两种。 在额外的接口其中,又分为
    的头像 发表于 01-17 14:48 1257次阅读
    <b class='flag-5'>LuatOS</b>-Air脚本移植到<b class='flag-5'>LuatOS</b>版本注意事项

    LuatOS-Air转LuatOS常见故障排查手册

    LuatOS-Air脚本在LuatOS环境中运行失败,问题往往集中在几个关键模块:任务调度、外设驱动、网络配置和固件版本匹配。本文以故障排查的逻辑为主线,列出常见报错现象、可能原因及快速修复
    的头像 发表于 01-13 19:20 265次阅读
    <b class='flag-5'>LuatOS</b>-Air转<b class='flag-5'>LuatOS</b>常见故障排查手册

    警惕兼容性陷阱:LuatOS-Air脚本在LuatOS中的运行异常分析

    即使语法正确的LuatOS-Air脚本,在LuatOS环境中也可能出现“静默失败”——程序无报错但功能未执行。这类问题多与系统事件循环、模块加载时机或硬件抽象层调用方式有关。本文通过多个真实
    的头像 发表于 01-13 19:20 287次阅读
    警惕兼容性陷阱:<b class='flag-5'>LuatOS</b>-Air脚本在<b class='flag-5'>LuatOS</b>中的运行异常分析

    掌握LuatOS系统消息:新手也能看懂的列表详解

    你是否在LuatOS开发中遇到过事件不响应、回调未触发的问题?这很可能与系统消息列表的配置或使用不当有关。作为LuatOS事件驱动模型的核心组件,消息列表管理着所有异步消息的排队与分发。本文以新手
    的头像 发表于 01-13 18:12 230次阅读
    掌握<b class='flag-5'>LuatOS</b>系统消息:新手也能看懂的列表详解

    LuatOS AGPS 辅助定位开发实战教程

    辅助数据,可大幅缩短 GPS 首次定位时间LuatOS 提供 AGPS 原生支持,适用于物流追踪、车载
    的头像 发表于 10-31 17:34 1343次阅读
    <b class='flag-5'>LuatOS</b> AGPS 辅助定位开发实战教程

    Task任务:LuatOS实现“任务级并发”的核心引擎

    分享sys核心库Task任务相关函数及其简要示例,帮助你更好地理解LuatOS开发基础。 一、Task:LuatOS任务功能
    的头像 发表于 08-28 13:49 637次阅读
    Task任务:<b class='flag-5'>LuatOS</b>实现“任务级并发”的核心引擎

    揭秘LuatOS Task:多任务管理的“智能中枢”

    分享sys核心库Task任务相关函数及其简要示例,帮助你更好地理解LuatOS开发基础。 一、Task:LuatOS任务功
    的头像 发表于 08-28 13:48 782次阅读
    揭秘<b class='flag-5'>LuatOS</b> Task:多任务管理的“智能中枢”

    解码LuatOS:短信功能的底层运作机制

    短信功能在LuatOS中的运行并非表面所见那么简单。本文将深入系统底层,解码其通信协议、数据处理与系统交互,呈现完整的运作图谱。 我们这期主要拆解airsms.lua文件,讲清楚,短信功能
    的头像 发表于 06-27 18:05 796次阅读
    解码<b class='flag-5'>LuatOS</b>:短信功能的底层运作机制

    基于LuatOS核心库的实时操作系统开发:从理论到实践~

    实时系统的开发挑战在于平衡响应时间与系统开销。LuatOS核心库通过时间片轮转与优先级混合调度策略,既保证了高实时性任务的即时执行,又为低优先级任务提供了公平调度机会。其事件驱动架构还支持异步处理
    的头像 发表于 05-16 13:56 643次阅读
    基于<b class='flag-5'>LuatOS</b>核心库的实时操作系统开发:从理论到实践~