# 流程说明

步骤说明

1.设备在登录成功后可以发送是否需要升级消息至服务器。
2.服务器根据该设备是否有已发布的升级包并且升级包版本和设备版本对比是否一致回复设备是否需要升级。
3.若服务器回复设备需要升级则设备再次回复服务器是否准备好升级,否则结束本次升级。
4.若设备回复服务器未准备好升级则结束本次升级。若回复已准备好升级则服务器向设备发送升级包信息,设备可使用该信息通过HTTP协议找到升级包文件进行下载和升级。
5.设备发送升级状态至服务器,用以更新数据库升级状态信息。

注意事项

步骤1-4需要服务器和设备在15秒内相互回复,超时则放弃本次升级。
步骤5设备超过10分钟没回复升级状态则放弃本次升级。
在平台使用发布升级操作后会直接进入到步骤2,向设备发送需要升级消息,设备从步骤3开始回复平台。

# 主题和内容说明

# 设备查询是否需要升级

topic iot/rx/${AppKey}/${ID}/deviceUpgrade

{
"upgradeStep":"upgradeAsk",
"version":"1.0.2"
}
1
2
3
4

参数介绍

upgradeAsk:升级询问步骤
version:设备当前版本信息

# 设备回复是否需要升级

topic iot/tx/${AppKey}/${ID}/deviceUpgrade

{
"upgradeStep":"upgradeConfirm",
"whetherToUpgrade": 1
}
1
2
3
4

参数介绍

upgradeConfirm:升级确认步骤
whetherToUpgrade:是否需要升级。0-不需要,1-需要

# 设备回复是否准备好升级

topic iot/rx/${AppKey}/${ID}/deviceUpgrade

{
"upgradeStep":"upgradeReady",
"readyInfo": 1
}
1
2
3
4

参数介绍

upgradeReady:回复升级准备步骤
readyInfo:设备准备信息。0-未准备好,1-已准备好

# 平台向设备发送升级包信息

topic iot/tx/${AppKey}/${ID}/deviceUpgrade

{
"upgradeStep":"upgradeInfo",
"filePath": "http://xxx...",
"crc": "xxx"
}
1
2
3
4
5

参数介绍

upgradeInfo:发送升级信息步骤
filePath:升级包完整http路径
crc:升级包校验码,用于设备校验升级文件是否正确

# 设备回复升级状态

topic iot/rx/${AppKey}/${ID}/deviceUpgrade

{
"upgradeStep":"upgradeStatus",
"status": "downloadFailed"
}
1
2
3
4

参数介绍

upgradeStatus:回复升级状态步骤
status:升级结果 downloadFailed-升级包下载失败,upgradeFailed-升级失败,upgradeSuccess-升级成功

最后更新: 4/28/2024, 5:05:34 PM