docs: record pause wasm implementation plan

This commit is contained in:
wangdequan
2026-07-07 09:40:33 -04:00
parent 6cecd280e2
commit 83402c506e
3299 changed files with 1364681 additions and 325 deletions

View File

@@ -132,3 +132,32 @@
结论:
本轮已按 `working1` 完成并验证 G 代码执行相关闭环。working1 的 D1/D2/D3 关键验收点保持通过;同时修复了 G93 inverse-time G-code 执行计时中源程序 F 字丢失的问题。现在 Web 执行计时既保留 LinuxCNC canonical feed 输出,又能用源 G-code 的 `F159/F636` 正确计算每段真实执行时间,并能继续传递到 task/HAL motion plan 和运行反馈测试中。
## 2026-07-07 09:31 EDT
### 提问
用户要求根据 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/doc/AXIS暂停按钮LinuxCNC调用链分析.md`,实现暂停功能,完善 `/home/mes123456/cnc_wams/wasm-port` 中 LinuxCNC 的 WASM 功能,最终实现 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan` 的暂停按钮正确功能;并把完善方法和详细步骤写入 `/home/mes123456/cnc_wams/work/working8`,文档包括 01 项目功能内容、02 项目程序开发详细步骤、03 推进台账、04 任务矩阵、05 验收证据、06 决策记录,另加 README 索引。
### 执行过程
1. 读取项目根目录 `AGENTS.md`,确认本轮结束后必须把完整执行过程中文日志追加到 `gptlog-process/gpdlog.md`
2. 读取 `wasm-port/AGENTS.md``wasm-port/SKILL.md`,确认 `wasm-port` 的工作原则是复用 LinuxCNC 源码语义wrapper 只能做 standalone/WASM 边界适配,不能扩展成独立 CNC 语义实现;同时确认该子目录额外要求追加日志到 `/home/mes123456/cnc_wams/web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
3. 读取 `web-rtcp-5axis-xyzbc-trt-sim-plan/doc/AXIS暂停按钮LinuxCNC调用链分析.md`,确认 AXIS 暂停按钮调用链是 `task_pauseresume -> linuxcnc.command().auto(AUTO_PAUSE/AUTO_RESUME) -> EMC_TASK_PLAN_PAUSE/RESUME -> emcTrajPause/Resume -> EMCMOT_PAUSE/RESUME -> tpPause/tpResume`
4. 提取关键结论:暂停必须同时维护 task/interpreter 暂停语义和 motion/trajectory 暂停语义task 层需要保存 `interpResumeState`、设置 `interpState=PAUSED``task_paused=1`motion 层需要设置 `motion.paused` 并阻止暂停期间继续推进普通运动队列TP 层后续应对标 `tpPause()/tpResume()`
5. 检查 `wasm-port``web-rtcp-5axis-xyzbc-trt-sim-plan` 文件结构,定位 task-hal、motion runtime、TP wasm、SDK、Web store、task policy、UI、Node 测试和浏览器验证工具。
6. 读取 `linuxcnc_task_hal_wasm.cpp``linuxcnc_motion_runtime.c``linuxcnc_tp_wasm.c``verify_task_hal_wasm.mjs``verify_tp_wasm.mjs``store.js``linuxcnc-task-policy.js` 的关键暂停相关段落,确认当前已有最低限度 pause/resume 状态,但仍缺 `interpResumeState` 完整恢复、motion immediate pause、STEP 自动回暂停、TP pause/resume probe 和 Web motion paused gate。
7. 读取既有暂停对标和测试报告,确认前端冻结历史测试通过,但不能替代底层 WASM task/motion/TP 对标验收。
8. 新增 `work/working8/README.md`,写入索引、推进入口和当前结论。
9. 新增 `work/working8/01-项目功能内容.md`写入项目目标、LinuxCNC 对标依据、当前代码基线、当前差距和完成定义。
10. 新增 `work/working8/02-项目程序开发详细步骤.md`,写入 task、motion、STEP、Web policy、TP、构建回归和证据记录的详细推进步骤。
11. 新增 `work/working8/03-推进台账.md`,记录本轮做了什么、改了哪些文件、验证了什么和下一步。
12. 新增 `work/working8/04-任务矩阵.md`,建立 `W8-001``W8-014` 的任务编号、状态和验收标准。
13. 新增 `work/working8/05-验收证据.md`,记录已有参考证据、本轮静态核对证据和后续待跑命令。
14. 新增 `work/working8/06-决策记录.md`,记录暂停双层语义、工具栏 toggle 与菜单命令分离、resume gate 优先 motion paused、pause 不清空队列、STEP 不是普通 resume、短期修 wrapper 长期接入 vendored TP 等决策。
15. 校验 `work/working8` 文件结构和关键字段检索,确认 README 与 01 至 06 文档均存在且包含关键任务和验收内容。
16. 本轮未修改业务代码,未运行构建或自动化测试,因为用户本轮交付物是完善方法和详细步骤文档。
### 结论
已完成 `/home/mes123456/cnc_wams/work/working8` 文档体系建设,新增 README 索引和 01 至 06 六个要求文档。文档明确了暂停按钮必须补齐 LinuxCNC task/interpreter 与 motion/trajectory 双层语义,拆分了 `W8-001``W8-014` 任务矩阵,并给出后续代码修改目标文件、验收标准和验证命令。本轮未修改业务代码,未运行测试。