diff --git a/index.html b/index.html
index 66cd929..8a9760c 100644
--- a/index.html
+++ b/index.html
@@ -55,7 +55,12 @@
+
+
+
+
+
diff --git a/zh-cn/hardware_vision_scheduling.md b/zh-cn/hardware_vision_scheduling.md
index f2ef652..6c1f85c 100644
--- a/zh-cn/hardware_vision_scheduling.md
+++ b/zh-cn/hardware_vision_scheduling.md
@@ -253,9 +253,9 @@ sequenceDiagram
}
```
-#### 2. scan_completed - 视觉扫描完成
+#### 2. scan_completed - 视觉扫描完成推送图像流
-**功能说明:** 用于通知系统视觉扫描已完成,触发硬件控制器将M106寄存器设置为true,标记扫描流程的完成。
+**功能说明:** 用于通知系统视觉扫描已完成并推送建模图像,触发硬件控制器将M106寄存器设置为true,标记扫描流程的完成。
**调用方法:** `s.hardwareController.ProcessVisionScanComplete()`
@@ -264,13 +264,72 @@ sequenceDiagram
**请求示例:**
```json
{
- "id": "req002",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
"action": "scan_completed",
- "timestamp": 1705123456789
+ "data": {
+ "wood_id": "WD0001",
+ "image_size": 314572800,
+ "image_format": "jpg"
+ },
+ "timestamp": 1705300000000
}
```
-**说明:** 此动作不需要data参数,用于通知系统视觉扫描已完成。系统接收到此请求后会自动将M106寄存器设置为true。
+**传输格式**
+协议设计(三段式)
+
+1. JSON元数据:{"id": "...", "action": "scan_completed", "data": {"wood_id": "WD0001", "image_size": 314572800, "image_format": "jpg"}}
+2. 8字节大端序整数:图像大小
+3. 原始二进制图像数据流
+
+**支持的图像格式:**
+- 普通图像:jpg, jpeg, png, bmp, tiff
+- 点云数据:pcd, ply, las, xyz
+- 3D模型:obj
+
+| 阶段 | 描述 | 示例 |
+| ---- | ---- | ---- |
+| 1 | JSON元数据(以'}'结束,触发JSON解析) | {"id":"xxx","action":"scan_completed","data":{"wood_id":"WD0001","image_size":314572800,"image_format":"jpg"},"timestamp":1705300000000} |
+| 2 | 8字节大端序整数(图像大小) | [0x00][0x00][0x00][0x00][0x12][0xC1][0x1C][0x00] = 314572800 bytes (约300MB) |
+| 3 | 原始二进制图像数据流 | [图像二进制数据... 共314572800字节] |
+
+**说明:** 用于通知系统视觉扫描已完成并推送建模图像。系统接收到此请求后会自动将M106寄存器设置为true。
+
+**参数说明:**
+
+| 参数 | 类型 | 说明 |
+| ---- | ---- | ---- |
+| wood_id | string | 原木唯一标识ID |
+| image_size | number | 图像大小 |
+| image_format | string | 图像格式 |
+| timestamp | number | 请求时间戳(毫秒) |
+
+```c
+// 第一阶段:发送JSON元数据
+json request = {
+ {"id", "req_123"},
+ {"action", "scan_completed"},
+ {"data", {
+ {"wood_id", "WD0001"},
+ {"image_size", 314572800}, // 300MB
+ {"image_format", "jpg"}
+ }}
+};
+send(sock, request.dump().c_str(), ...);
+
+// 第二阶段:发送8字节大端序图像大小
+int64_t imageSize = 314572800;
+int64_t networkSize = htobe64(imageSize); // 转换为大端序
+send(sock, &networkSize, 8, 0);
+
+// 第三阶段:发送原始二进制图像流
+FILE* fp = fopen("image.jpg", "rb");
+char buffer[32768];
+while ((n = fread(buffer, 1, sizeof(buffer), fp)) > 0) {
+ send(sock, buffer, n, 0);
+}
+fclose(fp);
+```
**响应示例:**
```json