流程总图
本图描述的是2G模块, 然后4G模块的更新不是基于文件的, 稍有区别
重点提示,敲黑板!!!
- 升级服务器返回状态码200就代表需要升级
- 实际升级是在系统启动时完成,update.lua是负责下载升级文件的
使用合宙iot平台
平台地址: https://iot.openluat.com/
该平台的功能及限制:
* 可以根据imei列表升级设备
* 不支持根据区域升级设备
* 支持全项目升级
* 能统计升级成功的设备,但不支持统计失败的设备(通常不存在)
点击新建项目
输入一个有个性的名字就行, 我输入的是 超级插座
进入产品
把ProductKey记下了,下面会用到
设备端代码修改
打开项目的main.lua
* 确保开头声明了PROJECT/VERSION/PRODUCT_KEY
-- 务必注意变量的大小写
PROJECT = "SuperPower"
-- 版本号我推荐用X.X.X形式
VERSION = "2.0.4"
-- 填入iot平台上的ProductKey
PRODUCT_KEY = "NzqyRvsPvoyXva8dxXXX"
-- 其他代码
-- 升级功能
require"update"
update.request()
使用luatools生成量产文件
会有两个目录:
分别是 远程升级用.bin文件 和 量产升级用.lod文件
lod是不能远程升级的,只能使用bin文件升级
升级文件的命名规则,非常非常非常重要
-- {PROJECT}_{VERSION}_${LOD}.bin
SuperPower_2.0.4_Luat_V0028_8955_SSL_UI_FLOAT.bin
文件名就是固件版本,不要通过修改文件名来改变版本号,这是行不通的!!!
回到iot平台,添加固件
上动图
测试升级
- 先把main.lua的VERSION改成2.0.3, 刷机
- 回到iot平台, 点击编辑, 将2.0.4设置为可升级
- 点击”添加”, 填入测试设备的imei,并确定
- 重启测试设备,观察日志, 一般来说都会更新成功的^_^
自建升级平台
http://oldask.openluat.com/article/107