延凡科技文档 延凡科技文档
  • 系统运行
  • 系统部署
  • 使用说明
  • 小程序和App
  • 硬件SDK说明
  • 规则引擎
  • 设备

    • 新建设备
    • Mqtt设备接入
    • TCP设备接入
    • 监控设备接入
    • Modbus设备接入
    • 联动控制告警
  • 组态

    • 组态使用
  • 工单

    • 保养管理
    • 巡检管理
    • 维修管理
    • 工单任务
    • 设备列表
  • 能源

    • 能源监控
    • 能源配置
    • 能耗分析
    • 用能分析
  • 网关配置

    • BacnetIP采集示例
    • Modbus采集示例
    • 平台转发数据
  • DTU配置

    • DTU设置边缘采集
    • 参数配置⼊⻔教程
    • DTU连接平台设置MQTT、TCP
  • Docker部署

    • DTU设置边缘采集
  • 二次开发

    • 平台主题
    • Modbus方案
    • 网关模块
    • 协议管理模块
    • 服务端模块
    • 设备数据处理
    • Mqtt服务端
  • 其它

    • 使用Emqx5
    • 三方登录
    • 使用TDengine
    • 可视化平台
    • ZLMediakit录像部署
    • 常见问题
    • 相关文档
返回官网 (opens new window)
  • 系统运行
  • 系统部署
  • 使用说明
  • 小程序和App
  • 硬件SDK说明
  • 规则引擎
  • 设备

    • 新建设备
    • Mqtt设备接入
    • TCP设备接入
    • 监控设备接入
    • Modbus设备接入
    • 联动控制告警
  • 组态

    • 组态使用
  • 工单

    • 保养管理
    • 巡检管理
    • 维修管理
    • 工单任务
    • 设备列表
  • 能源

    • 能源监控
    • 能源配置
    • 能耗分析
    • 用能分析
  • 网关配置

    • BacnetIP采集示例
    • Modbus采集示例
    • 平台转发数据
  • DTU配置

    • DTU设置边缘采集
    • 参数配置⼊⻔教程
    • DTU连接平台设置MQTT、TCP
  • Docker部署

    • DTU设置边缘采集
  • 二次开发

    • 平台主题
    • Modbus方案
    • 网关模块
    • 协议管理模块
    • 服务端模块
    • 设备数据处理
    • Mqtt服务端
  • 其它

    • 使用Emqx5
    • 三方登录
    • 使用TDengine
    • 可视化平台
    • ZLMediakit录像部署
    • 常见问题
    • 相关文档
返回官网 (opens new window)
  • 文档

    • 系统运行
    • 系统部署
    • 使用说明
    • 小程序和App
    • 硬件SDK说明
    • 规则引擎
  • 设备

    • 新建设备
    • Mqtt设备接入
    • TCP设备接入
    • 监控设备接入
    • Modbus设备接入
    • 联动控制告警
    • OAT升级
      • 1、流程概述
      • 2、注意事项
      • 3、操作流程
  • 组态

    • 新建设备
  • 工单

    • 保养管理
    • 巡检管理
    • 维修管理
    • 工单任务
    • 设备列表
  • 能源

    • 能源监控
    • 能源配置
    • 能耗分析
    • 能源监控
  • 网关配置

    • BacnetIP采集示例
    • Modbus采集示例
    • 平台转发数据
  • DTU配置

    • DTU设置边缘采集
    • DTU连接平台设置MQTT、TCP
  • Docker部署

    • 项目部署
  • 二次开发

    • 平台主题
    • 物模型格式
    • 告警和场景格式
    • 消息流转
    • Modbus方案
    • 网关模块
    • 协议管理模块
    • 服务端模块
    • 设备数据处理
    • Mqtt服务端
  • 其他

    • 使用Emqx5
    • 三方登录
    • 使用TDengine
    • 可视化平台
    • ZLMedia录像部署
    • 常见问题
    • 视频监控常见问题
    • 相关文档
  • 在线文档
  • 设备
kerwincui
2024-10-24
目录

OAT升级

# 1、流程概述

HTTPS 方式 OTA 升级流程描述

