设备端OTA升级的MQTT通信流程与数据格式

365bet网上娱乐场 📅 2025-10-15 06:57:44 👤 admin 👀 3942 ❤️ 32
设备端OTA升级的MQTT通信流程与数据格式

您在控制台触发升级操作之后,设备会收到物联网平台OTA服务推送的升级包的URL地址。

设备端订阅Topic:/ota/device/upgrade/${YourProductKey}/${YourDeviceName}。物联网平台对设备发起OTA升级请求后,设备端会通过该Topic收到升级包的存储地址URL。

消息格式如下:

单个文件的OTA升级包信息:升级包下载协议为HTTPS:{

"id": "123",

"code": 200,

"data": {

"size": 93796291,

"sign": "f8d85b250d4d787a9f483d89a974***",

"version": "10.0.1.9.20171112.1432",

"isDiff": 1,

"url": "https://the_firmware_url",

"signMethod": "MD5",

"md5": "f8d85b250d4d787a9f48***",

"module": "MCU",

"extData":{

"key1":"value1",

"key2":"value2",

"_package_udi":"{\"ota_notice\":\"升级底层摄像头驱动,解决视频图像模糊的问题。\"}"

}

}

}升级包下载协议为MQTT:{

"id": "123",

"code": 200,

"data":{

"size":432945,

"digestsign":"A4WOP***SYHJ6DDDJD9***",

"version":"2.0.0",

"isDiff":1,

"signMethod":"MD5",

"dProtocol":"mqtt",

"streamId":1397345,

"streamFileId":1,

"md5":"93230c3bde***",

"sign":"93230c3bde42***",

"module":"MCU",

"extData":{

"key1":"value1",

"key2":"value2"

}

}

}多个文件的OTA升级包仅支持HTTP下载协议,信息如下:{

"id": "123",

"code": 200,

"data": {

"version": "2.0.0",

"isDiff": 1,

"signMethod": "MD5",

"files":[

{

"fileSize":432944,

"fileName":"file1-name",

"fileUrl":"https://iotx***.aliyuncs.com/nop***.tar.gz?Expires=1502955804&OSSAccessKeyId=***&Signature=XfgJu7***U%3D&security-token=CAISu***",

"fileMd5":"93230c3bde425a9d7984a594ac55ea1e",

"fileSign":"93230c3bde425a9d7984a594ac55****"

},

{

"fileSize":432945,

"fileName":"file2-name",

"fileUrl":"https://iotx-***.aliyuncs.com/no***.tar.gz?Expires=1502955804&OSSAccessKeyId=***&Signature=XfgJu7P***KU%3D&security-token=CAISuQJ***",

"fileMd5":"93230c3bde425a9d7984a594ac56ea1f",

"fileSign":"93230c3bde425a9d7984a594ac56****"

}

],

"module": "MCU",

"extData":{

"key1":"value1",

"key2":"value2",

"_package_udi":"{\"ota_notice\":\"升级底层摄像头驱动,解决视频图像模糊的问题。\"}"

}

}

}表 2. 参数说明参数类型说明idLong消息ID号。每个消息ID在当前设备中具有唯一性。messageString结果信息。codeString状态码。versionString设备升级包的版本信息。sizeLong升级包文件大小,单位:字节。OTA升级包中仅有一个升级包文件时,包含该参数。

urlString升级包在对象存储(OSS)上的存储地址。OTA升级包中仅有一个升级包文件,且下载协议为HTTPS时,包含该参数。

dProtocolString升级包下载协议。仅升级包下载协议为MQTT时,包含该参数。

streamIdLong通过MQTT协议下载OTA升级包时的唯一标识。仅升级包下载协议为MQTT时,包含该参数。

streamFileIdInteger单个升级包文件的唯一标识。仅升级包下载协议为MQTT时,包含该参数。

isDiffLong仅当升级包类型为差分时,消息包含此参数。取值为1,表示仅包含新版本升级包与之前版本的差异部分,需要设备进行差分还原。

digestsignStringOTA升级包文件安全升级后的签名。仅当OTA升级包开启安全升级功能,才有此参数。开启OTA升级包安全升级功能的方法,请参见安全升级。signStringOTA升级包文件的签名。OTA升级包中仅有一个升级包文件时,包含该参数。

signMethodString签名方法。取值: SHA256MD5对于Android差分升级包类型,仅支持MD5签名方法。md5String当签名方法为MD5时,除了会给sign赋值外还会给md5赋值。OTA升级包中仅有一个升级包文件时,包含该参数。

moduleString升级包所属的模块名。 说明 模块名为default时,物联网平台不下发module参数。extDataObject升级批次标签列表和推送给设备的自定义信息。_package_udi表示自定义信息的字段。

单个标签格式:"key":"value"。

filesArray多个升级包文件的信息列表。OTA升级包中有多个文件时,包含该参数。每个升级包文件信息如下:

fileSize:升级包文件大小。fileName:升级包文件的名称。fileUrl、fileMd5、fileSign:含义与url、md5、sign相同。

🍵 相关养生推荐