提交 xyzbc-trt 界面与验证更新

This commit is contained in:
mes123456
2026-07-02 20:25:37 -04:00
parent 68ecd05353
commit 370c344b96
868 changed files with 275426 additions and 39640 deletions

View File

@@ -1,5 +1,59 @@
# 03-推进台账
## 2026-07-02 15:45 EDT - native 采集器自启动复核轮次
### 本轮目标
接续上一轮,复核 `working` 目录声称已完成的全部验收项,并修正 native evidence 单条验收命令不能独立重现的问题。
### 已做事项
- 运行 `python3 -m py_compile tools/collect-native-xyzbc-trt-evidence.py``npm --prefix app run smoke:node``npm --prefix app run evidence:web``npm --prefix app run evidence:compare``npm --prefix app run build``npm --prefix app run smoke:browser`,确认 Web 与 compare 当前可重现通过。
- 首次直接执行 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment python3 tools/collect-native-xyzbc-trt-evidence.py --run --timeout 80` 时失败,错误为 `linuxcnc.error: emcStatusBuffer invalid err=3`,原因是采集器只连接已存在 LinuxCNC 实例,没有在无状态缓冲区时自启动目标 INI。
- 修改 `tools/collect-native-xyzbc-trt-evidence.py`
- `--run` 默认在无可用 LinuxCNC 状态缓冲区时启动 `/home/mes123456/cnc_wams/linuxcnc/scripts/linuxcnc` 和目标 `xyzbc-trt.ini`
- 新增 `--startup-timeout``--no-autostart`,保留只连接现有实例的兼容路径。
- 自启动日志写入 `/tmp/xyzbc-trt-native-evidence-linuxcnc.log`
- 采集结束后只清理本采集器启动的 LinuxCNC 进程。
- 若连接或自启动失败,写入明确的 blocked JSON而不是让 Python traceback 成为唯一结果。
- 重新生成:
- `working/evidence/native-xyzbc-trt-evidence.json`
- `working/evidence/web-xyzbc-trt-evidence.json`
- `working/evidence/compare-xyzbc-trt-evidence.json`
### 验证情况
- `python3 -m py_compile tools/collect-native-xyzbc-trt-evidence.py` 通过。
- `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment python3 tools/collect-native-xyzbc-trt-evidence.py --run --timeout 80` 通过,`native.linuxcncRuntime.startup.startedByCollector=true`
- `npm --prefix app run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
- `npm --prefix app run evidence:web` 通过。
- `npm --prefix app run evidence:compare` 通过,输出 `compare_xyzbc_trt_status=pass`
- `npm --prefix app run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm --prefix app run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`
### JSON 摘要
```text
native.status = ok
native.linuxcncRuntime.startup.startedByCollector = true
native.previewPath.sampleCount = 3226
native.executionPath.sampleCount = 7
native.executionPath.taskHal.completed = true
web.status = ready-for-wasm-runtime
web.previewPath.sampleCount = 3074
web.executionPath.sampleCount = 569
compare.summary.checkCount = 29
compare.summary.passCount = 29
compare.summary.failCount = 0
compare.summary.blockers = []
```
### 结论
`working` 目录要求的 T-001 到 T-040 已完成,且 native/Web/compare 证据可通过文档中的单条命令链重新生成。此前需要手动预先启动 LinuxCNC 的隐含前置已移除。
## 2026-07-02 10:32 EDT - native/Web 全量证据闭环轮次
### 本轮目标
@@ -644,3 +698,42 @@ web-rtcp-5axis-xyzbc-trt-sim-plan/working/06-决策记录.md
1. 继续 native preview/execution path 重采集。
2. 实现 Web task/HAL execution path collector。
3. 重跑 Web/native compare使剩余 6 个 path 相关失败项进入可比误差统计。
## 2026-07-02 AXIS 按钮级源程序对标与逐按钮验证
### 本轮目标
继续用户要求:`web-rtcp-5axis-xyzbc-trt-sim-plan` 的 Web 仿真页面必须继续完全对标 LinuxCNC 源程序 AXIS 功能,界面按钮功能也要全面对标 LinuxCNC 源程序功能,并验证每一个按钮的功能和逻辑。
### 已做事项
- 定位真实 AXIS 源码:`/home/mes123456/cnc_wams/linuxcnc/src/emc/usr_intf/axis/scripts/axis.py`
-`app/src/ui/axis-shell.js` 新增 `AXIS_BUTTON_PARITY`,逐项记录 Web action、LinuxCNC `axis.py`/POSTGUI HAL 来源、源码行段和预期状态效果。
- 修正按钮逻辑:
- `estop` 由单向进入 ESTOP 改为按 AXIS `estop_clicked` 语义在 ESTOP/ESTOP_RESET 间切换。
- 菜单 `open` 从全局 AXIS shell 查找隐藏 file input避免 menubar 局部查找失败。
- 给菜单、工具栏、手动/MDI、PyVCP 控件补 `data-axis-source-ref``data-axis-source-lines``data-axis-expected-effect`,供浏览器验收。
- `main.js` 公开 `getButtonParity()`,浏览器 smoke 可直接检查按钮级对标矩阵。
- Web evidence 新增 `axisMainUi.axisButtonParity``coverage.axisButtonParityCovered`compare 新增按钮级覆盖检查。
- Node smoke 增加按钮状态机断言。
- Browser smoke 增加真实点击序列,覆盖 ESTOP/复位、上电、回零、MDI、M428/M429/M430、Jog、override、主轴、冷却、视图、清轨迹、run-ready。
- 更新 `04-任务矩阵.md`,新增 T-041/T-042。
- 更新 `07-全量对标追踪矩阵.md``08-xyzbc-trt-界面与图标分析.md`,把按钮级对标纳入后续工作基线。
### 验证情况
- `npm run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
- `npm run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`;浏览器实际点击 AXIS/PyVCP 关键按钮并断言状态变化。
- `npm run evidence:web` 通过,生成 `working/evidence/web-xyzbc-trt-evidence.json`
- `npm run evidence:compare` 通过,输出 `compare_xyzbc_trt_status=pass`
- 当前 `web-xyzbc-trt-evidence.json` 摘要:
- `axisMainUi.axisButtonParity.buttonCount=61`
- `axisMainUi.axisButtonParity.sourceReferencedCount=61`
- `axisMainUi.axisButtonParity.missingActions=[]`
- `coverage.axisButtonParityCovered=true`
- 当前 `compare-xyzbc-trt-evidence.json` 摘要:
- `checkCount=30`
- `passCount=30`
- `failCount=0`
- `blockers=[]`