结合 MQTT 服务、设备和 Web 端总结的主题发送情况:

  1. 云端下发升级包信息给设备:

    • 主题:/${serialNumber}/http/upgrade/set

    • 简单认证

    • 方向:云端 -> 设备

    • 触发时机:在 Web 端判断 OTA 版本可升级且用户确认升级后

    • 消息内容:包含升级包的 URL、版本和状态,如

     {
     "taskId": 26,
     "url": "/profile/iot/1/2024-0824-001954.bin",
     "version": 1.2,
     "status": 1
     }
    
    
    1
    2
    3
    4
    5
    6
    7
  2. 云端下发升级包信息给设备:

    • 主题:/${serialNumber}/http/upgrade/reply

    • 方向:设备 -> 云端

    • 触发时机:设备下载升级包过程中定时上报

    • 消息内容:包含升级进度和状态,如

     {
     "taskId": 26,     
     "progress": 100,  
     "version": "1.2",
     "status": 2
     }
    
    
    1
    2
    3
    4
    5
    6
    7
  3. 设备升级完成后上报最新版本以及状态:

    • 主题:/${serialNumber}/http/upgrade/reply

    • 方向:设备 -> 云端

    • 触发时机:设备端升级完成后

    • 消息内容:包含最新版本和状态,如

     {
        "taskId": 26,
        "version": "1.2",
        "status": 3
     }
    
    
    1
    2
    3
    4
    5
    6

模拟的整体交互流程:

   // status状态字段定义
    AWAIT(0, "等待升级","未推送固件到设备"),
    SEND(1, "已发送","已发送设备"),
    REPLY(2, "升级中","设备OTA升级中"),
    SUCCESS(3, "成功","升级成功"),
    FAILED(4, "失败","升级失败"),
    STOP(5, "停止","设备离线停止推送"),
    UNKNOWN(404, "未知","未知错误码");

    //主题定义
    ${taskId}/ws/ota/status          是云端后台推送给云端前台的一个展示状态主题

    ${serialNumber}/http/upgrade/set  是云端推送给设备的主题

    ${serialNumber}/http/upgrade/reply 是设备上给云端的主题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

左边是云端上报 , 右边是设备上报

Topic: /26/ws/ota/status
{
  "serialNumber": "D1832O34Z5M1",
  "status": 0,
  "timestamp": 1724482221250
}
Topic: /26/ws/ota/status
{
  "serialNumber": "D1832O34Z5M1",
  "status": 1,
  "timestamp": 1724482221251
}
Topic: /D1832O34Z5M1/http/upgrade/set
{
  "taskId": 26,
  "url": "/profile/iot/1/2024-0824-001954.bin",
  "version": 1.2,
  "status": 1
}
                                                                    Topic: /D1832O34Z5M1/http/upgrade/reply
                                                                    {
                                                                    "taskId": 26,
                                                                    "progress": 5,
                                                                    "version": "1.2",
                                                                    "status": 2
                                                                    }
Topic: /26/ws/ota/status
{
  "serialNumber": "D1832O34Z5M1",
  "status": 2,
  "timestamp": 1724482231404,
  "progress": 5
}
                                                                    Topic: /D1832O34Z5M1/http/upgrade/reply
                                                                    {
                                                                        "taskId": 26,
                                                                        "progress": 50,
                                                                        "version": "1.2",
                                                                        "status": 2
                                                                    }
Topic: /26/ws/ota/status
{
  "serialNumber": "D1832O34Z5M1",
  "status": 2,
  "timestamp": 1724482251326,
  "progress": 50
}
                                                                    Topic: /D1832O34Z5M1/http/upgrade/reply
                                                                    {
                                                                    "taskId": 26,
                                                                    "progress": 70,
                                                                    "version": "1.2",
                                                                    "status": 2
                                                                    }
Topic: /26/ws/ota/status
{
  "serialNumber": "D1832O34Z5M1",
  "status": 2,
  "timestamp": 1724482290405,
  "progress": 70
}
                                                                    Topic: /D1832O34Z5M1/http/upgrade/reply
                                                                    {
                                                                    "taskId": 26,
                                                                    "progress": 100,
                                                                    "version": "1.2",
                                                                    "status": 2
                                                                    }
        
Topic: /26/ws/ota/status
{
  "serialNumber": "D1832O34Z5M1",
  "status": 2,
  "timestamp": 1724482302296,
  "progress": 100
}

                                                                    Topic: /D1832O34Z5M1/http/upgrade/reply
                                                                    {
                                                                    "taskId": 26,
                                                                    "progress": 100,
                                                                    "version": "1.2",
                                                                    "status": 3
                                                                    }
