FIX 设备配套的客户端开发资源。
fixSharedMemory_dll/)FIX 通过共享内存向外部程序提供任务提交与结果获取接口。纯 C API,无编译器版本限制。
| 文件 | 说明 |
|---|---|
fixSharedMemory_api.h |
客户唯一需要的头文件 (15 个函数) |
fixSharedMemoryDll.dll |
动态链接库 |
fixSharedMemoryDll.lib |
导入库 |
fixSharedMemory_dll_README.md |
DLL 详细开发文档 |
example.cpp |
使用示例 |
main.cpp |
示例代码 (来自 test_fixSharedMemoryDll) |
test_fixSharedMemoryDll.exe |
预编译测试程序 |
fixSharedMemory_api.h 和 fixSharedMemoryDll.lib 加入项目fixSharedMemoryDll.dll 部署到 exe 同目录fixSharedMemory_dll_README.md外部程序通过共享内存向 FIX 发送数据,FIX 处理完毕后返回一次结果。每次请求有且仅有一次响应。
适用场景:只需要将投影数据重建为体数据,不需要执行检测。
| 阶段 | 说明 |
|---|---|
| 1. 接收数据 | FIX 从共享内存接收投影图像序列及重建参数 |
| 2. 加载重建参数 | 解析重建配置(几何参数、探测器参数、体数据尺寸等) |
| 3. GPU 重建 | 在 GPU 上执行 CT 重建,将投影数据转换为三维体数据 |
| 4. 体数据加载 | 将重建结果加载到 3D 查看器中显示 |
| 5. 返回结果 | 返回 JSON,results 为空数组,teachingFile 为空字符串 |
适用场景:发送投影数据,自动完成重建和检测的完整流程。
| 阶段 | 说明 |
|---|---|
| 1. 接收数据 | FIX 从共享内存接收投影图像序列、重建参数及教学文件名称 |
| 2. 加载教学文件 | 加载指定的教学文件,恢复所有检测参数、ROI 区域和重建配置 |
| 3. GPU 重建 | 使用教学文件中的重建参数,在 GPU 上执行 CT 重建 |
| 4. 体数据加载 | 将重建得到的三维体数据加载到 3D 模块中 |
| 5. 自动检测 | 根据教学文件中配置的 ROI 和检测参数,自动执行检测 |
| 6. 返回结果 | 返回 JSON,results 包含每个 ROI 的测量数据和判定结果 |
适用场景:体数据已在外部完成重建,只需要 FIX 执行检测。
| 阶段 | 说明 |
|---|---|
| 1. 接收数据 | FIX 从共享内存接收已重建好的三维体数据及教学文件名称 |
| 2. 加载教学文件 | 加载指定的教学文件,恢复所有检测参数和 ROI 区域 |
| 3. 数据加载 | 将体数据加载到检测链中(无需重建,跳过 GPU 重建阶段) |
| 4. 自动检测 | 根据教学文件中配置的 ROI 和检测参数,自动执行检测 |
| 5. 返回结果 | 返回 JSON,格式同流程二 |
所有流程统一返回 JSON 格式:
{
"_metadata": {
"application": "FIX Inspection",
"version": "1.0",
"createdAt": "2026-04-10T10:12:49",
"dataName": "PCB_Projection",
"teachingFile": "PCB1",
"elapsedMs": 2970,
"status": "OK"
},
"results": [ ... ]
}
| 字段 | 类型 | 说明 |
|---|---|---|
_metadata.status |
string | "OK" 成功,"FAILED" 失败 |
_metadata.elapsedMs |
number | 处理总耗时(毫秒) |
_metadata.teachingFile |
string | 使用的教学文件名,仅重建时为空字符串 |
_metadata.dataName |
string | 数据名称 |
results |
array | 检测结果数组,仅重建时为空数组 |
| 流程 | teachingFile |
results |
|---|---|---|
| 仅重建(无教学文件) | "" |
[](空数组) |
| 重建 + 教学文件 | "PCB1" |
检测结果(ROI 测量数据、判定结果等) |
| 体数据 + 教学文件 | "PCB1" |
检测结果(同上) |
| 处理失败 | 视情况 | [](空数组),status 为 "FAILED" |
仅重建(无检测):
{
"_metadata": { "status": "OK", "teachingFile": "", "elapsedMs": 1850, ... },
"results": []
}
重建 + 检测:
{
"_metadata": { "status": "OK", "teachingFile": "PCB1", "elapsedMs": 2970, ... },
"results": [
{ "roiId": 1, "roiName": "C1", "stubLength_um": 150.3, "judgment": "PASS" },
{ "roiId": 2, "roiName": "C1", "stubLength_um": 148.7, "judgment": "PASS" }
]
}
注意:
results中的具体字段取决于检测项目类型,不同项目的字段可能不同。
客户端通过 --recon-config pcb.json 传入 configJson,其中 _metadata 包含行为控制参数,优先于共享内存数据包字段和 FIX 界面设置。
{
"_metadata": {
"teachingFile": "PCB1",
"loadToViewer": false
},
"geometry": { ... },
...
}
teachingFile — 教学文件指定| 值 | 行为 |
|---|---|
"PCB1" |
加载教学文件 PCB1,执行重建+检测完整流程 |
"" 或省略 |
仅执行重建,不加载教学文件 |
优先级:共享内存数据包的 teachingFile 字段优先;如果为空,则从 configJson 补充。推荐统一在 configJson 中设置。
loadToViewer — 显示渲染控制| 值 | 行为 |
|---|---|
false |
跳过 3D 查看器显示,省约 700ms |
true 或省略 |
正常显示(默认行为) |
# 重建 + 检测,不显示渲染(最快)
test_fixSharedMemoryDll.exe -d "数据目录" -n PCB_Projection -p \
--recon-config pcb.json
# pcb.json 中: "teachingFile": "PCB1", "loadToViewer": false
# 仅重建,无检测
# pcb.json 中: 不设 teachingFile 或设为 ""
fsChannelGetLastError)可在任意线程安全调用;回调函数在 DLL 内部线程触发,注意同步本文件随 FIX 安装包分发。后续 SDK 扩展将在此追加说明。