\r
### 客户端业务消息\r
\r
-客户端可以通过WebSocket连接发送业务消息给服务端,目前支持心跳、对话会话开始、对话会话结束、语音对话分片传输、语音对话打断、语音选择故事和随机故事请求。\r
+客户端可以通过WebSocket连接发送业务消息给服务端,目前支持心跳、对话会话开始、对话会话结束、语音对话分片传输、语音对话打断、语音选择故事、随机故事请求、蓝牙状态上报和设备升级状态上报。\r
\r
#### 心跳请求 (Ping)\r
**命令描述**:客户端发送心跳请求,保持WebSocket连接活跃\r
| success | Boolean | 是否成功处理状态上报 |\r
| message | String | 处理结果描述信息 |\r
\r
+#### 设备升级状态上报 (DeviceUpgradeStatusReport)\r
+**命令描述**:客户端发送设备升级状态上报,用于主动上报升级进度和结果\r
+**协议说明**:\r
+- 设备在执行升级任务过程中,定期上报升级状态和进度\r
+- 支持的状态包括:升级中、升级成功、升级失败、升级取消\r
+- 服务端返回DeviceUpgradeStatusReportAck应答确认收到状态上报\r
+\r
+\r
+**消息格式**:\r
+```json\r
+{\r
+ "deviceId": "设备ID",\r
+ "timestamp": 1640995200,\r
+ "messageId": "消息ID",\r
+ "command": "DeviceUpgradeStatusReport",\r
+ "data": {\r
+ "updateId": "任务ID",\r
+ "status": "UPGRADING",\r
+ "progress": 50,\r
+ "message": "升级进度50%"\r
+ }\r
+}\r
+```\r
+\r
+**消息示例**:\r
+```json\r
+{\r
+ "deviceId": "DEVICE_001",\r
+ "timestamp": 1640995200,\r
+ "messageId": "upgrade_status_001",\r
+ "command": "DeviceUpgradeStatusReport",\r
+ "data": {\r
+ "updateId": "upgrade_12345",\r
+ "status": "UPGRADING",\r
+ "progress": 50,\r
+ "message": "升级进度50%"\r
+ }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| updateId | String | 任务ID,与升级命令中的updateId对应 |\r
+| status | String | 升级状态,枚举值见下方说明 |\r
+| progress | Integer | 升级进度,范围:0-100,仅在status为UPGRADING时有效 |\r
+| message | String | 状态上报消息,用于描述状态上报的原因 |\r
+\r
+**status字段枚举值**:\r
+\r
+| 枚举值 | 描述 |\r
+|--------|------|\r
+| UPGRADING | 升级中 |\r
+| SUCCESS | 升级成功 |\r
+| FAILED | 升级失败 |\r
+| CANCEL | 升级取消 |\r
+\r
+**使用场景**:\r
+1. **升级中**:设备下载或安装升级包过程中,定期上报升级进度(progress: 0-100)\r
+2. **升级成功**:设备完成升级并重启后,上报SUCCESS状态\r
+3. **升级失败**:设备升级过程中出现错误时,上报FAILED状态和失败原因\r
+4. **升级取消**:用户主动取消升级或系统取消升级时,上报CANCEL状态\r
+\r
+**服务端响应**:\r
+服务端收到设备升级状态上报后,会通过WebSocket推送DeviceUpgradeStatusReportAck消息:\r
+\r
+```json\r
+{\r
+ "deviceId": "DEVICE_001",\r
+ "timestamp": 1640995201,\r
+ "messageId": "upgrade_status_ack_001",\r
+ "command": "DeviceUpgradeStatusReportAck",\r
+ "data": {\r
+ "updateId": "upgrade_12345",\r
+ "success": true,\r
+ "message": "升级状态上报处理完成"\r
+ }\r
+}\r
+```\r
+\r
+**服务端响应data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| updateId | String | 任务ID,与上报消息中的updateId对应 |\r
+| success | Boolean | 是否成功处理状态上报 |\r
+| message | String | 处理结果描述信息 |\r
+\r
+**协议说明**:\r
+- 服务端收到DeviceUpgradeStatusReport后,处理状态并返回此应答\r
+- success为true表示成功处理状态上报,false表示处理失败\r
+- 当收到升级状态时,服务端会将状态同步通知到小程序端\r
+- 设备端可根据应答确认状态上报是否成功,失败时可重试上报\r
+\r
### 客户端应答消息 (ACK Messages)\r
\r
客户端在收到服务端推送的某些命令后,需要发送应答消息(ACK)来确认命令的接收和执行状态。所有 ACK 消息遵循统一的消息格式。\r
**服务端处理说明**:\r
- 服务端收到BluetoothStatusReport命令后,更新设备缓存中的蓝牙连接信息,并返回BluetoothStatusReportAck应答给设备端\r
\r
-#### 20. 对话会话开始应答 (ChatSessionStartAck)\r
+#### 20. 设备升级状态上报应答 (DeviceUpgradeStatusReportAck)\r
+**命令描述**:服务端对设备升级状态上报的应答,确认收到状态上报\r
+**消息示例**:\r
+```json\r
+{\r
+ "deviceId": "DEVICE_001",\r
+ "timestamp": 1640995201,\r
+ "messageId": "msg_017",\r
+ "command": "DeviceUpgradeStatusReportAck",\r
+ "data": {\r
+ "updateId": "upgrade_12345",\r
+ "success": true,\r
+ "message": "升级状态上报处理完成"\r
+ }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| updateId | String | 任务ID,与上报消息中的updateId对应 |\r
+| success | Boolean | 是否成功处理状态上报 |\r
+| message | String | 处理结果描述信息 |\r
+\r
+**服务端处理说明**:\r
+- 服务端收到DeviceUpgradeStatusReport命令后,处理升级状态并返回DeviceUpgradeStatusReportAck应答给设备端\r
+- success为true表示成功处理状态上报,false表示处理失败(如设备不存在等)\r
+\r
+\r
+#### 21. 对话会话开始应答 (ChatSessionStartAck)\r
**命令描述**:服务端对对话会话开始请求的应答,返回生成的sessionId\r
\r
**消息格式**:\r