time - 将当前时间部署到 LoRaWAN 节点?
问题描述
大多数 LoRaWAN 节点没有电池支持的 RTC(实时时钟)。唯一可用的时钟是控制器中的“自启动时间”计数器。虽然 LoRaWAN 数据包在网关收到时会加上时间戳,但节点上的事件与实时(例如,UTC)之间没有严格的关系。如果事件在通过 LoRa 传输之前在节点中排队,这一点尤其重要。那么,是否有一种机制可以以相当精确的方式将实时部署到节点?当然,在收到下一条消息时将实时标记作为上传电报发送到节点是不够的。时间戳是否在 Join 范围内发送?
解决方案
在 LoRaWAN 规范 v1.0.3 中,您将使用 DeviceTimeReq / DeviceTimeAns 命令执行此操作。
DeviceTimeReq 由设备发送,NS 使用包含基于网络时间的 GPS 纪元时间(没有闰秒)的 DeviceTimeAns 消息进行应答。
我不知道您想要达到什么时间精度,但您可能需要定期发出该命令以补偿节点的时钟漂移
在 < 1.0.3 中,还可以使用 Class B 进行某种同步:每 128 秒发送一次信标(如果您的基站是 GPS 同步的),因此您可以使用它来获取节点上的时间参考。
推荐阅读
- typescript - 在表中的 typrscript 中使用 TypeORM 插入对象数组
- python - Python时间序列,做出两个不同后恢复原样
- ruby-on-rails - 如何在 Rails 6 中配置顺风以在 Heroku 上正确显示
- next.js - 如何使 Next.js“开发”服务器对生产安全?
- elasticsearch - 弹性云Circuit_break_exception
- php - botman io + laravel 不继续对话
- scala - 是否可以为 akka 编写一个令人讨厌的序列化程序
- f# - 如何在 F# 中将异常与类型测试模式匹配?
- sql - 选择每种货币的最后兑换价值。SQL
- javascript - 如何动态添加页面 | 一页上的多个页面