内容纲要
2023-4-7
更新设备信息,
通过注册码实现自动注册设备,刷入固件就注册。
Lua 中的回调函数注意事项
- 在回调函数中,无法将回调函数中的值传给外面,那么应该怎么办呢?
- 这个问题有了答案,就是回调函数 和 外部函数 同时运行的时机,外部函数要在回调函数之后拿取数据,最好加一个延时函数,保证回调函数nvm 写完之后在执行 读取nvm的操作(之前产生这个问题的原因是:先运行的业务函数,实际上应该先判断是否注册过,然后注册完成后再运行业务函数)
注意一点: api-key
这个 “ - ” 符号不能直接出现在lua 里面,
如果在table 里面要用到这个的话,可以使用 {["api-key"] = "testKey"}
需要修改的点, 在注册(“regist”)之后再执行MQTT 的连接, 因为HTTP 是异步传输,如果网络延迟高的话,那就会出现拿不到数据,设备报错重启。,因此确保注册成功之后再 执行业务函数,
之前考虑的方式是,我需要这个函数,到需要的时候再进行执行并获取它的值,(用的时候才调用它)
也就是将 “注册的函数” 放在业务函数中,当业务函数来的时候就进行注册判断而现在应该考虑 我所要执行的函数是否会存在任何异常之类的,注册完成之后再执行业务函数,
大方向错误
- 修改步骤:
- main 中 require 注册函数,
- 注册部分函数判断是否注册过,然后再调用onenet ,执行业务函数。
- 需要确保注册成功后再执行其它。