固件发布
上传固件
进入控制台的OTA升级页面,点击右上角的按钮,填写如下“添加新固件”对话框。
◆固件名称,可根据版本特性填入合适的名称
◆固件类型,有“MCU”和“通信模组”两个选项
a)MCU:升级MCU或使用静态库进行二次开发,请选择“MCU”选项
b)通信模组:升级模组整机固件时选择
◆选择固件1/2,上传用于升级的固件,支持后缀名为"bin"或"zip”格式的文件。仅使用ESP8266 1M flash版本模组时需要上传固件2,其他版本无需上传
◆版本号,格式必须为 XX.XX(X为数值0~9),此版本号应与固件源码中的版本号对应。
仅允许比此版本低的设备升级,设备运行版本号相等或大于此版本不会下载升级
◆升级范围,分全部升级和部分升级
a)全部升级:表示该固件对所有在线设备可见,只要比发布版本小的设备都会升级
b)部分版本升级:填写版本号后,此项可选。只升级选中版本号的设备,注意,不会升级未勾选版本设备,如需添加,请勾选“其他版本”并填写相应版本号,如图示
◆固件描述,可根据版本特性填入合适的描述信息
验证固件
为保证在线设备下载新固件后重启能够正常工作,要先对整个升级流程进行验证,验证成功后才可以正式发布新固件。
设备要支持OTA功能,先要对设备端进行编码,编码涉及的ota接口请参考《青莲云嵌入式SDK开发使用文档》第5节。
点击固件版本右边的按钮,弹出“验证固件”对话框,如下图所示:
选择一个大于设备重启时长的时间,云端会在下发重启指令后等待设备重启。
输入待验证设备的MAC地址,点击“立即验证”,弹出“下载进度”提示框,开始设备的验证升级流程。
1)正在下载,可以看到固件下载进度
下载固件时会调用《青莲云嵌入式SDK开发使用文档》5.2节的函数,函数实现在文件qlcloud_interface.c中,请根据具体平台自行编码实现。
此回调函数是对固件每个分包的处理,一般收到第一个数据包时,需要准备升级空间;收到后续数据包,写入升级文件或flash;收到最后一个数据包,整个固件接收完毕,这时需要校验整个固件的合法性,如果校验成功,表示整个固件接收完毕,等待重启升级指令。
参考实现如下:
2)下载完成,等待设备重启,这里会等待60秒
下载完成后云端会立即下发重启指令,之后等待设备重启,等待时长为上文设置的。注意,如果是已发布固件,云端下发重启指令的方式有3种,后面会讲到。
设备端收到升级指令后,自动调用《青莲云嵌入式SDK开发使用文档》5.3节的函数。函数实现在文件qlcloud_interface.c中,请自行编码实现设备重启,参考实现如下:
3)设备重启后,运行新版本固件重新上线,验证成功会提示“升级完成”
正式发布
固件验证成功后,点击按钮弹出如下“升级方式选择”对话框,设置升级指令的下发方式,有三种方式可供选择:
◆立即下发:设备下载固件完成后,云端立即下发升级指令
◆固定时间下发:设备下载固件完成后,云端仅会在设置的时间段下发升级指令
◆APP触发:设备下载固件完成后,APP提示是否升级新版本,最终用户选择“升级”时下发升级指令
选择完成后点发布按钮即可。