与时间函数相关的那些事

在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版本示例:

图片


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/147925.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024年【危险化学品生产单位安全生产管理人员】考试及危险化学品生产单位安全生产管理人员考试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年危险化学品生产单位安全生产管理人员考试为正在备考危险化学品生产单位安全生产管理人员操作证的学员准备的理论考试专题,每个月更新的危险化学品生产单位安全生产管理人员考试题祝您顺利通过危险化…

开源实时多模态AI聊天机器人Moshi,语音对话延迟低至200毫秒!

开源实时多模态AI聊天机器人Moshi,语音对话延迟低至200毫秒! 最近AI圈真是热闹非凡,继Meta发布Llama 3之后,各种开源大模型也是层出不穷。这不,法国一个非盈利AI研究实验室Kyutai,又搞了个大新闻&#xff0…

教你如何调用微信公众号模板消息发送接口

文章目录 前言准备工作代码实现获取accessToken调用模板消息发送接口前言 本文带你理解微信公众号模板消息发送接口的调用,面向的场景是你需要对你的公众号或者小程序用户发送公众号通知消息,没错,就算是小程序也是通过关联公众号,并且用户使用小程序时跳到公众号关注页关注…

C++ 进阶之路:非类型模板参数、模板特化与分离编译详解

目录 非类型模版参数 类型模板参数 非类型模板参数 非类型模板参数的使用 模板的特化 函数模板的特化 类模板的特化 全特化与偏特化 偏特化的其它情况 模板的分离编译 什么是分离编译 为什么要分离编译 为什么模板不能分离编译 普通的类和函数都是可以分离编译的…

那年我双手插兜,使用IPv6+DDNS动态域名解析访问NAS

估计有很多科技宅和我一样,会买一个NAS存储或者自己折腾刷一下黑群晖玩玩,由于运营商不给分配固定的公网IP,就导致我在外出的时候无法访问家里的NAS,于是远程访问常常受到IP地址频繁变动的困扰。为了解决这一问题,结合…

面试知识点总结篇一

一、C语言和C有什么区别 C语言是面向过程,强调用函数将问题分解为多个子任务,按顺序逐步进行。数据和操作分开C则是面向对象,面向对象是一种基于对象和类的编程范式,关注如何利用对象来抽象和模拟现实世界的实体。因此引入了类&a…

docker部署datart并添加扩展clickhouseodps的jar包数据源驱动

近期部门有个小需求,针对所有产品线的用户访问记录日志需要一个看板展示,于是在找有没有开源的项目不用自己开发的产品直接部署,千挑万选发现一个叫datart的产品能自定义编写sql展示想要展示的数据,于是开始了datart的搭建部署&am…

大厂真题-Kafka为什么这么快之零拷贝

一、零拷贝技术的背景 在传统的数据传输过程中,当需要将磁盘中的数据发送到远程服务器时,数据通常需要经过多次拷贝和上下文切换。具体来说,这些步骤包括: 四次拷贝 从硬盘到内核缓冲区: 当用户进程通过read()系统调…

【HTML5】html5开篇基础(2)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

Python中requests模块(爬虫)基本使用

Python的requests模块是一个非常流行的HTTP库,用于发送HTTP/1.1请求。 一、模块导入 1、requests模块的下载: 使用包管理器下载,在cmd窗口,或者在项目的虚拟环境目录下: pip3 install -i https://pypi.tuna.tsingh…

DC-DC选型

Buck、Boost、Buck-boost 同步非同步 隔离与非隔离 电源效率 模式选择 选型 总结

【机器学习】TensorFlow编程基础

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TensorFlow编程基础张量(Tensor)计算图(Computational Graph)会话(Session)基本…

数据包签名校验的Web安全测试实践

01 测试场景 在金融类的Web安全测试中,经常可以见到Web请求和响应数据包加密和签名保护,由于参数不可见,不能重放请求包,这类应用通常不能直接进行有效的安全测试,爬虫也爬不到数据。 02 解决思路 对于这类应用&am…

STaR: Bootstrapping Reasoning With Reasoning

STaR: Bootstrapping Reasoning With Reasoning 基本信息 博客贡献人 燕青 作者 Eric Zelikman, Yuhuai Wu, Jesse Mu, et al. from Stanford University and Google Research 标签 Large Language Model, Chain-of-thought, Fine-tuning 摘要 生成逐步的“思维链”逻…

揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出?

目录 揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出? 一、算法秘境:深度挖掘,教学相长 二、跨界融合:场景为王,合作共赢 企业和高校之间在:场景,算法,数据,算力的优势,高校优势不明显,仅仅在算法方面存在一些优势但并不明显。高校怎样做 揭秘!高校如何逆袭…

2024最新盘点:国内外主流的10款流程管理系统!

本文将盘点十款流程管理系统,为企业选型提供参考! 想象一下,在一个企业中,各个部门的工作流程混乱,审批环节繁琐,信息传递不及时。这时,流程管理系统就如同一位高效的指挥官,将企业的…

软件测试干了5年,都白忙活了。。。

本科非计算机专业,在深圳做了5年软件测试工作,从一开始一脸懵的点点点,到现在会自动化测试了,浅谈一下从事软件测试的一点点心得体会,仅供参考交流。如果你本科且非计算机专业的话可以试下(但就目前环境建议…

使用Fiddler Classic抓包工具批量下载音频资料

1. 通过F12开发者工具,下载音频文件 浏览器打开音频列表->F12快捷键->网络->媒体,播放一个音频文件,右边媒体下生成一个音频文件,右击“在新标签页中打开”,可以下载这个音频文件。 2.通过Fiddler Classic抓…

简单题100. 相同的树 (python)20240922

问题描述: python: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right rightclass Solution(object)…

浅谈EXT2文件系统----inode table

Inode table概述 在 EXT2 文件系统中,inode 表(Inode Table)是一个非常重要的结构,用于存储文件和目录的元数据。每个文件和目录都由一个 inode(索引节点)来表示,inode 中包含了关于该文件或目…