263 lines
8.9 KiB
Markdown
263 lines
8.9 KiB
Markdown
# 12-20260704 真实执行复验与缺失功能工作计划
|
||
|
||
## 目标
|
||
|
||
按用户要求,对仿真项目 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan` 与 LinuxCNC 源程序 `/home/mes123456/cnc_wams/linuxcnc` 中 `xyzbc-trt` 功能重新做真实执行对比,分析仿真项目缺失功能,并形成后续工作计划。
|
||
|
||
## 本轮真实执行范围
|
||
|
||
### native LinuxCNC
|
||
|
||
执行入口:
|
||
|
||
```text
|
||
/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment
|
||
```
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment \
|
||
python3 /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py \
|
||
--run --timeout 90
|
||
```
|
||
|
||
输出:
|
||
|
||
```text
|
||
native_xyzbc_trt_evidence=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/native-xyzbc-trt-evidence.json
|
||
```
|
||
|
||
关键结果:
|
||
|
||
```text
|
||
status=ok
|
||
executionMode=auto-run
|
||
coverage=35/35
|
||
previewPath.sampleCount=1300
|
||
executionPath.sampleCount=4
|
||
semanticExecutionPath.sampleCount=1300
|
||
lineExecutionTrace=64
|
||
axisValuesByLine=29
|
||
blockers=[]
|
||
```
|
||
|
||
### Web 仿真项目
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser
|
||
```
|
||
|
||
输出:
|
||
|
||
```text
|
||
web_xyzbc_trt_evidence=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json
|
||
xyzbc_trt_web_app_smoke=ok
|
||
xyzbc_trt_browser_smoke=ok
|
||
```
|
||
|
||
关键结果:
|
||
|
||
```text
|
||
status=ready-for-wasm-runtime
|
||
coverage=49/49
|
||
previewPath.sampleCount=1300
|
||
executionPath.sampleCount=228
|
||
semanticExecutionPath.sampleCount=1300
|
||
lineExecutionTrace=64
|
||
axisValuesByLine=29
|
||
blockers=[]
|
||
```
|
||
|
||
### native/Web compare
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||
```
|
||
|
||
输出:
|
||
|
||
```text
|
||
compare_xyzbc_trt_evidence=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/compare-xyzbc-trt-evidence.json
|
||
compare_xyzbc_trt_status=pass
|
||
```
|
||
|
||
关键结果:
|
||
|
||
```text
|
||
status=pass
|
||
checkCount=60
|
||
passCount=60
|
||
failCount=0
|
||
blockers=[]
|
||
nativeStatus=ok
|
||
webStatus=ready-for-wasm-runtime
|
||
```
|
||
|
||
## 对比结论
|
||
|
||
本轮真实执行与 compare 没有发现新的缺失功能。当前仿真项目已覆盖并通过以下对标面:
|
||
|
||
- LinuxCNC 源树 manifest、启动入口、运行环境和源码/构建产物绑定。
|
||
- `xyzbc-trt.ini` 全字段、HAL 图谱、POSTGUI HAL、PyVCP、tool table、parameter file。
|
||
- `xyzbc-trt-kins.c`、`trtfuncs.c` 的 switchkins 与 TRT 运动学公式级证据。
|
||
- M428/M429/M430 remap、Ngcgui 子程序和示例程序执行过程。
|
||
- AXIS/PyVCP UI 按钮、状态联锁、MDI、jog、override、运行/暂停/停止等行为证据。
|
||
- Vismach 变换树、刀具方向、截图/视觉证据、task/HAL 状态、错误路径和性能预算。
|
||
- 源码派生、运行观察、运行采样三类证据已在 JSON 中区分,避免静态推导冒充真实运行。
|
||
|
||
关键一致性数据:
|
||
|
||
```text
|
||
semanticExecutionVsSemanticExecution.status=pass
|
||
nativeSampleCount=1300
|
||
webSampleCount=1300
|
||
maxTcpErrorMm=3.552713678800501e-15
|
||
rmsTcpErrorMm=4.515420281608176e-16
|
||
maxJointError=3.552713678800501e-15
|
||
maxToolAxisAngleDeg=0
|
||
machineStateMismatchCount=0
|
||
sampleCountDelta=0
|
||
|
||
lineExecutionComparison.status=pass
|
||
nativeTraceCount=64
|
||
webTraceCount=64
|
||
mismatchCount=0
|
||
|
||
axisValuesByLineComparison.status=pass
|
||
nativeLineValueCount=29
|
||
webLineValueCount=29
|
||
maxTcpErrorMm=0
|
||
maxJointError=0
|
||
maxToolAxisAngleDeg=0
|
||
mismatchCount=0
|
||
|
||
gcodeExecutionProcessComparison.status=pass
|
||
nativeExecutionStepCount=128
|
||
webExecutionStepCount=128
|
||
nativeSourceLineCoverageCount=65
|
||
webSourceLineCoverageCount=65
|
||
mismatchCount=0
|
||
```
|
||
|
||
## 缺失功能分析
|
||
|
||
当前按既有 60 项硬检查结果,缺失功能清单为空:
|
||
|
||
| 类别 | 缺失功能 | 当前判定 | 证据 |
|
||
| --- | --- | --- | --- |
|
||
| 源码/manifest | 无新增缺失 | 通过 | `sourceManifestComparison.status=pass` |
|
||
| 启动/运行态 | 无新增缺失 | 通过 | `runtimeLaunchComparison.status=pass` |
|
||
| INI/HAL | 无新增缺失 | 通过 | `iniFullComparison.status=pass`、`halGraphComparison.status=pass` |
|
||
| 运动学/remap | 无新增缺失 | 通过 | `kinematicsFormulaComparison.status=pass`、`remapSemanticsComparison.status=pass` |
|
||
| UI/Vismach/视觉 | 无新增缺失 | 通过 | `uiBehaviorComparison.status=pass`、`visualComparison.status=pass` |
|
||
| G 代码执行过程 | 无新增缺失 | 通过 | `lineExecutionComparison.status=pass`、`gcodeExecutionProcessComparison.status=pass` |
|
||
| task/HAL/限制/错误路径 | 无新增缺失 | 通过 | `taskHalFullStateComparison.status=pass`、`limitInterlocksComparison.status=pass`、`errorPathComparison.status=pass` |
|
||
| 性能/采样误差 | 无新增缺失 | 通过 | `performanceBudgetComparison.status=pass` |
|
||
|
||
说明:本结论只对 2026-07-04 18:12 EDT 本轮重新生成的 native/Web/compare evidence 有效。后续任何 LinuxCNC 源码、Web 源码、staging 文件、WASM artifact、UI 行为或采样逻辑变更,都必须重新执行同一组命令并更新本文件或后续任务文档。
|
||
|
||
## 工作计划
|
||
|
||
### P-001 固定本轮证据为当前基线
|
||
|
||
状态:完成。
|
||
|
||
验收:
|
||
|
||
```text
|
||
working/evidence/native-xyzbc-trt-evidence.json
|
||
working/evidence/web-xyzbc-trt-evidence.json
|
||
working/evidence/compare-xyzbc-trt-evidence.json
|
||
```
|
||
|
||
均已重新生成,compare 为 `60/60 pass`。
|
||
|
||
### P-002 变更后强制复验
|
||
|
||
状态:长期执行。
|
||
|
||
触发条件:
|
||
|
||
- `/home/mes123456/cnc_wams/linuxcnc` 中 `xyzbc-trt` 相关源码、配置、HAL、NGC、PyVCP、Vismach 或 rtlib 变化。
|
||
- `web-rtcp-5axis-xyzbc-trt-sim-plan/app`、`tools`、`tests`、`working/evidence` 中与执行、UI、采样或对比相关内容变化。
|
||
- WASM artifact 重新构建或替换。
|
||
|
||
复验命令:
|
||
|
||
```bash
|
||
/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment \
|
||
python3 /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py \
|
||
--run --timeout 90
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
|
||
npm --prefix /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser
|
||
```
|
||
|
||
通过标准:
|
||
|
||
```text
|
||
compare.status=pass
|
||
summary.failCount=0
|
||
summary.blockers=[]
|
||
smoke:node=ok
|
||
smoke:browser=ok
|
||
```
|
||
|
||
### P-003 出现 fail/blocker 时的处理顺序
|
||
|
||
状态:待触发。
|
||
|
||
处理顺序:
|
||
|
||
1. 先定位 `compare-xyzbc-trt-evidence.json.requiredImprovements`。
|
||
2. 按 category 分配到源码/运行态、INI/HAL、运动学/remap、UI/Vismach、G 代码执行、task/HAL、错误路径、性能预算。
|
||
3. 回查 `native-xyzbc-trt-evidence.json` 与 `web-xyzbc-trt-evidence.json` 的同名字段,确认是 native 采集失败、Web 实现缺失,还是 compare 阈值/字段映射问题。
|
||
4. 修改实现或采集脚本后重新执行 P-002 全量复验。
|
||
5. 只有 compare 恢复 `pass` 后,才能把对应缺失项标为完成。
|
||
|
||
### P-004 working 文档维护规则
|
||
|
||
状态:长期执行。
|
||
|
||
要求:
|
||
|
||
- 若 compare 仍为 `60/60 pass`,不得新增“缺失功能已发现”的误报任务。
|
||
- 若新增对标维度,应扩展 `04-任务矩阵.md` 的任务编号和 compare 硬检查,不只写文字结论。
|
||
- 每次复验必须更新 `03-推进台账.md`、`05-验收证据.md`,并在 `gptlog-process/gpdlog.md` 追加中文过程日志。
|
||
|
||
## 最终结论
|
||
|
||
截至 2026-07-04 18:12 EDT,仿真项目通过真实执行对比后未发现相对 LinuxCNC `xyzbc-trt` 的新增缺失功能。当前工作计划不是补缺实现,而是固定本轮 `60/60 pass` 证据,并建立后续变更后的强制复验和 fail/blocker 处置流程。
|
||
|
||
## 2026-07-05 18:08 EDT 复验补充
|
||
|
||
按用户再次要求“除了硬件相关的,在仿真的所有方面完全对标”,已重新执行 P-002 全量复验并更新 `working` 入口文档、任务矩阵、推进台账和验收证据。
|
||
|
||
本轮硬件排除边界:只排除实体伺服、电气 I/O、现场总线、真实主轴/冷却/刀库等物理设备接入;LinuxCNC `xyzbc-trt` 软件仿真的源码、配置、HAL/task、AXIS/PyVCP/Vismach 等效 UI、switchkins/remap、G 代码执行、路径采样、错误联锁和 evidence/compare 仍全部纳入对标范围。
|
||
|
||
复验结果:
|
||
|
||
```text
|
||
native.status=ok
|
||
web.status=ready-for-wasm-runtime
|
||
compare.status=pass
|
||
compare.summary.checkCount=60
|
||
compare.summary.passCount=60
|
||
compare.summary.failCount=0
|
||
compare.summary.blockers=[]
|
||
compare.requiredImprovements=[]
|
||
smoke:node=ok
|
||
smoke:browser=ok
|
||
build=ok
|
||
```
|
||
|
||
结论:截至 2026-07-05 18:08 EDT,仍未发现相对 `/home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini` 的新增非硬件仿真缺失功能。
|