feat(docs): 更新视觉扫描完成接口文档并添加代码高亮支持

- 新增Prism.js多语言语法高亮脚本支持:bash、json、cpp、c
- 扩展视觉扫描完成接口描述,加入推送建模图像的功能说明
- 补充传输协议设计及三段式数据格式详解
- 详细列出支持的图像格式种类及协议阶段示例说明
- 提供代码示例展示如何按协议发送JSON元数据、图像大小及二进制流
- 完善参数说明表格,增加请求时间戳字段解释
This commit is contained in:
2025-11-28 11:12:07 +08:00
parent 59feca65d7
commit 4eed105bf1
2 changed files with 69 additions and 5 deletions

View File

@@ -55,7 +55,12 @@
</script> </script>
<!-- Docsify v4 --> <!-- Docsify v4 -->
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script> <script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-php.min.js"></script> <script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-php.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-json.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-cpp.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-c.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script> <script src="//cdn.jsdelivr.net/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/@alertbox/docsify-footer/dist/docsify-footer.min.js"></script> <script src="//cdn.jsdelivr.net/npm/@alertbox/docsify-footer/dist/docsify-footer.min.js"></script>

View File

@@ -253,9 +253,9 @@ sequenceDiagram
} }
``` ```
#### 2. scan_completed - 视觉扫描完成 #### 2. scan_completed - 视觉扫描完成推送图像流
**功能说明:** 用于通知系统视觉扫描已完成触发硬件控制器将M106寄存器设置为true标记扫描流程的完成。 **功能说明:** 用于通知系统视觉扫描已完成并推送建模图像触发硬件控制器将M106寄存器设置为true标记扫描流程的完成。
**调用方法:** `s.hardwareController.ProcessVisionScanComplete()` **调用方法:** `s.hardwareController.ProcessVisionScanComplete()`
@@ -264,13 +264,72 @@ sequenceDiagram
**请求示例:** **请求示例:**
```json ```json
{ {
"id": "req002", "id": "550e8400-e29b-41d4-a716-446655440000",
"action": "scan_completed", "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 ```json