NodeMCU 基于时区的 SNTP 同步
2017-5-27 3:57:37
收藏:0
阅读:80
评论:1
我有一个 ESP8266 NodeMCU 开发板。我已经加载了 NodeMCU 基于 Lua 的固件,并需要准确的时间来安排几个功能。我使用他们的云服务构建了二进制文件,并加载了以下模块:rtctime、sntp、cron 等。
如何使用 sntp 模块设置本地时间?我的本地时间与 UTC 相差 19800(印度标准时间 5.5 小时)。
我无法在 sntp.setoffset(offset) 调用中设置此偏移量。
> sntp.setoffset(19800)
> sntp.getoffset()
88
>
为什么 getoffset 打印了 88?
更新:在 sntp.sync() 的成功回调中使用 rtctime.set(自 Unix 纪元以来的秒数) 将 RTC 设置为本地时间有效。
function sntp_sync_time()
sntp.sync(nil, function(sec, usec, server, info) rtctime.set(sec + 19800) end, sntp_sync_time, 1)
end
同样,我在失败回调中递归调用相同的函数,直到成功同步为止。
谢谢
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

似乎很奇怪。
19800(01001101 01011000)的最不重要字节为88(01011000)。
我不太熟悉Lua及其与C的绑定,但我查看了源代码,并发现
setoffset和getoffset使用的变量the_offset被定义为uint8_t(请参阅此处)。因为文档说,偏移是以秒为单位的,而一个字节太小了,所以我认为这是个 bug。
正如Marcel Stör在评论中所解释的那样,
sntp.setoffset不是用于时区偏移的,这意味着不支持大的偏移。您应该使用tz模块来处理时区。