From 4eed105bf14e88872382d9b44a4c6105e5aedc54 Mon Sep 17 00:00:00 2001 From: ykxiao Date: Fri, 28 Nov 2025 11:12:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(docs):=20=E6=9B=B4=E6=96=B0=E8=A7=86?= =?UTF-8?q?=E8=A7=89=E6=89=AB=E6=8F=8F=E5=AE=8C=E6=88=90=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=B9=B6=E6=B7=BB=E5=8A=A0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=AB=98=E4=BA=AE=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增Prism.js多语言语法高亮脚本支持:bash、json、cpp、c - 扩展视觉扫描完成接口描述,加入推送建模图像的功能说明 - 补充传输协议设计及三段式数据格式详解 - 详细列出支持的图像格式种类及协议阶段示例说明 - 提供代码示例展示如何按协议发送JSON元数据、图像大小及二进制流 - 完善参数说明表格,增加请求时间戳字段解释 --- index.html | 5 +++ zh-cn/hardware_vision_scheduling.md | 69 ++++++++++++++++++++++++++--- 2 files changed, 69 insertions(+), 5 deletions(-) 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