Files
cnc_wams/work/working1/05-验收证据.md
2026-07-02 08:01:34 -04:00

8.5 KiB
Raw Blame History

05-验收证据

验收范围

本轮验收覆盖:

  • Run 条件不具备时可点击并提示原因。
  • Run 条件满足后进入 task/HAL 执行。
  • Stop、Pause、Resume、Step、Home 按钮驱动 task/HAL runtime。
  • 按钮状态来自 LinuxCNC task policy 和 task/HAL status而不是固定 UI 状态。

命令证据

1. 构建 task/HAL WASM

命令:

bash wasm-port/tools/build_task_hal_wasm.sh

结果:

linuxcnc_task_hal_wasm_build=ok

2. WASM task/HAL runtime 测试

命令:

node wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs

结果:

linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok

3. Web store + task/HAL runtime 测试

命令:

node web-rtcp-5axis-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs

结果:

linuxcnc_task_hal_runtime_smoke=ok
task_hal_machine_file_smoke=ok
switchkins_remap_hal_sync_smoke=ok
browser_task_hal_worker_smoke=ok

覆盖点:

  • Run task/HAL feedback。
  • MDI M428switchkinsType=1
  • Home 后 Jog 保持坐标连续。
  • Pause 后 interpState=paused
  • Resume 后 interpState=reading
  • Step 后 singleStepping=true
  • Stop 后 motion.aborted=true

4. Run preconditions 测试

命令:

node web-rtcp-5axis-sim-plan/tests/node/verify_run_preconditions.mjs

结果:

run_preconditions_ini_profile_smoke=ok
run_preconditions_kinematics_smoke=ok
run_preconditions_machine_file_smoke=ok

覆盖点:

  • LinuxCNC INI 未加载时阻止 Run。
  • task/HAL runtime 未就绪时阻止 Run。
  • 未开机、未 AUTO、未 Home 时阻止 Run。
  • 未选择 machine-file G-code 时阻止 Run。

5. Store 回归测试

命令:

node web-rtcp-5axis-sim-plan/tests/node/verify_rtcp_store.mjs

结果:

rtcp_store_smoke=ok

6. 浏览器 smoke 测试

命令:

bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh

结果:

gmoccapy_shell_smoke=ok

覆盖点:

  • 页面渲染完整。
  • task/HAL runtime worker 就绪。
  • blocked Run 按钮不 disabled。
  • blocked Run 按钮有 data-command-ready=falsearia-disabled=true
  • 点击 blocked Run 后输出 blocked 原因。
  • Pause/Resume browser workflow 正常。

7. 浏览器按钮流程截图取证

命令:

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

结果:

button_control_evidence_status=PASS
button_control_evidence_job_id=btn-20260623091525-b35869f1
button_control_evidence_report_id=report-btn-20260623091525-b35869f1
button_control_evidence_json=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json
button_control_evidence_pdf=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf
button_control_evidence_screenshots=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence

覆盖点:

  • Home 后 allHomed=true,保持 manual/idle 状态。
  • Run 后 runState=runningruntime feedback 来源为 linuxcnc-task-motion-hal-wasm
  • Pause 后 runState=pausedtaskPaused=true
  • Resume 后恢复 runState=runninginterpState=reading
  • Step 后 singleStepping=true,并保持 paused。
  • Stop 后 runState=stoppedmotion.aborted=true
  • 14 张截图非空,且每一步记录 RUN/STOP/PAUSE/RESUME/STEP/HOME 的 readiness 属性。

8. 云端部署与按钮流程验收

部署命令摘要:

bash wasm-port/tools/build_task_hal_wasm.sh
npm --prefix web-rtcp-5axis-sim-plan/app run build
tar -C web-rtcp-5axis-sim-plan/app/dist -czf /tmp/web-rtcp-5axis-sim-8092-working1.tar.gz .

云端发布:

host=82.156.24.101
user=ubuntu
nginx root=/var/www/web-rtcp-5axis-sim
remote tar=/home/ubuntu/tmp/web-rtcp-5axis-sim-8092-working1-20260623051405.tar.gz
remote staging=/home/ubuntu/tmp/web-rtcp-5axis-sim-8092-working1-20260623051405
remote backup=/home/ubuntu/tmp/web-rtcp-backups/web-rtcp-5axis-sim-before-working1-20260623051405

云端验证:

sudo nginx -t -> nginx: configuration file /etc/nginx/nginx.conf test is successful
curl -k -I https://127.0.0.1:8092/ -> HTTP/2 200

公网按钮流程取证命令:

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

结果:

button_control_evidence_status=PASS
button_control_evidence_job_id=btn-20260623091811-c291e49b
button_control_evidence_report_id=report-btn-20260623091811-c291e49b
button_control_evidence_json=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.json
button_control_evidence_pdf=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.pdf
button_control_evidence_screenshots=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/cloud-button-control-evidence

9. LinuxCNC native task/HAL 对照报告

命令:

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

结果:

task_hal_phase0_native_probe_gate=ok
native_task_hal_source_artifact_audit=ok
native_task_hal_comparison_status=PASS_WITH_HOST_NATIVE_RUNTIME_BLOCKER
native_task_hal_comparison_json=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json
native_task_hal_comparison_markdown=/home/mes123456/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md
native_task_hal_transition_log_available=0
native_task_hal_host_blocker_count=15

阻塞证据摘要:

  • linuxcnc/scripts/linuxcnclinuxcnc/scripts/rip-environment 硬编码旧路径 /home/cnc/桌面/cnc_wams/linuxcnc
  • linuxcnc/bin/halcmd 要求当前主机没有的 GLIBC_2.38
  • linuxcnc/bin/rs274 要求当前主机没有的 GLIBC_2.38GLIBCXX_3.4.31libpython3.13.so.1.0
  • 当前主机 glibc 为 Ubuntu GLIBC 2.35libstdc++ 只到 GLIBCXX_3.4.30

结论BTN-013 已形成可复核 native/source 对照和 host-native blocker 证据;不声明 native task 状态转换日志已生成。

页面证据

本轮执行的是本地和云端 browser 验收:

  • 页面入口:web-rtcp-5axis-sim-plan/app/index.html
  • 云端入口:https://82.156.24.101:8092/
  • 浏览器验证脚本:web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
  • 按钮流程取证脚本:qa/web-rtcp-5axis-site-test/capture-button-control-evidence.mjs
  • 按钮流程 JSONqa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json
  • 按钮流程 PDFqa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf
  • 按钮流程截图目录:qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/
  • 云端按钮流程 JSONqa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.json
  • 云端按钮流程 PDFqa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.pdf
  • 云端按钮流程截图目录:qa/web-rtcp-5axis-site-test/screenshots/cloud-button-control-evidence/
  • Native 对照 JSONqa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json
  • Native 对照 Markdownqa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md

文件证据

实现文件:

  • 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/capture-native-task-hal-comparison.mjs

过程日志:

  • web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md

验收结论

本轮功能已通过 WASM、Node、browser 三层验证。按钮行为已从单纯 UI 操作提升为 LinuxCNC task/HAL 状态驱动的控制流程。