Topic: /26/ws/ota/status
{
  "serialNumber": "D1832O34Z5M1",
  "status": 3,
  "timestamp": 1724482308749
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

二进制包方式OTA升级

一、引言

OTA(Over-the-Air)升级是一种通过无线网络对设备进行远程升级的技术。本文档旨在详细描述 OTA 升级的流程,包括升级启动、升级包传输等环节。

二、OTA 升级流程概述

1.平台自行拼装 OTA 格式,启动 OTA 升级。
2.云端向设备发送升级启动指令。
3.设备收到升级启动指令后,进行校验和验证,若通过则向云端回复指令。
4.云端收到设备的正确回复后,开始 OTA 升级包传输。
5.云端向设备发送升级包传输指令。
6.设备收到升级包传输指令后,进行校验和验证,若通过则向云端回复指令。
7.云端根据设备的回复判断是否所有升级包都已传输完成,若未完成则继续发送下一个升级包传输指令,直至升级完成。

三、具体流程步骤
报文示例:

1、升级启动阶段:

  • 云端 -> 设备:
         0x55aa 0x00 0x0A 0x0004 [固件包字节数] [校验和]
1
  • 设备 -> 云端:
         0x55aa [0x00 - 0xFF] 0x0A 0x0001 [升级包分包传输大小] [校验和]
1

1、升级启动阶段:

  • 云端 -> 设备:
        0x55aa 0x00 0x0B 0x0004 + [数据包长度] [包偏移][数据包内容] [校验和]
1
  • 设备 -> 云端:
         0x55aa [0x00 - 0xFF] 0x0B 0x0000 [校验和]
1

1、升级启动阶段:

  • 云端 -> 设备:云端向设备发送升级启动指令,指令包含帧头(0x55aa)、版本号(0x00)、指令类型(0x0A)、子指令(0x0004)、固件包字节数和校验和(从帧头开始,按字节求和,对 256 求余)。
  • 设备 -> 云端:设备收到升级启动指令后,进行校验和验证。若校验和验证通过,设备向云端回复指令,指令包含帧头(0x55aa)、版本号(0x00 - 0xFF)、指令类型(0x0A)、子指令(0x0001)、升级包分包传输大小(0x00:256byte(默认);0x01:512byte;0x02:1024byte)和校验和(计算方式同云端发送的指令)

2、升级包传输:

  • 云端 -> 设备:云端向设备发送升级包传输指令,指令包含帧头(0x55aa)、版本号(0x00)、指令类型(0x0B)、子指令(0x0004 + 数据包长度)、前四字节为包偏移,后面为数据包内容(若包偏移大于等于固件包大小,则包传输结束)和校验和(从帧头开始,按字节求和,对 256 求余)。
  • 设备 -> 云端:设备收到升级包传输指令后,进行校验和验证。若校验和验证通过,设备向云端回复指令,指令包含帧头(0x55aa)、版本号(0x00 - 0xFF)、指令类型(0x0B)、子指令(0x0000)、空内容和校验和(计算方式同云端发送的指令)。

3、升级启动阶段:

  • 云端收到设备的回复后,判断是否所有升级包都已传输完成.
  • 若已完成,OTA 升级结束。
  • 若未完成,继续发送下一个升级包传输指令,回到升级包传输步骤。

# 2、注意事项

1、在整个升级过程中,校验和的验证是确保数据准确性和完整性的重要环节,任何校验和不匹配的指令都应被视为错误并进行相应的处理。
2、升级包的传输过程中,需要确保无线网络的稳定性,以避免数据丢失或传输中断。
3、若升级过程中出现异常情况,应具备相应的错误处理机制,例如重试、回滚等操作,以保证设备的正常运行。

# 3、操作流程

HTTPS 方式 OTA 升级流程操作

1、运维管理-产品固件:添加固件,选择产品:

2、升级包传输:

  • 产品固件列表点击固件详情

  • 新增任务,升级范围可选全部设备或指定设备 注意:选择预定升级时间,会在该时间节点升级,如果不选择,点击保存后立即升级

3、 实时观察任务升级进度:

  • 查看任务详情

  • 等待预定升级时间开始升级

  • 设备升级中:

  • 设备升级成功:

二进制包方式OTA流程操作同上

联动控制告警
新建设备

← 联动控制告警 新建设备→

Theme by Vdoing | Copyright © 2021-2024 延凡科技
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式