1985 lines
105 KiB
Markdown
1985 lines
105 KiB
Markdown
# working7 全量功能实际执行验证报告
|
||
|
||
生成时间:2026-06-28T00:28:38.507Z
|
||
job_id:w7full-20260628002838-518bf522
|
||
report_id:report-w7full-20260628002838-518bf522
|
||
目标页面:http://127.0.0.1:41281/web-rtcp-5axis-sim-plan/app/index.html
|
||
总体结果:PASS
|
||
|
||
## 我验证的范围
|
||
|
||
我在真实 Chromium 页面中逐项点击并验证主界面按钮、右侧全班按钮、程序执行、刀具预览、刀具实时执行路径、G-code 执行过程、机床轴值、倍率、主轴冷却、会话和诊断边界。
|
||
|
||
## 总体验收
|
||
|
||
| 检查项 | 结果 | 证据 |
|
||
| --- | --- | --- |
|
||
| 所有主界面区域存在 | PASS | {"titlebar":true,"preview":true,"dro":true,"gcode":true,"status-sidebar":true,"info-tabs":true,"override":true,"spindle-coolant":true,"bottom-controls":true} |
|
||
| canvas 非空且 WebGL ready | PASS | 01-loaded-inventory:0.7801, 02-initial-run-blocked:0.7801, 03-powered-homed:0.7801, 04-auto-right-panel:0.7801, 05-right-sidebar-all-states:0.7801, 06-profile-xyzbc:0.7802, 07-preview-buttons:0.7887, 08-linuxcnc-source-loaded:0.7893, 09-open-file-loaded:0.7784, 10-run-ready:0.7784, 11-run-realtime-path:0.7789, 12-pause-resume-step:0.7787, 13-stop-idle:0.7787, 14-manual-jog-axis-values:0.7787, 15-mdi-execution:0.7812, 16-overrides-hal:0.7814, 17-spindle-coolant:0.7814, 18-session-fullscreen:0.7814, 19-diagnostics-audit:0.7814 |
|
||
| 按钮库存包含核心 action | PASS | missing= |
|
||
| 核心按钮均执行验证 | PASS | missing= |
|
||
| 未发生页面异常 | PASS | - |
|
||
| 所有 action 断言通过 | PASS | - |
|
||
|
||
## 按钮执行矩阵
|
||
|
||
| action | 我执行的操作 | 结果 | 关键状态变化 |
|
||
| --- | --- | --- | --- |
|
||
| RUN | 未上电直接 RUN 应被门禁拦截 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":false,"estopActive":false,"taskState":"estop-reset","mode":"manual","allHomed":false,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro |
|
||
| mode-auto | 未上电 AUTO 应被门禁拦截 | PASS | {"exists":true,"tagName":"BUTTON","disabled":true,"active":"false","commandReady":"false","ariaDisabled":"true","title":"mode blocked: machine must be on before AUTO","label":"AUTO","iconName":"mode_auto_inactive","iconVariant":"inactive","gmoccapyButtonId":"rbt_auto","nativePanel":"right","nativeButtonIndex":"4","halPin":"gmoccapy.v-button.button-4"} |
|
||
| mode-mdi | 未上电 MDI 应被门禁拦截 | PASS | {"exists":true,"tagName":"BUTTON","disabled":true,"active":"false","commandReady":"false","ariaDisabled":"true","title":"mode blocked: machine must be on before MDI","label":"MDI","iconName":"mode_mdi_inactive","iconVariant":"inactive","gmoccapyButtonId":"rbt_mdi","nativePanel":"right","nativeButtonIndex":"3","halPin":"gmoccapy.v-button.button-3"} |
|
||
| spindle-forward | 未上电主轴正转应被门禁拦截 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":false,"estopActive":false,"taskState":"estop-reset","mode":"manual","allHomed":false,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro" |
|
||
| toggle-mist | 未上电冷却应被门禁拦截 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":false,"estopActive":false,"taskState":"estop-reset","mode":"manual","allHomed":false,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro" |
|
||
| power | POWER 上电 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":false,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":0 |
|
||
| HOME | HOME 回零 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":43,"y":-32.15,"z":-11.306,"a":0,"b":0,"c":0},"dro":{"x":43 |
|
||
| mode-auto | AUTO 模式 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0 |
|
||
| mode-manual | MANUAL 模式 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y" |
|
||
| mode-jog | JOG 入口归入 MANUAL 点动页 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y" |
|
||
| mode-mdi | MDI 模式 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"mdi","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"mdi","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0," |
|
||
| mode-manual | 返回 MANUAL | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":0, |
|
||
| kins-tcp | 右侧 TCP 打开 RTCP | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y" |
|
||
| kins-identity | 右侧 IDENTITY 关闭 RTCP | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y" |
|
||
| estop | E-STOP 急停 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"estopped","activeLine":1,"machine":{"powerOn":false,"estopActive":true,"taskState":"estop","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0 |
|
||
| power | 急停后 POWER 被阻止 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"estopped","activeLine":1,"machine":{"powerOn":false,"estopActive":true,"taskState":"estop","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0 |
|
||
| reset | RESET 清除急停 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":false,"estopActive":false,"taskState":"estop-reset","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y |
|
||
| power | RESET 后重新上电 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":0, |
|
||
| HOME | RESET 后重新回零 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":43,"y":-32.15,"z":-11.306,"a":0,"b":0,"c":0},"dro":{"x":43 |
|
||
| select-profile | 切换到 xyzbc-trt 轮廓 | PASS | {"machineProfile":"xyzbc-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0, |
|
||
| select-profile | 切换到 reference-only gmoccapy-xyzab | PASS | {"machineProfile":"gmoccapy-xyzab","activeProgram":"linuxcnc/nc_files/3D_Chips.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"tcpPose":{"x":0," |
|
||
| kins-tcp | reference-only profile 的 TCP 禁用 | PASS | {"before":{"exists":true,"tagName":"BUTTON","disabled":true,"active":"false","commandReady":null,"ariaDisabled":null,"title":"gmoccapy-xyzab is trivkins reference only","label":"TCP","iconName":null,"iconVariant":null,"gmoccapyButtonId":null,"nativePanel":null,"nativeButtonIndex":null,"halPin":null},"after":{"exists":true,"tagName":"BUTTON","disabled":true,"active":"true","commandReady":null,"ariaDisabled":null,"title":"gmoccapy-xyzab is trivkins reference only","label":"TCP","iconName":null,"ic |
|
||
| select-profile | 切回 xyzac-trt 轮廓 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0, |
|
||
| view-x | 预览 X 视图 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x" |
|
||
| view-y | 预览 Y 视图 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x" |
|
||
| view-z | 预览 Z 视图 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x" |
|
||
| reset-view | 预览 Fit/复位视图 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x" |
|
||
| clear-preview | 清除刀路预览 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0},"dro":{"x" |
|
||
| RELOAD | Reload 恢复预览路径 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":43,"y":-32.15,"z":-11.306,"a":0,"b":0,"c":0 |
|
||
| stage-linuxcnc-sources | Stage LinuxCNC source | PASS | {"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":43,"y":-32.15,"z":-11.306,"a":0,"b":0,"c":0},"dro":{ |
|
||
| select-linuxcnc-gcode-source | 选择第一个 LinuxCNC 5-axis G-code source | PASS | {"sourceRel":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","state":{"machineProfile":"xyzac-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc","programSource":"linuxcnc-vendored-5axis-gcode","programExecutionSourceMode":"linuxcnc-interpreter-wasm","runState":"idle","activeLine":9,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiComman |
|
||
| OPEN | Open 上传本地 G-code fixture | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"idle","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":43,"y":-32.15,"z":-11.306,"a":0,"b":0,"c":0},"dro":{"x":43,"y":-32.15,"z":-11.306,"a":0,"b":0,"c":0},"tcpPose":{"x":43,"y": |
|
||
| RUN_READY | Run Ready 一键准备 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-interpreter-wasm","runState":"idle","activeLine":3,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":5,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":5,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":5,"a":0,"b":0,"c":0},"kinsType": |
|
||
| RUN | RUN 执行程序 | PASS | {"state":{"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"running","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"reading","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":3.67183,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":3.67183,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":3 |
|
||
| PAUSE | PAUSE 暂停 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"paused","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"paused","taskPaused":true,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":2.34366,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":2.34366,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":2.34366,"a":0 |
|
||
| RESUME | RESUME 继续 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"running","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"reading","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":2.31046,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":2.31046,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":2.31046,"a |
|
||
| PAUSE | STEP 前暂停 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"paused","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"paused","taskPaused":true,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":1.97842,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.97842,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.97842,"a":0 |
|
||
| STEP | STEP 单步 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"paused","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"paused","taskPaused":true,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":1.97842,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.97842,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.9 |
|
||
| STOP | STOP 停止 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"auto","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a":0 |
|
||
| mode-manual | 切到 MANUAL 准备点动 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a" |
|
||
| JOG_X_NEG | JOG_X_NEG 点动 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1 |
|
||
| JOG_X_POS | JOG_X_POS 点动 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":-1,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":-1,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":-1,"y":0,"z |
|
||
| JOG_Y_NEG | JOG_Y_NEG 点动 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1 |
|
||
| JOG_Y_POS | JOG_Y_POS 点动 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":-1,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":-1,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":-1,"z |
|
||
| mode-mdi | 切到 MDI | PASS | {"machineProfile":"xyzac-trt","activeProgram":"test-program.ngc","programSource":"operator-file","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"mdi","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G0 X0 Y0 Z0"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a":0, |
|
||
| mdi-submit | MDI 输入并执行 G90 X12.5 Y-4 Z1.25 F900 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"operator-mdi","runState":"mdi","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"mdi","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"dro":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"tcpPose":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"kinsT |
|
||
| mdi-history | MDI 历史快捷按钮 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"operator-mdi","runState":"mdi","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"mdi","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"dro":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"tcpPose":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"kinsT |
|
||
| MDI_RUN | 底部 MDI_RUN 执行当前 MDI | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"operator-mdi","runState":"mdi","activeLine":1,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"mdi","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"dro":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"tcpPose":{"x":12.5,"y":-4,"z":1.25,"a":0,"b":0,"c":0},"kinsT |
|
||
| mode-manual | 返回 MANUAL 准备倍率 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| rapid-override-down | Rapid - | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| rapid-override-up | Rapid + | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| rapid-override-reset | Rapid 100 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| feed-override-up | Feed + | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| feed-override-down | Feed - | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| feed-override-reset | Feed 100 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| spindle-override-up | Spindle + | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| spindle-override-down | Spindle - | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| spindle-override-reset | Spindle 100 | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| ignore-limits | Limits | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| block-delete | / Block | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| optional-stop | M1 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| spindle-forward | 主轴 FWD | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| spindle-reverse | 主轴 REV | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| spindle-stop | 主轴 STOP | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| toggle-flood | Flood | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| toggle-mist | Mist | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| SAVE_SESSION | Save Session | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| select-profile | 会话恢复前临时切换 profile | PASS | {"machineProfile":"xyzbc-trt","activeProgram":"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0," |
|
||
| RESTORE_SESSION | Restore Session | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| FULL | Full 全屏状态切换 | PASS | {"before":{"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1. |
|
||
| AUDIT_FULL_BOUNDARY | Audit Full Boundary | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| GMOCAPY_HAL_PIN ignore-limits | 公开 API 写入 gmoccapy HAL pin | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
| GMOCAPY_NATIVE_PAGE file | 公开 API 切换 gmoccapy native file page | PASS | {"machineProfile":"xyzac-trt","activeProgram":"MDI","programSource":"operator-mdi","programExecutionSourceMode":"linuxcnc-task-motion-hal-wasm","runState":"stopped","activeLine":4,"machine":{"powerOn":true,"estopActive":false,"taskState":"on","mode":"manual","allHomed":true,"interpState":"idle","taskPaused":false,"mdiCommand":"G90 X12.5 Y-4 Z1.25 F900"},"axisPose":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"dro":{"x":0,"y":0,"z":1.94521,"a":0,"b":0,"c":0},"tcpPose":{"x":0,"y":0,"z":1.94521,"a": |
|
||
|
||
## 图文证据
|
||
|
||
### 01-loaded-inventory 我打开主界面并记录按钮库存
|
||
|
||
我确认主界面九大区域、所有 data-action 控件、canvas 和运行时 API 已经加载。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": false,
|
||
"estopActive": false,
|
||
"taskState": "estop-reset",
|
||
"mode": "manual",
|
||
"allHomed": false,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 0.0 | cycle 1/10 | sample 10 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "not-saved / - / storage pending / - / -",
|
||
"operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/boat-xyzac.ngc"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 02-initial-run-blocked 我验证未上电 RUN 门禁
|
||
|
||
未上电时 RUN 不会进入执行状态,页面给出 machine must be on 门禁原因。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": false,
|
||
"estopActive": false,
|
||
"taskState": "estop-reset",
|
||
"mode": "manual",
|
||
"allHomed": false,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 0.0 | cycle 1/10 | sample 10 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "not-saved / - / storage pending / - / -",
|
||
"operatorMessage": "run blocked: machine must be on"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 03-powered-homed 我完成上电和回零
|
||
|
||
POWER 和 HOME 后,机床处于 on/manual/allHomed 状态,DRO 与轴值保持可读。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 3600.0 | cycle 3/30 | sample 30 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "not-saved / - / storage pending / - / -",
|
||
"operatorMessage": "task/HAL machine homed"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 04-auto-right-panel 我验证右侧 AUTO 按钮
|
||
|
||
右侧 AUTO 变为 active,MANUAL 变为 inactive,power/home 状态未丢失。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "auto",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 3600.0 | cycle 4/40 | sample 40 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "not-saved / - / storage pending / - / -",
|
||
"operatorMessage": "task/HAL mode auto"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 05-right-sidebar-all-states 我验证右侧全班按钮
|
||
|
||
右侧 E-STOP/POWER/RESET/AUTO/MANUAL/JOG/MDI/IDENTITY/TCP 的状态和门禁均已实际点击验证。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 3600.0 | cycle 8/80 | sample 80 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "not-saved / - / storage pending / - / -",
|
||
"operatorMessage": "kinematics identity"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 06-profile-xyzbc 我验证 Profile 下拉切换
|
||
|
||
切换到 xyzbc-trt 后,INI、运动学和机床文件 staging 会重新加载到对应 profile。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzbc-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 3600.0 | cycle 10/100 | sample 100 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "LinuxCNC kinematics xyzbc-trt profile frame refreshed"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 07-preview-buttons 我验证刀具预览按钮和刀路状态
|
||
|
||
X/Y/Z/Fit/Clear/Reload 后,canvas dataset 中的 selectedView、pathPoints、RTCP 状态与 store 同步。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 43,
|
||
"y": -32.15,
|
||
"z": -11.306,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 43,
|
||
"y": -32.15,
|
||
"z": -11.306,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0.043,\"y\":-0.032,\"z\":-0.011}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":43,\"y\":-32.15,\"z\":-11.306,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": ""
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "program reloaded"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 08-linuxcnc-source-loaded 我验证 LinuxCNC G-code 来源选择
|
||
|
||
Stage 和 source 下拉选择后,G-code 面板、程序行、刀路预览和 interpreter canonical motion 均已刷新。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "2",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":-84.019,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "2",
|
||
"threeFeedPathPoints": "0",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "2",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 3600.0 | cycle 1/10 | sample 10 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/boat-xyzac.ngc"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 09-open-file-loaded 我验证 Open 文件按钮
|
||
|
||
通过隐藏 file input 实际上传本地 fixture/test-program.ngc,页面加载为 operator-file 程序。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "auto",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 5,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 5,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "3",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":5,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.005,\"y\":0.005,\"z\":0.002},\"size\":{\"x\":0.01,\"y\":0.01,\"z\":0.006},\"maxSpan\":0.01}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "1",
|
||
"threeFeedPathPoints": "2",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 3,
|
||
"activeRowLine": 3,
|
||
"activeExecution": "ready | F 30.0 | cycle 0/1 | sample 0 | linuxcnc-interpreter-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "test-program.ngc",
|
||
"programSource": "operator-file",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "LinuxCNC interpreter motion events 3"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 10-run-ready 我验证 Run Ready
|
||
|
||
Run Ready 完成 power/home/auto/source/session 前置条件,准备进入 Task/HAL 程序执行。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "idle",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "auto",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 0,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "3",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.005,\"y\":0.005,\"z\":0.002},\"size\":{\"x\":0.01,\"y\":0.01,\"z\":0.006},\"maxSpan\":0.01}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "1",
|
||
"threeFeedPathPoints": "2",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 1,
|
||
"activeRowLine": 1,
|
||
"activeExecution": "idle | F 3600.0 | cycle 4/40 | sample 40 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "test-program.ngc",
|
||
"programSource": "operator-file",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "RUN ready: power on, homed, auto mode"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 11-run-realtime-path 我验证刀具实时执行路径
|
||
|
||
RUN 后 G-code 当前行、DRO、Task/HAL runtime feedback、canvas executedPathPoints 和当前段高亮同步变化。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "running",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "auto",
|
||
"allHomed": true,
|
||
"interpState": "reading",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 2.50968,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 2.50968,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "3",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.003}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":2.51,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.005,\"y\":0.005,\"z\":0.002},\"size\":{\"x\":0.01,\"y\":0.01,\"z\":0.006},\"maxSpan\":0.01}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "1",
|
||
"threeFeedPathPoints": "2",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 4,
|
||
"activeExecution": "running | F 200.0 | cycle 79/790 | sample 790 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "test-program.ngc",
|
||
"programSource": "operator-file",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "task/HAL status tick 14"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 12-pause-resume-step 我验证暂停、继续和单步
|
||
|
||
PAUSE/RESUME/STEP 的状态、interpState、taskPaused 和 Task/HAL singleStepping 均已验证。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "paused",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "auto",
|
||
"allHomed": true,
|
||
"interpState": "paused",
|
||
"taskPaused": true,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "3",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.002}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":1.945,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.005,\"y\":0.005,\"z\":0.002},\"size\":{\"x\":0.01,\"y\":0.01,\"z\":0.006},\"maxSpan\":0.01}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "1",
|
||
"threeFeedPathPoints": "2",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 4,
|
||
"activeExecution": "paused | F 200.0 | cycle 98/980 | sample 980 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "test-program.ngc",
|
||
"programSource": "operator-file",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "task/HAL stepped one cycle"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 13-stop-idle 我验证 STOP 停止
|
||
|
||
STOP 后 interpreter 返回 idle,进给速度清零,Task/HAL status loop 停止。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "stopped",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "auto",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "3",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.002}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":1.945,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.005,\"y\":0.005,\"z\":0.002},\"size\":{\"x\":0.01,\"y\":0.01,\"z\":0.006},\"maxSpan\":0.01}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "1",
|
||
"threeFeedPathPoints": "2",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 4,
|
||
"activeExecution": "stopped | F 200.0 | cycle 99/990 | sample 990 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "test-program.ngc",
|
||
"programSource": "operator-file",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "task/HAL program stopped"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 14-manual-jog-axis-values 我验证手动点动和机床轴值
|
||
|
||
X-/X+/Y-/Y+ 均实际改变对应轴值,DRO 和 axisPose 同步。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "stopped",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G0 X0 Y0 Z0"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "3",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.002}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":1.945,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.005,\"y\":0.005,\"z\":0.002},\"size\":{\"x\":0.01,\"y\":0.01,\"z\":0.006},\"maxSpan\":0.01}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "1",
|
||
"threeFeedPathPoints": "2",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 4,
|
||
"activeExecution": "stopped | F 200.0 | cycle 104/1040 | sample 1040 | linuxcnc-task-motion-hal-wasm"
|
||
},
|
||
"values": {
|
||
"activeProgram": "test-program.ngc",
|
||
"programSource": "operator-file",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "canonical-interpreter-boundary / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "task/HAL jog Y +1"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 15-mdi-execution 我验证 MDI 执行过程
|
||
|
||
MDI 输入、表单提交、历史按钮和底部 MDI_RUN 都执行到 store/runtime,并写入历史。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "stopped",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "mdi",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
|
||
},
|
||
"axisPose": {
|
||
"x": 12.5,
|
||
"y": -4,
|
||
"z": 1.25,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 12.5,
|
||
"y": -4,
|
||
"z": 1.25,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "1",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0.013,\"y\":-0.004,\"z\":0.001}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":12.5,\"y\":-4,\"z\":1.25,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "operator-mdi",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "0",
|
||
"threeFeedPathPoints": "1",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 0,
|
||
"activeExecution": ""
|
||
},
|
||
"values": {
|
||
"activeProgram": "MDI",
|
||
"programSource": "operator-mdi",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "none",
|
||
"taskGates": "jog blocked / home blocked / auto blocked / mdi / pause / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "blocked / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "task/HAL MDI G90 X12.5 Y-4 Z1.25 F900"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 16-overrides-hal 我验证倍率和 HAL 输入
|
||
|
||
Rapid/Feed/Spindle 倍率和 Limits/Block/M1 均通过按钮实际改变状态,并在诊断中显示 last HAL effect。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "stopped",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "1",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.002}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":1.945,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "operator-mdi",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "0",
|
||
"threeFeedPathPoints": "1",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 0,
|
||
"activeExecution": ""
|
||
},
|
||
"values": {
|
||
"activeProgram": "MDI",
|
||
"programSource": "operator-mdi",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "web-control optional stop set from Web control",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "blocked / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "optional stop on"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 17-spindle-coolant 我验证主轴和冷却
|
||
|
||
FWD/REV/STOP、Flood、Mist 均受 power gate 控制并实际更新状态。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "stopped",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "1",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.002}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":1.945,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "operator-mdi",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "0",
|
||
"threeFeedPathPoints": "1",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 0,
|
||
"activeExecution": ""
|
||
},
|
||
"values": {
|
||
"activeProgram": "MDI",
|
||
"programSource": "operator-mdi",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "web-control optional stop set from Web control",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "blocked / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "profile-switched / - / storage pending / - / -",
|
||
"operatorMessage": "mist coolant toggled"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 18-session-fullscreen 我验证会话和 Full 按钮
|
||
|
||
Save/Restore 通过 OPFS 或 fallback 存储恢复 profile/程序/UI 状态,Full 切换 preview.fullscreen。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "stopped",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "1",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.002}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":1.945,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "operator-mdi",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "0",
|
||
"threeFeedPathPoints": "1",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 0,
|
||
"activeExecution": ""
|
||
},
|
||
"values": {
|
||
"activeProgram": "MDI",
|
||
"programSource": "operator-mdi",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "web-control optional stop set from Web control",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "blocked / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active main",
|
||
"session": "restored / opfs / opfs available / opfs_available / web-rtcp-5axis-sim-plan/sessions/gmoccapy-web-session/web-rtcp-5axis-session.json",
|
||
"operatorMessage": "fullscreen preview on"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 19-diagnostics-audit 我验证诊断和 gmoccapy 边界
|
||
|
||
Task policy、INI、Task/HAL、Full boundary、gmoccapy comm/HAL/native page 诊断均可读,HAL pin 模型可实际更新页面状态。
|
||
|
||

|
||
|
||
```json
|
||
{
|
||
"runState": "stopped",
|
||
"machineProfile": "xyzac-trt",
|
||
"machine": {
|
||
"powerOn": true,
|
||
"estopActive": false,
|
||
"taskState": "on",
|
||
"mode": "manual",
|
||
"allHomed": true,
|
||
"interpState": "idle",
|
||
"taskPaused": false,
|
||
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
|
||
},
|
||
"axisPose": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"dro": {
|
||
"x": 0,
|
||
"y": 0,
|
||
"z": 1.94521,
|
||
"a": 0,
|
||
"b": 0,
|
||
"c": 0
|
||
},
|
||
"canvas": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "1",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.002}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":1.945,\"a\":0,\"c\":0}",
|
||
"threeRtcpState": "off",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "operator-mdi",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "0",
|
||
"threeFeedPathPoints": "1",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
||
},
|
||
"gcode": {
|
||
"currentLine": 4,
|
||
"activeRowLine": 0,
|
||
"activeExecution": ""
|
||
},
|
||
"values": {
|
||
"activeProgram": "MDI",
|
||
"programSource": "operator-mdi",
|
||
"rapidOverride": "100 %",
|
||
"feedOverride": "100 %",
|
||
"spindleOverride": "100 %",
|
||
"halLast": "web-control IconFileSelection1 / _BB_LOAD_FILE partial",
|
||
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
||
"taskHal": "task / motion / hal / sync",
|
||
"fullBoundary": "blocked / remap pending / full blocked",
|
||
"gmoccapyComm": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
||
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
||
"nativePageMatrix": "12 native pages / 1 implemented / 4 partial / 5 diagnostic-only / 2 native-only / hard-buttons diagnostic-only / active file-load",
|
||
"session": "restored / opfs / opfs available / opfs_available / web-rtcp-5axis-sim-plan/sessions/gmoccapy-web-session/web-rtcp-5axis-session.json",
|
||
"operatorMessage": "LinuxCNC machine files staged 18"
|
||
}
|
||
}
|
||
```
|
||
|