Files
cnc_wams/work/working1/03-推进台账.md

86 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 03-推进台账
## 本轮目标
完成 Web RTCP 五轴仿真页面中 Run、Stop、Pause、Resume、Step、Home 按钮的互相功能,使按钮真实反映 LinuxCNC task/HAL 状态。Run 不满足条件时必须给出明确提示。
## 推进记录
| 轮次 | 做了什么 | 改了哪些文件 | 验证了什么 | 下一步 |
|---|---|---|---|---|
| 1 | 阅读 workspace 和 LinuxCNC WASM port 规则,确认必须以 LinuxCNC 源码作为语义依据 | 无 | 确认 `AGENTS.md``wasm-port/SKILL.md` 规则 | 定位按钮和状态代码 |
| 2 | 查找按钮渲染、状态 store、task/HAL runtime、motion runtime | 无 | 定位 `gmoccapy-shell.js``store.js`、task/HAL WASM shim | 对照 LinuxCNC 源码 |
| 3 | 对照 LinuxCNC 源码确认命令语义 | 无 | 确认 `RUN/PAUSE/RESUME/STEP/ABORT/HOME` 对应 LinuxCNC command | 修改 UI gate |
| 4 | 调整按钮 blocked 行为Run/Stop/Pause/Resume/Step/Home blocked 时仍可点击 | `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js` | blocked Run 可以点击并产生 operatorMessage | 修改 store 命令 |
| 5 | 修改 store 中 Resume、Step、Home、session reset 和 status patch 行为 | `web-rtcp-5axis-sim-plan/app/src/state/store.js` | Step 发送 `EMC_TASK_PLAN_STEP`Home 状态不丢失 | 修改 WASM runtime |
| 6 | task/HAL runtime 增加 paused/single-stepping 状态和 `EMC_TASK_PLAN_STEP` | `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp` | task status 输出 `taskPaused``singleStepping` | 修改 motion runtime |
| 7 | motion runtime 增加 `EMC_TRAJ_STEP` / `EMCMOT_STEP` | `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c` | paused 状态下 step 命令可以通过 | 重建 WASM |
| 8 | 重建 task/HAL WASM | 生成/更新 build artifact | `linuxcnc_task_hal_wasm_build=ok` | 跑 Node/WASM 测试 |
| 9 | 跑 WASM 和 Node 测试,发现 MDI `M428` 状态被旧时序影响 | `store.js` | 定位 Home 快速切模式导致 `allHomed` 丢失 | 修复 Home race |
| 10 | 修复 Home racetask/HAL HOME 先同步 Web homed 状态,再发 runtime command | `store.js` | `verify_linuxcnc_task_hal_runtime.mjs` 通过 | 增强测试 |
| 11 | 增加 STEP/STOP task/HAL 状态断言 | `web-rtcp-5axis-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs` | Step/Stop 状态可验收 | 增加浏览器断言 |
| 12 | 增加浏览器 blocked Run button 可点击断言 | `web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html` | blocked Run 不再 disabled点击后提示原因 | 记录日志 |
| 13 | 追加 GPT/Codex 过程日志 | `web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md` | 满足 workspace logging rule | 生成交付文档 |
| 14 | 新增浏览器按钮流程取证脚本,采集 Home/Run/Pause/Resume/Step/Stop 点击前后截图和状态报告 | `qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs` | `button_control_evidence_status=PASS`,生成 14 张截图和 JSON 报告 | 更新工作文档和日志 |
| 15 | 参数化按钮取证脚本,增加 `TARGET_URL`、云端独立输出、job_id、report_id、PDF 报告 | `qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs` | 本地取证仍 PASS并生成 PDF | 部署云端 |
| 16 | 重建并部署当前静态站点到 `https://82.156.24.101:8092/` | `web-rtcp-5axis-sim-plan/app/dist`;远端 `/var/www/web-rtcp-5axis-sim` | `nginx -t` 成功;远端 `curl -k -I https://127.0.0.1:8092/` 返回 `HTTP/2 200` | 跑云端按钮验收 |
| 17 | 对云端页面运行按钮流程取证 | `qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.json``cloud-button-control-evidence-report.pdf``screenshots/cloud-button-control-evidence/*.png` | `button_control_evidence_status=PASS`job_id/report_id 已生成 | 做 native 对照 |
| 18 | 生成 LinuxCNC native task/HAL 对照报告,记录 source/phase0 audit 和 host-native runtime blocker | `qa/web-rtcp-5axis-site-test/capture-native-task-hal-comparison.mjs``native-task-hal-comparison-report.json``native-task-hal-comparison-report.md` | `native_task_hal_comparison_status=PASS_WITH_HOST_NATIVE_RUNTIME_BLOCKER` | 更新文档和日志 |
## 最终改动文件
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp`
- `web-rtcp-5axis-sim-plan/app/src/state/store.js`
- `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`
- `web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
- `web-rtcp-5axis-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs`
- `qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs`
- `qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json`
- `qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf`
- `qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/*.png`
- `qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.json`
- `qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.pdf`
- `qa/web-rtcp-5axis-site-test/screenshots/cloud-button-control-evidence/*.png`
- `qa/web-rtcp-5axis-site-test/capture-native-task-hal-comparison.mjs`
- `qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json`
- `qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md`
- `web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
## 最终验证
通过:
- `bash wasm-port/tools/build_task_hal_wasm.sh`
- `node wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs`
- `node web-rtcp-5axis-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs`
- `node web-rtcp-5axis-sim-plan/tests/node/verify_run_preconditions.mjs`
- `node web-rtcp-5axis-sim-plan/tests/node/verify_rtcp_store.mjs`
- `bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh`
- `node --check qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs`
- `node qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs`
- `TARGET_URL='https://82.156.24.101:8092/' EVIDENCE_SCOPE='cloud-button-control-evidence' node qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs`
- `bash wasm-port/tests/native/verify_task_hal_phase0.sh`
- `node web-rtcp-5axis-sim-plan/tests/node/verify_native_task_hal_audit.mjs`
- `node --check qa/web-rtcp-5axis-site-test/capture-native-task-hal-comparison.mjs`
- `node qa/web-rtcp-5axis-site-test/capture-native-task-hal-comparison.mjs`
新增浏览器取证结果:
- `button_control_evidence_status=PASS`
- JSON`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json`
- 截图目录:`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/`
- PDF`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf`
- 云端 JSON`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.json`
- 云端 PDF`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.pdf`
- 云端截图目录:`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/cloud-button-control-evidence/`
- 云端 job_id`btn-20260623091811-c291e49b`
- 云端 report_id`report-btn-20260623091811-c291e49b`
- Native 对照 JSON`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json`
- Native 对照 Markdown`/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md`
## 遗留事项
1. `work/working1` 中 BTN-001 到 BTN-013 已全部有验收或 blocker 证据。
2. 当前仍不声明真实硬件、host realtime kernel、外部 User-M process 或 tool DB native runtime 已具备native host runtime 的阻塞原因已记录在 native 对照报告中。