Files
cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/15-20260706-AXIS主控制按钮严格对标补齐.md
2026-07-07 09:40:33 -04:00

2.4 KiB
Raw Blame History

2026-07-06 AXIS 主控制按钮严格对标补齐

用户提问

对标 doc/AXIS主控制按钮功能先决条件与状态影响详解.md,修改项目 /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan,并依据 working 下既有任务文档实施。

本轮目标

  1. 以本地 LinuxCNC AXIS task_pausetask_resumetask_pauseresume 源码和项目文档为准,复查主控制按钮状态门禁。
  2. 收紧 Web 仿真中暂停相关门禁,避免仅凭 runState 的残留运行态绕过 AXIS 的 task_modeinterp_state 条件。
  3. 更新自动化验证,覆盖菜单 Pause、工具栏 pause/resume 在 idle、manual、AUTO/MDI、paused 状态下的严格行为。
  4. 重新构建 dist,执行节点 smoke、浏览器 smoke、Web evidence 与 compare。

实施结论

  • app/src/state/linuxcnc-task-policy.js

    • canPause 调整为仅在 STATE_ON + MODE_AUTO + INTERP_READING/WAITING 时为真。
    • 菜单 PAUSE 严格对标 AXIS task_pause:非 AUTO 阻止,非 READING/WAITING 阻止。
    • 工具栏 PAUSE_RESUME 的暂停分支对标 AXIS task_pauseresume:必须为 AUTO/MDI且解释器非 idle。
  • app/src/state/store.js

    • PAUSE_RESUME 不再因 runState=running/stepping 自动接管 manual 残留状态。
    • PAUSE_RESUME 在 manual 模式直接返回 pause blocked: task mode must be auto or MDI
    • PAUSE_RESUME 在 AUTO/MDI 且解释器 idle 时返回 pause ignored: interpreter is idle
  • tests/node/verify_xyzbc_trt_web_app.mjs

    • 移除旧的宽容断言idle interpreter + running runState 不应被菜单 Pause 暂停。
    • 移除旧的宽容断言manual 残留 running 状态不应被工具栏 pause/resume 强制改成 AUTO paused。
    • 增加对应严格拦截断言。
  • app/dist/src/...

    • 通过 npm --prefix app run buildsrc 重新生成。

验证结果

npm --prefix app run smoke:node
xyzbc_trt_web_app_smoke=ok

npm --prefix app run build
gmoccapy_static_build=ok

npm --prefix app run smoke:browser
xyzbc_trt_browser_smoke=ok

npm --prefix app run evidence:web
web_xyzbc_trt_evidence=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json

npm --prefix app run evidence:compare
compare_xyzbc_trt_status=pass

注意事项

本轮开始前工作区已有多处未提交修改和新增证据文件。本轮只在现有状态上补齐 AXIS 暂停/恢复门禁,不回退既有改动。