1239 lines
46 KiB
JSON
1239 lines
46 KiB
JSON
{
|
|
"jobId": "xyzab-20260626214346-f4b4aa36",
|
|
"reportId": "report-xyzab-20260626214346-f4b4aa36",
|
|
"evidenceScope": "gmoccapy-xyzab-function",
|
|
"generatedAt": "2026-06-26T21:43:46.310Z",
|
|
"targetUrl": "http://127.0.0.1:36983/web-rtcp-5axis-sim-plan/app/index.html",
|
|
"chromePath": "/usr/bin/google-chrome",
|
|
"screenshotsDir": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab",
|
|
"steps": [
|
|
{
|
|
"name": "01-loaded",
|
|
"title": "Initial gmoccapy shell",
|
|
"description": "Default shell loaded with icon registry and diagnostics.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/01-loaded.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 130.04,
|
|
"nonBlackRatio": 0.7823
|
|
},
|
|
"state": {
|
|
"machineProfile": "xyzac-trt",
|
|
"coordinates": "XYZAC",
|
|
"runState": "idle",
|
|
"rtcpState": "on",
|
|
"kinsType": "tcp-xyzac",
|
|
"machine": {
|
|
"powerOn": false,
|
|
"taskState": "estop-reset",
|
|
"mode": "manual",
|
|
"allHomed": false,
|
|
"interpState": "idle"
|
|
},
|
|
"spindle": {
|
|
"enabled": true,
|
|
"direction": "forward",
|
|
"rpm": 1600
|
|
},
|
|
"coolant": {
|
|
"flood": true,
|
|
"mist": false
|
|
},
|
|
"taskPolicy": {
|
|
"canRunAuto": false,
|
|
"canRunAutoStrict": false,
|
|
"iniLoaded": true,
|
|
"machineFileStaged": true,
|
|
"taskHalRuntimeReady": true
|
|
},
|
|
"operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/boat-xyzac.ngc"
|
|
},
|
|
"dom": {
|
|
"buttons": {
|
|
"estop": {
|
|
"exists": true,
|
|
"iconName": "main_switch_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_estop",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Estop the machine / F1"
|
|
},
|
|
"power": {
|
|
"exists": true,
|
|
"iconName": "power_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_on",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Turn the machine on/off / F2"
|
|
},
|
|
"mode-manual": {
|
|
"exists": true,
|
|
"iconName": "mode_manual_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_manual",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Enter manual mode"
|
|
},
|
|
"mode-auto": {
|
|
"exists": true,
|
|
"iconName": "mode_auto_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_auto",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter auto mode"
|
|
},
|
|
"mode-mdi": {
|
|
"exists": true,
|
|
"iconName": "mode_mdi_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_mdi",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter MDI mode"
|
|
},
|
|
"RUN": {
|
|
"exists": true,
|
|
"iconName": "play",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_run",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "run blocked: machine must be on"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"iconName": "stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_stop",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Stop"
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"iconName": "pause",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_pause",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "pause blocked: machine must be on"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"iconName": "ref_all",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_homing",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "home blocked: machine must be on"
|
|
},
|
|
"spindle-forward": {
|
|
"exists": true,
|
|
"iconName": "spindle_right_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_forward",
|
|
"active": "true",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"spindle-stop": {
|
|
"exists": true,
|
|
"iconName": "spindle_stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_stop",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"spindle-reverse": {
|
|
"exists": true,
|
|
"iconName": "spindle_left",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_reverse",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"toggle-flood": {
|
|
"exists": true,
|
|
"iconName": "coolant_flood_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_flood",
|
|
"active": "true",
|
|
"commandReady": "false",
|
|
"title": "coolant blocked: machine must be on"
|
|
},
|
|
"toggle-mist": {
|
|
"exists": true,
|
|
"iconName": "coolant_mist_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_mist",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "coolant blocked: machine must be on"
|
|
},
|
|
"view-x": {
|
|
"exists": true,
|
|
"iconName": "tool_axis_x",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_view_x",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "View X"
|
|
}
|
|
},
|
|
"profileSummary": "XYZAC / 5 joints / 10 tools",
|
|
"iniKins": "xyzac-trt-kins / XYZAC",
|
|
"taskGates": "jog blocked / home blocked / auto blocked / mdi blocked / pause blocked / resume blocked",
|
|
"gmoccapyCommBoundary": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
|
"gmoccapyNativeCommand": "NML command: gmoccapy -> linuxcnc.command() -> NML emcCommand -> milltask",
|
|
"gmoccapyWebPath": "button -> store.dispatch -> linuxcnc-task-policy -> runtime/status snapshot -> UI/Three.js",
|
|
"gmoccapyPostgui": "halcomp.ready before POSTGUI_HALFILE",
|
|
"gmoccapyHalBoundary": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
|
"gmoccapyHalPostgui": "spindle-abs / spindle-at-speed / tooloffset-x / tooloffset-z / tool-change-loop",
|
|
"operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/boat-xyzac.ngc"
|
|
}
|
|
},
|
|
{
|
|
"name": "02-profile-selected",
|
|
"title": "gmoccapy XYZAB selected",
|
|
"description": "Reference profile shows XYZAB/trivkins and disables TCP promotion.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/02-profile-selected.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 130.01,
|
|
"nonBlackRatio": 0.7815
|
|
},
|
|
"state": {
|
|
"machineProfile": "gmoccapy-xyzab",
|
|
"coordinates": "XYZAB",
|
|
"profileTcpCapable": false,
|
|
"profileRtcpProof": false,
|
|
"runState": "idle",
|
|
"rtcpState": "off",
|
|
"kinsType": "identity",
|
|
"machine": {
|
|
"powerOn": false,
|
|
"taskState": "estop-reset",
|
|
"mode": "manual",
|
|
"allHomed": false,
|
|
"interpState": "idle"
|
|
},
|
|
"spindle": {
|
|
"enabled": true,
|
|
"direction": "forward",
|
|
"rpm": 1600
|
|
},
|
|
"coolant": {
|
|
"flood": true,
|
|
"mist": false
|
|
},
|
|
"taskPolicy": {
|
|
"canRunAuto": false,
|
|
"canRunAutoStrict": false,
|
|
"iniLoaded": false,
|
|
"machineFileStaged": false,
|
|
"taskHalRuntimeReady": true
|
|
},
|
|
"operatorMessage": "frame source fixture-ui-only"
|
|
},
|
|
"dom": {
|
|
"buttons": {
|
|
"estop": {
|
|
"exists": true,
|
|
"iconName": "main_switch_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_estop",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Estop the machine / F1"
|
|
},
|
|
"power": {
|
|
"exists": true,
|
|
"iconName": "power_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_on",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Turn the machine on/off / F2"
|
|
},
|
|
"mode-manual": {
|
|
"exists": true,
|
|
"iconName": "mode_manual_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_manual",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Enter manual mode"
|
|
},
|
|
"mode-auto": {
|
|
"exists": true,
|
|
"iconName": "mode_auto_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_auto",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter auto mode"
|
|
},
|
|
"mode-mdi": {
|
|
"exists": true,
|
|
"iconName": "mode_mdi_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_mdi",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter MDI mode"
|
|
},
|
|
"RUN": {
|
|
"exists": true,
|
|
"iconName": "play",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_run",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "run blocked: machine must be on"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"iconName": "stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_stop",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Stop"
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"iconName": "pause",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_pause",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "pause blocked: machine must be on"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"iconName": "ref_all",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_homing",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "home blocked: machine must be on"
|
|
},
|
|
"spindle-forward": {
|
|
"exists": true,
|
|
"iconName": "spindle_right_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_forward",
|
|
"active": "true",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"spindle-stop": {
|
|
"exists": true,
|
|
"iconName": "spindle_stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_stop",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"spindle-reverse": {
|
|
"exists": true,
|
|
"iconName": "spindle_left",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_reverse",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"toggle-flood": {
|
|
"exists": true,
|
|
"iconName": "coolant_flood_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_flood",
|
|
"active": "true",
|
|
"commandReady": "false",
|
|
"title": "coolant blocked: machine must be on"
|
|
},
|
|
"toggle-mist": {
|
|
"exists": true,
|
|
"iconName": "coolant_mist_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_mist",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "coolant blocked: machine must be on"
|
|
},
|
|
"view-x": {
|
|
"exists": true,
|
|
"iconName": "tool_axis_x",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_view_x",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "View X"
|
|
}
|
|
},
|
|
"profileSummary": "XYZAB / 5 joints / 17 tools",
|
|
"iniKins": "- / -",
|
|
"taskGates": "jog blocked / home blocked / auto blocked / mdi blocked / pause blocked / resume blocked",
|
|
"gmoccapyCommBoundary": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
|
"gmoccapyNativeCommand": "NML command: gmoccapy -> linuxcnc.command() -> NML emcCommand -> milltask",
|
|
"gmoccapyWebPath": "button -> store.dispatch -> linuxcnc-task-policy -> runtime/status snapshot -> UI/Three.js",
|
|
"gmoccapyPostgui": "halcomp.ready before POSTGUI_HALFILE",
|
|
"gmoccapyHalBoundary": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
|
"gmoccapyHalPostgui": "spindle-abs / spindle-at-speed / tooloffset-x / tooloffset-z / tool-change-loop",
|
|
"operatorMessage": "frame source fixture-ui-only"
|
|
}
|
|
},
|
|
{
|
|
"name": "03-run-blocked-power",
|
|
"title": "RUN blocked before power",
|
|
"description": "RUN remains clickable but reports LinuxCNC/gmoccapy gate reason.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/03-run-blocked-power.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 130.01,
|
|
"nonBlackRatio": 0.7815
|
|
},
|
|
"state": {
|
|
"machineProfile": "gmoccapy-xyzab",
|
|
"coordinates": "XYZAB",
|
|
"profileTcpCapable": false,
|
|
"profileRtcpProof": false,
|
|
"runState": "idle",
|
|
"rtcpState": "off",
|
|
"kinsType": "identity",
|
|
"machine": {
|
|
"powerOn": false,
|
|
"taskState": "estop-reset",
|
|
"mode": "manual",
|
|
"allHomed": false,
|
|
"interpState": "idle"
|
|
},
|
|
"spindle": {
|
|
"enabled": true,
|
|
"direction": "forward",
|
|
"rpm": 1600
|
|
},
|
|
"coolant": {
|
|
"flood": true,
|
|
"mist": false
|
|
},
|
|
"taskPolicy": {
|
|
"canRunAuto": false,
|
|
"canRunAutoStrict": false,
|
|
"iniLoaded": false,
|
|
"machineFileStaged": false,
|
|
"taskHalRuntimeReady": true
|
|
},
|
|
"operatorMessage": "run blocked: machine must be on"
|
|
},
|
|
"dom": {
|
|
"buttons": {
|
|
"estop": {
|
|
"exists": true,
|
|
"iconName": "main_switch_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_estop",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Estop the machine / F1"
|
|
},
|
|
"power": {
|
|
"exists": true,
|
|
"iconName": "power_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_on",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Turn the machine on/off / F2"
|
|
},
|
|
"mode-manual": {
|
|
"exists": true,
|
|
"iconName": "mode_manual_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_manual",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Enter manual mode"
|
|
},
|
|
"mode-auto": {
|
|
"exists": true,
|
|
"iconName": "mode_auto_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_auto",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter auto mode"
|
|
},
|
|
"mode-mdi": {
|
|
"exists": true,
|
|
"iconName": "mode_mdi_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_mdi",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter MDI mode"
|
|
},
|
|
"RUN": {
|
|
"exists": true,
|
|
"iconName": "play",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_run",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "run blocked: machine must be on"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"iconName": "stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_stop",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Stop"
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"iconName": "pause",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_pause",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "pause blocked: machine must be on"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"iconName": "ref_all",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_homing",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "home blocked: machine must be on"
|
|
},
|
|
"spindle-forward": {
|
|
"exists": true,
|
|
"iconName": "spindle_right_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_forward",
|
|
"active": "true",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"spindle-stop": {
|
|
"exists": true,
|
|
"iconName": "spindle_stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_stop",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"spindle-reverse": {
|
|
"exists": true,
|
|
"iconName": "spindle_left",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_reverse",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "spindle blocked: machine must be on"
|
|
},
|
|
"toggle-flood": {
|
|
"exists": true,
|
|
"iconName": "coolant_flood_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_flood",
|
|
"active": "true",
|
|
"commandReady": "false",
|
|
"title": "coolant blocked: machine must be on"
|
|
},
|
|
"toggle-mist": {
|
|
"exists": true,
|
|
"iconName": "coolant_mist_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_mist",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "coolant blocked: machine must be on"
|
|
},
|
|
"view-x": {
|
|
"exists": true,
|
|
"iconName": "tool_axis_x",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_view_x",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "View X"
|
|
}
|
|
},
|
|
"profileSummary": "XYZAB / 5 joints / 17 tools",
|
|
"iniKins": "- / -",
|
|
"taskGates": "jog blocked / home blocked / auto blocked / mdi blocked / pause blocked / resume blocked",
|
|
"gmoccapyCommBoundary": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
|
"gmoccapyNativeCommand": "NML command: gmoccapy -> linuxcnc.command() -> NML emcCommand -> milltask",
|
|
"gmoccapyWebPath": "button -> store.dispatch -> linuxcnc-task-policy -> runtime/status snapshot -> UI/Three.js",
|
|
"gmoccapyPostgui": "halcomp.ready before POSTGUI_HALFILE",
|
|
"gmoccapyHalBoundary": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
|
"gmoccapyHalPostgui": "spindle-abs / spindle-at-speed / tooloffset-x / tooloffset-z / tool-change-loop",
|
|
"operatorMessage": "run blocked: machine must be on"
|
|
}
|
|
},
|
|
{
|
|
"name": "04-run-blocked-reference-evidence",
|
|
"title": "RUN blocked by reference evidence",
|
|
"description": "XYZAB passes power/home/auto gates but remains blocked without complete native INI/machine-file/runtime evidence.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/04-run-blocked-reference-evidence.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 130.05,
|
|
"nonBlackRatio": 0.7815
|
|
},
|
|
"state": {
|
|
"machineProfile": "gmoccapy-xyzab",
|
|
"coordinates": "XYZAB",
|
|
"profileTcpCapable": false,
|
|
"profileRtcpProof": false,
|
|
"runState": "idle",
|
|
"rtcpState": "off",
|
|
"kinsType": "identity",
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "idle"
|
|
},
|
|
"spindle": {
|
|
"enabled": true,
|
|
"direction": "forward",
|
|
"rpm": 1600
|
|
},
|
|
"coolant": {
|
|
"flood": true,
|
|
"mist": false
|
|
},
|
|
"taskPolicy": {
|
|
"canRunAuto": true,
|
|
"canRunAutoStrict": false,
|
|
"iniLoaded": false,
|
|
"machineFileStaged": false,
|
|
"taskHalRuntimeReady": true
|
|
},
|
|
"operatorMessage": "run blocked: LinuxCNC INI not loaded"
|
|
},
|
|
"dom": {
|
|
"buttons": {
|
|
"estop": {
|
|
"exists": true,
|
|
"iconName": "main_switch_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_estop",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Estop the machine / F1"
|
|
},
|
|
"power": {
|
|
"exists": true,
|
|
"iconName": "power_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_on",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Turn the machine on/off / F2"
|
|
},
|
|
"mode-manual": {
|
|
"exists": true,
|
|
"iconName": "mode_manual_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_manual",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter manual mode"
|
|
},
|
|
"mode-auto": {
|
|
"exists": true,
|
|
"iconName": "mode_auto_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_auto",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Enter auto mode"
|
|
},
|
|
"mode-mdi": {
|
|
"exists": true,
|
|
"iconName": "mode_mdi_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_mdi",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter MDI mode"
|
|
},
|
|
"RUN": {
|
|
"exists": true,
|
|
"iconName": "play",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_run",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "run blocked: LinuxCNC INI not loaded"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"iconName": "stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_stop",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Stop"
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"iconName": "pause",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_pause",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Pause"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"iconName": "ref_all",
|
|
"iconVariant": "active",
|
|
"buttonId": "btn_homing",
|
|
"active": "true",
|
|
"commandReady": "false",
|
|
"title": "home blocked: switch to manual mode first"
|
|
},
|
|
"spindle-forward": {
|
|
"exists": true,
|
|
"iconName": "spindle_right_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_forward",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Spindle forward"
|
|
},
|
|
"spindle-stop": {
|
|
"exists": true,
|
|
"iconName": "spindle_stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_stop",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Spindle stop"
|
|
},
|
|
"spindle-reverse": {
|
|
"exists": true,
|
|
"iconName": "spindle_left",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_reverse",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Spindle reverse"
|
|
},
|
|
"toggle-flood": {
|
|
"exists": true,
|
|
"iconName": "coolant_flood_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_flood",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Flood coolant"
|
|
},
|
|
"toggle-mist": {
|
|
"exists": true,
|
|
"iconName": "coolant_mist_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_mist",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Mist coolant"
|
|
},
|
|
"view-x": {
|
|
"exists": true,
|
|
"iconName": "tool_axis_x",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_view_x",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "View X"
|
|
}
|
|
},
|
|
"profileSummary": "XYZAB / 5 joints / 17 tools",
|
|
"iniKins": "- / -",
|
|
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume blocked",
|
|
"gmoccapyCommBoundary": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
|
"gmoccapyNativeCommand": "NML command: gmoccapy -> linuxcnc.command() -> NML emcCommand -> milltask",
|
|
"gmoccapyWebPath": "button -> store.dispatch -> linuxcnc-task-policy -> runtime/status snapshot -> UI/Three.js",
|
|
"gmoccapyPostgui": "halcomp.ready before POSTGUI_HALFILE",
|
|
"gmoccapyHalBoundary": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
|
"gmoccapyHalPostgui": "spindle-abs / spindle-at-speed / tooloffset-x / tooloffset-z / tool-change-loop",
|
|
"operatorMessage": "run blocked: LinuxCNC INI not loaded"
|
|
}
|
|
},
|
|
{
|
|
"name": "05-controls-active",
|
|
"title": "Spindle and coolant controls",
|
|
"description": "Spindle/coolant icons update through task policy guarded store actions.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/05-controls-active.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 130.04,
|
|
"nonBlackRatio": 0.7815
|
|
},
|
|
"state": {
|
|
"machineProfile": "gmoccapy-xyzab",
|
|
"coordinates": "XYZAB",
|
|
"profileTcpCapable": false,
|
|
"profileRtcpProof": false,
|
|
"runState": "idle",
|
|
"rtcpState": "off",
|
|
"kinsType": "identity",
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "manual",
|
|
"allHomed": true,
|
|
"interpState": "idle"
|
|
},
|
|
"spindle": {
|
|
"enabled": false,
|
|
"direction": "stop",
|
|
"rpm": 1600
|
|
},
|
|
"coolant": {
|
|
"flood": false,
|
|
"mist": true
|
|
},
|
|
"taskPolicy": {
|
|
"canRunAuto": false,
|
|
"canRunAutoStrict": false,
|
|
"iniLoaded": false,
|
|
"machineFileStaged": false,
|
|
"taskHalRuntimeReady": true
|
|
},
|
|
"operatorMessage": "mist coolant toggled"
|
|
},
|
|
"dom": {
|
|
"buttons": {
|
|
"estop": {
|
|
"exists": true,
|
|
"iconName": "main_switch_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_estop",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Estop the machine / F1"
|
|
},
|
|
"power": {
|
|
"exists": true,
|
|
"iconName": "power_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_on",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Turn the machine on/off / F2"
|
|
},
|
|
"mode-manual": {
|
|
"exists": true,
|
|
"iconName": "mode_manual_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_manual",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Enter manual mode"
|
|
},
|
|
"mode-auto": {
|
|
"exists": true,
|
|
"iconName": "mode_auto_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_auto",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter auto mode"
|
|
},
|
|
"mode-mdi": {
|
|
"exists": true,
|
|
"iconName": "mode_mdi_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_mdi",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter MDI mode"
|
|
},
|
|
"RUN": {
|
|
"exists": true,
|
|
"iconName": "play",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_run",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "run blocked: switch to auto mode first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"iconName": "stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_stop",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Stop"
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"iconName": "pause",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_pause",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "pause blocked: task mode must be auto or MDI"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"iconName": "ref_all",
|
|
"iconVariant": "active",
|
|
"buttonId": "btn_homing",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Home"
|
|
},
|
|
"spindle-forward": {
|
|
"exists": true,
|
|
"iconName": "spindle_right",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_forward",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Spindle forward"
|
|
},
|
|
"spindle-stop": {
|
|
"exists": true,
|
|
"iconName": "spindle_stop_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_stop",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Spindle stop"
|
|
},
|
|
"spindle-reverse": {
|
|
"exists": true,
|
|
"iconName": "spindle_left",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_reverse",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Spindle reverse"
|
|
},
|
|
"toggle-flood": {
|
|
"exists": true,
|
|
"iconName": "coolant_flood_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_flood",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Flood coolant"
|
|
},
|
|
"toggle-mist": {
|
|
"exists": true,
|
|
"iconName": "coolant_mist_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_mist",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Mist coolant"
|
|
},
|
|
"view-x": {
|
|
"exists": true,
|
|
"iconName": "tool_axis_x",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_view_x",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "View X"
|
|
}
|
|
},
|
|
"profileSummary": "XYZAB / 5 joints / 17 tools",
|
|
"iniKins": "- / -",
|
|
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
|
"gmoccapyCommBoundary": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
|
"gmoccapyNativeCommand": "NML command: gmoccapy -> linuxcnc.command() -> NML emcCommand -> milltask",
|
|
"gmoccapyWebPath": "button -> store.dispatch -> linuxcnc-task-policy -> runtime/status snapshot -> UI/Three.js",
|
|
"gmoccapyPostgui": "halcomp.ready before POSTGUI_HALFILE",
|
|
"gmoccapyHalBoundary": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
|
"gmoccapyHalPostgui": "spindle-abs / spindle-at-speed / tooloffset-x / tooloffset-z / tool-change-loop",
|
|
"operatorMessage": "mist coolant toggled"
|
|
}
|
|
},
|
|
{
|
|
"name": "06-hal-diagnostics",
|
|
"title": "HAL and communication diagnostics",
|
|
"description": "Info panel exposes native NML/HAL/postgui references and Web runtime boundary.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/06-hal-diagnostics.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 130.04,
|
|
"nonBlackRatio": 0.7815
|
|
},
|
|
"state": {
|
|
"machineProfile": "gmoccapy-xyzab",
|
|
"coordinates": "XYZAB",
|
|
"profileTcpCapable": false,
|
|
"profileRtcpProof": false,
|
|
"runState": "idle",
|
|
"rtcpState": "off",
|
|
"kinsType": "identity",
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "manual",
|
|
"allHomed": true,
|
|
"interpState": "idle"
|
|
},
|
|
"spindle": {
|
|
"enabled": false,
|
|
"direction": "stop",
|
|
"rpm": 1600
|
|
},
|
|
"coolant": {
|
|
"flood": false,
|
|
"mist": true
|
|
},
|
|
"taskPolicy": {
|
|
"canRunAuto": false,
|
|
"canRunAutoStrict": false,
|
|
"iniLoaded": false,
|
|
"machineFileStaged": false,
|
|
"taskHalRuntimeReady": true
|
|
},
|
|
"operatorMessage": "mist coolant toggled"
|
|
},
|
|
"dom": {
|
|
"buttons": {
|
|
"estop": {
|
|
"exists": true,
|
|
"iconName": "main_switch_off",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_estop",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Estop the machine / F1"
|
|
},
|
|
"power": {
|
|
"exists": true,
|
|
"iconName": "power_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_on",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Turn the machine on/off / F2"
|
|
},
|
|
"mode-manual": {
|
|
"exists": true,
|
|
"iconName": "mode_manual_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_manual",
|
|
"active": "true",
|
|
"commandReady": null,
|
|
"title": "Enter manual mode"
|
|
},
|
|
"mode-auto": {
|
|
"exists": true,
|
|
"iconName": "mode_auto_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_auto",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter auto mode"
|
|
},
|
|
"mode-mdi": {
|
|
"exists": true,
|
|
"iconName": "mode_mdi_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_mdi",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "Enter MDI mode"
|
|
},
|
|
"RUN": {
|
|
"exists": true,
|
|
"iconName": "play",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_run",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "run blocked: switch to auto mode first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"iconName": "stop",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "btn_stop",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Stop"
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"iconName": "pause",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_pause",
|
|
"active": "false",
|
|
"commandReady": "false",
|
|
"title": "pause blocked: task mode must be auto or MDI"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"iconName": "ref_all",
|
|
"iconVariant": "active",
|
|
"buttonId": "btn_homing",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Home"
|
|
},
|
|
"spindle-forward": {
|
|
"exists": true,
|
|
"iconName": "spindle_right",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_forward",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Spindle forward"
|
|
},
|
|
"spindle-stop": {
|
|
"exists": true,
|
|
"iconName": "spindle_stop_on",
|
|
"iconVariant": "active",
|
|
"buttonId": "rbt_stop",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Spindle stop"
|
|
},
|
|
"spindle-reverse": {
|
|
"exists": true,
|
|
"iconName": "spindle_left",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_reverse",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Spindle reverse"
|
|
},
|
|
"toggle-flood": {
|
|
"exists": true,
|
|
"iconName": "coolant_flood_inactive",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "tbtn_flood",
|
|
"active": "false",
|
|
"commandReady": "true",
|
|
"title": "Flood coolant"
|
|
},
|
|
"toggle-mist": {
|
|
"exists": true,
|
|
"iconName": "coolant_mist_active",
|
|
"iconVariant": "active",
|
|
"buttonId": "tbtn_mist",
|
|
"active": "true",
|
|
"commandReady": "true",
|
|
"title": "Mist coolant"
|
|
},
|
|
"view-x": {
|
|
"exists": true,
|
|
"iconName": "tool_axis_x",
|
|
"iconVariant": "inactive",
|
|
"buttonId": "rbt_view_x",
|
|
"active": "false",
|
|
"commandReady": null,
|
|
"title": "View X"
|
|
}
|
|
},
|
|
"profileSummary": "XYZAB / 5 joints / 17 tools",
|
|
"iniKins": "- / -",
|
|
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
|
|
"gmoccapyCommBoundary": "native_gmoccapy_nml_hal_reference_web_store_runtime_mapping",
|
|
"gmoccapyNativeCommand": "NML command: gmoccapy -> linuxcnc.command() -> NML emcCommand -> milltask",
|
|
"gmoccapyWebPath": "button -> store.dispatch -> linuxcnc-task-policy -> runtime/status snapshot -> UI/Three.js",
|
|
"gmoccapyPostgui": "halcomp.ready before POSTGUI_HALFILE",
|
|
"gmoccapyHalBoundary": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
|
|
"gmoccapyHalPostgui": "spindle-abs / spindle-at-speed / tooloffset-x / tooloffset-z / tool-change-loop",
|
|
"operatorMessage": "mist coolant toggled"
|
|
}
|
|
}
|
|
],
|
|
"checks": [
|
|
{
|
|
"name": "XYZAB profile selected",
|
|
"pass": true,
|
|
"detail": "{\"machineProfile\":\"gmoccapy-xyzab\",\"coordinates\":\"XYZAB\",\"profileTcpCapable\":false,\"profileRtcpProof\":false,\"runState\":\"idle\",\"rtcpState\":\"off\",\"kinsType\":\"identity\",\"machine\":{\"powerOn\":false,\"taskState\":\"estop-reset\",\"mode\":\"manual\",\"allHomed\":false,\"interpState\":\"idle\"},\"spindle\":{\"enabled\":true,\"direction\":\"forward\",\"rpm\":1600},\"coolant\":{\"flood\":true,\"mist\":false},\"taskPolicy\":{\"canRunAuto\":false,\"canRunAutoStrict\":false,\"iniLoaded\":false,\"machineFileStaged\":false,\"taskHalRuntimeReady\":true},\"operatorMessage\":\"frame source fixture-ui-only\"}"
|
|
},
|
|
{
|
|
"name": "Reference profile blocks RTCP promotion",
|
|
"pass": true,
|
|
"detail": "{\"machineProfile\":\"gmoccapy-xyzab\",\"coordinates\":\"XYZAB\",\"profileTcpCapable\":false,\"profileRtcpProof\":false,\"runState\":\"idle\",\"rtcpState\":\"off\",\"kinsType\":\"identity\",\"machine\":{\"powerOn\":false,\"taskState\":\"estop-reset\",\"mode\":\"manual\",\"allHomed\":false,\"interpState\":\"idle\"},\"spindle\":{\"enabled\":true,\"direction\":\"forward\",\"rpm\":1600},\"coolant\":{\"flood\":true,\"mist\":false},\"taskPolicy\":{\"canRunAuto\":false,\"canRunAutoStrict\":false,\"iniLoaded\":false,\"machineFileStaged\":false,\"taskHalRuntimeReady\":true},\"operatorMessage\":\"frame source fixture-ui-only\"}"
|
|
},
|
|
{
|
|
"name": "RUN blocked before power",
|
|
"pass": true,
|
|
"detail": "run blocked: machine must be on"
|
|
},
|
|
{
|
|
"name": "RUN blocked by reference evidence",
|
|
"pass": true,
|
|
"detail": "run blocked: LinuxCNC INI not loaded"
|
|
},
|
|
{
|
|
"name": "Core icons rendered",
|
|
"pass": true,
|
|
"detail": "{\"estop\":{\"exists\":true,\"iconName\":\"main_switch_off\",\"iconVariant\":\"inactive\",\"buttonId\":\"tbtn_estop\",\"active\":\"false\",\"commandReady\":null,\"title\":\"Estop the machine / F1\"},\"power\":{\"exists\":true,\"iconName\":\"power_on\",\"iconVariant\":\"active\",\"buttonId\":\"tbtn_on\",\"active\":\"true\",\"commandReady\":null,\"title\":\"Turn the machine on/off / F2\"},\"mode-manual\":{\"exists\":true,\"iconName\":\"mode_manual_active\",\"iconVariant\":\"active\",\"buttonId\":\"rbt_manual\",\"active\":\"true\",\"commandReady\":null,\"title\":\"Enter manual mode\"},\"mode-auto\":{\"exists\":true,\"iconName\":\"mode_auto_inactive\",\"iconVariant\":\"inactive\",\"buttonId\":\"rbt_auto\",\"active\":\"false\",\"commandReady\":null,\"title\":\"Enter auto mode\"},\"mode-mdi\":{\"exists\":true,\"iconName\":\"mode_mdi_inactive\",\"iconVariant\":\"inactive\",\"buttonId\":\"rbt_mdi\",\"active\":\"false\",\"commandReady\":null,\"title\":\"Enter MDI mode\"},\"RUN\":{\"exists\":true,\"iconName\":\"play\",\"iconVariant\":\"inactive\",\"buttonId\":\"btn_run\",\"active\":\"false\",\"commandReady\":\"false\",\"title\":\"run blocked: switch to auto mode first\"},\"STOP\":{\"exists\":true,\"iconName\":\"stop\",\"iconVariant\":\"inactive\",\"buttonId\":\"btn_stop\",\"active\":\"false\",\"commandReady\":\"true\",\"title\":\"Stop\"},\"PAUSE\":{\"exists\":true,\"iconName\":\"pause\",\"iconVariant\":\"inactive\",\"buttonId\":\"tbtn_pause\",\"active\":\"false\",\"commandReady\":\"false\",\"title\":\"pause blocked: task mode must be auto or MDI\"},\"HOME\":{\"exists\":true,\"iconName\":\"ref_all\",\"iconVariant\":\"active\",\"buttonId\":\"btn_homing\",\"active\":\"true\",\"commandReady\":\"true\",\"title\":\"Home\"},\"spindle-forward\":{\"exists\":true,\"iconName\":\"spindle_right\",\"iconVariant\":\"inactive\",\"buttonId\":\"rbt_forward\",\"active\":\"false\",\"commandReady\":\"true\",\"title\":\"Spindle forward\"},\"spindle-stop\":{\"exists\":true,\"iconName\":\"spindle_stop_on\",\"iconVariant\":\"active\",\"buttonId\":\"rbt_stop\",\"active\":\"true\",\"commandReady\":\"true\",\"title\":\"Spindle stop\"},\"spindle-reverse\":{\"exists\":true,\"iconName\":\"spindle_left\",\"iconVariant\":\"inactive\",\"buttonId\":\"rbt_reverse\",\"active\":\"false\",\"commandReady\":\"true\",\"title\":\"Spindle reverse\"},\"toggle-flood\":{\"exists\":true,\"iconName\":\"coolant_flood_inactive\",\"iconVariant\":\"inactive\",\"buttonId\":\"tbtn_flood\",\"active\":\"false\",\"commandReady\":\"true\",\"title\":\"Flood coolant\"},\"toggle-mist\":{\"exists\":true,\"iconName\":\"coolant_mist_active\",\"iconVariant\":\"active\",\"buttonId\":\"tbtn_mist\",\"active\":\"true\",\"commandReady\":\"true\",\"title\":\"Mist coolant\"},\"view-x\":{\"exists\":true,\"iconName\":\"tool_axis_x\",\"iconVariant\":\"inactive\",\"buttonId\":\"rbt_view_x\",\"active\":\"false\",\"commandReady\":null,\"title\":\"View X\"}}"
|
|
},
|
|
{
|
|
"name": "Spindle/coolant state updates",
|
|
"pass": true,
|
|
"detail": "{\"machineProfile\":\"gmoccapy-xyzab\",\"coordinates\":\"XYZAB\",\"profileTcpCapable\":false,\"profileRtcpProof\":false,\"runState\":\"idle\",\"rtcpState\":\"off\",\"kinsType\":\"identity\",\"machine\":{\"powerOn\":true,\"taskState\":\"on\",\"mode\":\"manual\",\"allHomed\":true,\"interpState\":\"idle\"},\"spindle\":{\"enabled\":false,\"direction\":\"stop\",\"rpm\":1600},\"coolant\":{\"flood\":false,\"mist\":true},\"taskPolicy\":{\"canRunAuto\":false,\"canRunAutoStrict\":false,\"iniLoaded\":false,\"machineFileStaged\":false,\"taskHalRuntimeReady\":true},\"operatorMessage\":\"mist coolant toggled\"}"
|
|
},
|
|
{
|
|
"name": "NML command diagnostic",
|
|
"pass": true,
|
|
"detail": "NML command: gmoccapy -> linuxcnc.command() -> NML emcCommand -> milltask"
|
|
},
|
|
{
|
|
"name": "Web runtime diagnostic",
|
|
"pass": true,
|
|
"detail": "button -> store.dispatch -> linuxcnc-task-policy -> runtime/status snapshot -> UI/Three.js"
|
|
},
|
|
{
|
|
"name": "HAL postgui diagnostic",
|
|
"pass": true,
|
|
"detail": "spindle-abs / spindle-at-speed / tooloffset-x / tooloffset-z / tool-change-loop"
|
|
},
|
|
{
|
|
"name": "Screenshots are nonblank",
|
|
"pass": true,
|
|
"detail": "01-loaded:0.7823, 02-profile-selected:0.7815, 03-run-blocked-power:0.7815, 04-run-blocked-reference-evidence:0.7815, 05-controls-active:0.7815, 06-hal-diagnostics:0.7815"
|
|
}
|
|
],
|
|
"consoleErrors": [
|
|
"Failed to load resource: the server responded with a status of 404 (Not Found)",
|
|
"Failed to load resource: the server responded with a status of 404 (Not Found)",
|
|
"Failed to load resource: the server responded with a status of 404 (Not Found)",
|
|
"Failed to load resource: the server responded with a status of 404 (Not Found)",
|
|
"Failed to load resource: the server responded with a status of 404 (Not Found)",
|
|
"Failed to load resource: the server responded with a status of 404 (Not Found)",
|
|
"Failed to load resource: the server responded with a status of 404 (Not Found)"
|
|
],
|
|
"pageErrors": [],
|
|
"status": "PASS",
|
|
"jsonPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json",
|
|
"pdfPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.pdf"
|
|
}
|