Files
cnc_wams/work/working1/01-功能内容.md
2026-07-02 08:01:34 -04:00

4.8 KiB
Raw Blame History

01-功能内容

功能目标

完善 Web RTCP 五轴仿真页面的数控控制按钮互相功能,使按钮状态和点击反馈真实反映 LinuxCNC task/HAL 控制状态。

本轮优先完成的按钮:

  • Run
  • Stop
  • Pause
  • Resume
  • Step
  • Home

已实现内容

  1. Run 条件检查和提示

    • 当执行条件不具备时Run 按钮保持可点击。
    • 点击后通过 operatorMessage 提示具体原因,例如机器未上电、未切到 AUTO、未 Home、task/HAL runtime 未就绪、未加载 LinuxCNC machine-file G-code 等。
    • 前端按钮增加 data-command-readyaria-disabled 状态,避免按钮被禁用后无法给出提示。
  2. Stop

    • Web store 发送 EMC_TASK_ABORT
    • task/HAL 状态回到 idle/stopped。
    • motion runtime 标记 aborted并清空/停止执行队列。
  3. Pause

    • Web store 发送 EMC_TASK_PLAN_PAUSE
    • task/HAL runtime 将解释器状态置为 PAUSED
    • motion runtime 接收 EMC_TRAJ_PAUSE,运动状态进入 paused。
  4. Resume

    • Web store 发送 EMC_TASK_PLAN_RESUME
    • 仅当返回的 LinuxCNC task/HAL 状态仍应继续运行时,才恢复 task/HAL status loop。
    • 避免 Resume 后在已完成、已停止或不应运行的状态下继续轮询。
  5. Step

    • Web store 发送 EMC_TASK_PLAN_STEP,不再只跑空 cycle。
    • task/HAL runtime 记录 singleStepping=truetaskPaused=true
    • motion runtime 增加 EMC_TRAJ_STEP / EMCMOT_STEP 支持,在 paused 状态下允许 step 命令通过。
  6. Home

    • Web store 发送 EMC_JOINT_HOME
    • Home 后立即保持 Web 侧 allHomed=true,防止快速 HOME -> SET_MODE 时序丢失已归零状态。
    • task/HAL 状态 patch 保留 allHomednoForceHoming
    • task/HAL session 初始化时停止旧 status loop防止旧循环覆盖新 session 状态。

LinuxCNC 源码依据

参考 LinuxCNC 源程序:

  • /home/mes123456/cnc_wams/linuxcnc/src/emc/task/emctaskmain.cc
  • /home/mes123456/cnc_wams/linuxcnc/src/emc/nml_intf/emc_nml.hh
  • /home/mes123456/cnc_wams/linuxcnc/src/emc/nml_intf/emc.hh

对应命令语义:

  • EMC_TASK_PLAN_RUN
  • EMC_TASK_PLAN_PAUSE
  • EMC_TASK_PLAN_RESUME
  • EMC_TASK_PLAN_STEP
  • EMC_TASK_ABORT
  • EMC_JOINT_HOME
  • EMC_TRAJ_PAUSE
  • EMC_TRAJ_RESUME
  • EMC_TRAJ_STEP
  • EMC_TRAJ_ABORT

修改文件

  • /home/mes123456/cnc_wams/web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js
  • /home/mes123456/cnc_wams/web-rtcp-5axis-sim-plan/app/src/state/store.js
  • /home/mes123456/cnc_wams/wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp
  • /home/mes123456/cnc_wams/wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c
  • /home/mes123456/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
  • /home/mes123456/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html

当前完成状态

状态:已完成并通过选定严格测试。

补充验收:已新增本地浏览器按钮流程取证,覆盖 Home、Run、Pause、Resume、Step、Stop 点击前后状态截图和 JSON 报告。

取证文件:

  • /home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs
  • /home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json
  • /home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf
  • /home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/

云端补充验收:

  • 已重新部署当前静态站点到 https://82.156.24.101:8092/
  • 已使用同一按钮流程脚本采集云端 Home、Run、Pause、Resume、Step、Stop 点击前后状态。
  • 云端报告状态:PASS
  • job_idbtn-20260623091811-c291e49b
  • report_idreport-btn-20260623091811-c291e49b
  • 云端 JSON/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.json
  • 云端 PDF/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.pdf
  • 云端截图:/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/cloud-button-control-evidence/

Native 对照补充验收:

  • 已生成 native task/HAL 对照报告。
  • 报告状态:PASS_WITH_HOST_NATIVE_RUNTIME_BLOCKER
  • 报告文件:
    • /home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json
    • /home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md
  • 结论LinuxCNC source/phase0/native readiness audit 对照通过host-native TRT runtime 状态转换日志因当前主机 native runtime 依赖阻塞无法生成。

注意本轮仍不声明真实硬件驱动、host realtime kernel、外部 User-M process 或 tool DB native runtime 已具备;这些边界在 native 对照报告中明确记录。