ota固件升级(可选)
如mcu有远程升级需求,请参考具体ota升级流程文档及本小节内容进行实现
设置ota属性(0x21)
mcu发送:
字段 | 长度 | 说明 |
---|---|---|
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x21 |
长度 | 2 | 0x0003 |
固件块大小 | 1 | 固件会按分块的形式下发,大小可选以下3种, 默认1024 0x00:256byte 0x01:512byte 0x02:1024byte |
升级检测倒计时 | 2 | 期望升级倒计时,即expect_time,单位秒,大端法 范围120≤expect_time≤3600 |
校验 | 1 | 校验和 |
模组返回:
字段 | 长度 | 说明 |
---|---|---|
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x21 |
长度 | 2 | 0x0003 |
设置结果 | 1 | 0x00:成功 0x01:参数错误 |
升级检测倒计时 | 2 | 实际升级倒计时,即real_time,单位秒,大端法 范围60≤real_time≤expect_time |
校验 | 1 | 校验和 |
接收固件数据块(0x22)
mcu被动接受云端发来的固件数据块,收到后更新本地固件。
模组发送:
字段 | 长度 | 说明 |
---|---|---|
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x22 |
长度 | 2 | n+5 |
数据块标示 | 1 | 0x00:本块不是最后一个数据块 0x01:本块是固件的最后一个数据块 |
偏移量 | 4 | 本数据块相对于完整固件的偏移量,大端法 |
固件数据块 | n | 上传至云端固件的分块数据 |
校验 | 1 | 校验和 |
mcu返回:
字段 | 长度 | 说明 |
---|---|---|
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x22 |
长度 | 2 | 0x0005 |
结果 | 1 | 0x00:成功 0x01:失败 |
偏移量 | 4 | 将收到的偏移量返回即可 |
校验 | 1 | 校验和 |
接收升级指令(0x23)
mcu收到此命令后,做如下操作:
①、不再回复模组发出的设备初始化(0x01)指令
②、重启,运行新版本固件
模组发送:
字段 | 长度 | 说明 |
---|---|---|
帧头 | 1 | 0xa5 |
版本 | 1 | 0x02 |
命令 | 1 | 0x23 |
长度 | 2 | 0x0000 |
校验 | 1 | 校验和 |