2511 lines
80 KiB
JSON
2511 lines
80 KiB
JSON
{
|
|
"jobId": "btn-20260623091525-b35869f1",
|
|
"reportId": "report-btn-20260623091525-b35869f1",
|
|
"evidenceScope": "button-control-evidence",
|
|
"generatedAt": "2026-06-23T09:15:25.426Z",
|
|
"targetUrl": "http://127.0.0.1:41741/web-rtcp-5axis-sim-plan/app/index.html",
|
|
"chromePath": "/usr/bin/google-chrome",
|
|
"screenshotsDir": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence",
|
|
"steps": [
|
|
{
|
|
"name": "01-initial",
|
|
"title": "Initial UI",
|
|
"description": "Browser app loaded before machine preparation.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/01-initial.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.06,
|
|
"nonBlackRatio": 0.7826
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: machine must be on"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "pause blocked: machine must be on"
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: machine must be on"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "step blocked: machine must be on"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: machine must be on"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"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"
|
|
},
|
|
"state": {
|
|
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
|
"runState": "idle",
|
|
"activeLine": 1,
|
|
"machine": {
|
|
"powerOn": false,
|
|
"taskState": "estop-reset",
|
|
"mode": "manual",
|
|
"allHomed": false,
|
|
"interpState": "idle",
|
|
"taskPaused": false
|
|
},
|
|
"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
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 1,
|
|
"taskCycle": 2,
|
|
"currentVelocityMmPerMin": 0,
|
|
"axisPose": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "MANUAL",
|
|
"interpState": "IDLE",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 1,
|
|
"taskCycle": 0,
|
|
"servoCycle": 20
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 0,
|
|
"profileId": null,
|
|
"iniPath": null,
|
|
"kinematicsModuleId": null,
|
|
"tickCount": 0,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": null,
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins.ngc"
|
|
}
|
|
},
|
|
{
|
|
"name": "02-program-loaded",
|
|
"title": "Program loaded",
|
|
"description": "Short operator G-code loaded through LinuxCNC interpreter WASM.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/02-program-loaded.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.06,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: machine must be on"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "pause blocked: machine must be on"
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: machine must be on"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "step blocked: machine must be on"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: machine must be on"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "idle",
|
|
"activeLine": 2,
|
|
"machine": {
|
|
"powerOn": false,
|
|
"taskState": "estop-reset",
|
|
"mode": "auto",
|
|
"allHomed": false,
|
|
"interpState": "idle",
|
|
"taskPaused": false
|
|
},
|
|
"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
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-tp-runtime-sample",
|
|
"line": 3,
|
|
"currentVelocityMmPerMin": 30,
|
|
"axisPose": {
|
|
"x": 0.00025,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "MANUAL",
|
|
"interpState": "IDLE",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 1,
|
|
"taskCycle": 0,
|
|
"servoCycle": 20
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 0,
|
|
"profileId": null,
|
|
"iniPath": null,
|
|
"kinematicsModuleId": null,
|
|
"tickCount": 0,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": null,
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "LinuxCNC interpreter motion events 6"
|
|
}
|
|
},
|
|
{
|
|
"name": "03-before-home",
|
|
"title": "Before HOME",
|
|
"description": "Machine powered on in manual mode before HOME.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/03-before-home.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.24,
|
|
"nonBlackRatio": 0.7794
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: switch to auto mode first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "pause blocked: task mode must be auto or MDI"
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: task mode must be auto or MDI"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "step blocked: switch to auto mode first"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "idle",
|
|
"activeLine": 1,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "manual",
|
|
"allHomed": false,
|
|
"interpState": "idle",
|
|
"taskPaused": false
|
|
},
|
|
"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
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 1,
|
|
"taskCycle": 4,
|
|
"currentVelocityMmPerMin": 0,
|
|
"axisPose": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "MANUAL",
|
|
"interpState": "IDLE",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 1,
|
|
"taskCycle": 0,
|
|
"servoCycle": 40
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 0,
|
|
"profileId": null,
|
|
"iniPath": null,
|
|
"kinematicsModuleId": null,
|
|
"tickCount": 0,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": null,
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL mode manual"
|
|
}
|
|
},
|
|
{
|
|
"name": "04-after-home",
|
|
"title": "After HOME",
|
|
"description": "HOME command preserves allHomed state in Web/task gate.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/04-after-home.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.22,
|
|
"nonBlackRatio": 0.7794
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: switch to auto mode first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "pause blocked: task mode must be auto or MDI"
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: task mode must be auto or MDI"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "step blocked: switch to auto mode first"
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "idle",
|
|
"activeLine": 1,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "manual",
|
|
"allHomed": true,
|
|
"interpState": "idle",
|
|
"taskPaused": false
|
|
},
|
|
"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
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 1,
|
|
"taskCycle": 5,
|
|
"currentVelocityMmPerMin": 3600,
|
|
"axisPose": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "MANUAL",
|
|
"interpState": "IDLE",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 1,
|
|
"taskCycle": 0,
|
|
"servoCycle": 50
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 0,
|
|
"profileId": null,
|
|
"iniPath": null,
|
|
"kinematicsModuleId": null,
|
|
"tickCount": 0,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": null,
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL machine homed"
|
|
}
|
|
},
|
|
{
|
|
"name": "05-ready-for-run",
|
|
"title": "Ready for RUN",
|
|
"description": "POWER, HOME, AUTO, and loaded G-code are ready before RUN.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/05-ready-for-run.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.23,
|
|
"nonBlackRatio": 0.7794
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: interpreter is not paused"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "idle",
|
|
"activeLine": 1,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "idle",
|
|
"taskPaused": false
|
|
},
|
|
"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
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 1,
|
|
"taskCycle": 6,
|
|
"currentVelocityMmPerMin": 3600,
|
|
"axisPose": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "IDLE",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 1,
|
|
"taskCycle": 0,
|
|
"servoCycle": 60
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 0,
|
|
"profileId": null,
|
|
"iniPath": null,
|
|
"kinematicsModuleId": null,
|
|
"tickCount": 0,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": null,
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL mode auto"
|
|
}
|
|
},
|
|
{
|
|
"name": "06-after-run",
|
|
"title": "After RUN",
|
|
"description": "RUN starts task/HAL backed program execution.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/06-after-run.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.19,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: interpreter is not paused"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.001,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":1.199,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "running",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "reading",
|
|
"taskPaused": false
|
|
},
|
|
"axisPose": {
|
|
"x": 0.999201,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 0.999201,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 56,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 0.999201,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "READING",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 560
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": true,
|
|
"sequence": 1,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 9,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:32.003Z",
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL status tick 9"
|
|
}
|
|
},
|
|
{
|
|
"name": "07-before-pause",
|
|
"title": "Before PAUSE",
|
|
"description": "Program is running before PAUSE.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/07-before-pause.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.19,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: interpreter is not paused"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.002,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":1.699,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "running",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "reading",
|
|
"taskPaused": false
|
|
},
|
|
"axisPose": {
|
|
"x": 1.4988,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 1.4988,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 81,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 1.4988,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "READING",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 810
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": true,
|
|
"sequence": 1,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 14,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:32.443Z",
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL status tick 14"
|
|
}
|
|
},
|
|
{
|
|
"name": "08-after-pause",
|
|
"title": "After PAUSE",
|
|
"description": "PAUSE sets runState paused and taskPaused true.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/08-after-pause.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.22,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: resume paused program first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.002,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":1.699,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "paused",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "paused",
|
|
"taskPaused": true
|
|
},
|
|
"axisPose": {
|
|
"x": 1.69864,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 1.69864,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 92,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 1.69864,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "PAUSED",
|
|
"taskPaused": true,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 920
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": true,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 1,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 16,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:32.739Z",
|
|
"lastError": null,
|
|
"stopReason": "paused",
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL program paused"
|
|
}
|
|
},
|
|
{
|
|
"name": "09-before-resume",
|
|
"title": "Before RESUME",
|
|
"description": "Program is paused before RESUME.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/09-before-resume.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.22,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: resume paused program first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.002,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":1.699,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "paused",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "paused",
|
|
"taskPaused": true
|
|
},
|
|
"axisPose": {
|
|
"x": 1.69864,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 1.69864,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 92,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 1.69864,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "PAUSED",
|
|
"taskPaused": true,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 920
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": true,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 1,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 16,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:32.739Z",
|
|
"lastError": null,
|
|
"stopReason": "paused",
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL program paused"
|
|
}
|
|
},
|
|
{
|
|
"name": "10-after-resume",
|
|
"title": "After RESUME",
|
|
"description": "RESUME returns task/HAL execution to running/reading.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/10-after-resume.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.2,
|
|
"nonBlackRatio": 0.7794
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: interpreter is not paused"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.003,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":2.518,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "running",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "reading",
|
|
"taskPaused": false
|
|
},
|
|
"axisPose": {
|
|
"x": 2.41807,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 2.41807,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 128,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 2.41807,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "READING",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 1280
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": true,
|
|
"sequence": 2,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 7,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:34.728Z",
|
|
"lastError": null,
|
|
"stopReason": null,
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL status tick 7"
|
|
}
|
|
},
|
|
{
|
|
"name": "11-before-step",
|
|
"title": "Before STEP",
|
|
"description": "Program is paused before STEP.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/11-before-step.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.22,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: resume paused program first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.003,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":2.618,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "paused",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "paused",
|
|
"taskPaused": true
|
|
},
|
|
"axisPose": {
|
|
"x": 2.61791,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 2.61791,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 139,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 2.61791,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "PAUSED",
|
|
"taskPaused": true,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 1390
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": true,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 2,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 9,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:35.030Z",
|
|
"lastError": null,
|
|
"stopReason": "paused",
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL program paused"
|
|
}
|
|
},
|
|
{
|
|
"name": "12-after-step",
|
|
"title": "After STEP",
|
|
"description": "STEP sends EMC_TASK_PLAN_STEP and leaves task paused with singleStepping true.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/12-after-step.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.23,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: resume paused program first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.003,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":2.638,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "paused",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "paused",
|
|
"taskPaused": true
|
|
},
|
|
"axisPose": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 140,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "PAUSED",
|
|
"taskPaused": true,
|
|
"singleStepping": true
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 1400
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 2,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 9,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:35.030Z",
|
|
"lastError": null,
|
|
"stopReason": "step",
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL stepped one cycle"
|
|
}
|
|
},
|
|
{
|
|
"name": "13-before-stop",
|
|
"title": "Before STOP",
|
|
"description": "Paused single-step state before STOP.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/13-before-stop.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.23,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "run blocked: resume paused program first"
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.003,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":2.638,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "paused",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "paused",
|
|
"taskPaused": true
|
|
},
|
|
"axisPose": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 140,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "PAUSED",
|
|
"taskPaused": true,
|
|
"singleStepping": true
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 1400
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": false
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 2,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 9,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:35.030Z",
|
|
"lastError": null,
|
|
"stopReason": "step",
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL stepped one cycle"
|
|
}
|
|
},
|
|
{
|
|
"name": "14-after-stop",
|
|
"title": "After STOP",
|
|
"description": "STOP aborts task/HAL motion and returns interpreter state to idle.",
|
|
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence/14-after-stop.png",
|
|
"pixelStats": {
|
|
"width": 1500,
|
|
"height": 1050,
|
|
"averageLuminance": 129.22,
|
|
"nonBlackRatio": 0.7795
|
|
},
|
|
"buttons": {
|
|
"RUN": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"STOP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"PAUSE": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"RESUME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "resume blocked: interpreter is not paused"
|
|
},
|
|
"STEP": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "true",
|
|
"ariaDisabled": "false",
|
|
"title": ""
|
|
},
|
|
"HOME": {
|
|
"exists": true,
|
|
"disabled": false,
|
|
"commandReady": "false",
|
|
"ariaDisabled": "true",
|
|
"title": "home blocked: switch to manual mode first"
|
|
}
|
|
},
|
|
"canvasDataset": {
|
|
"fiveAxisCanvas": "true",
|
|
"engine": "three.js r183",
|
|
"threeReady": "true",
|
|
"threeRevision": "183",
|
|
"threePathPoints": "6",
|
|
"threeExecutedPathPoints": "1",
|
|
"threeSceneObjects": "20",
|
|
"threeToolhead": "{\"x\":0.003,\"y\":0,\"z\":0}",
|
|
"threeSceneUnits": "m",
|
|
"threeLinearUnits": "mm",
|
|
"threeLinearUnitScaleToMeters": "0.001",
|
|
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
|
"threeTcpPose": "{\"x\":2.638,\"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.01,\"y\":0.01,\"z\":0.002},\"size\":{\"x\":0.02,\"y\":0.02,\"z\":0.005},\"maxSpan\":0.02}",
|
|
"threeCurrentSegmentHighlight": "ok",
|
|
"threeRapidFeedVisualDistinction": "ok",
|
|
"threeNoGcodeSemanticsGeneration": "ok",
|
|
"threeRapidPathPoints": "2",
|
|
"threeFeedPathPoints": "4",
|
|
"threeArcPathPoints": "0",
|
|
"threeCurrentSegmentPoints": "2",
|
|
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
|
},
|
|
"state": {
|
|
"activeProgram": "button-control-evidence.ngc",
|
|
"runState": "stopped",
|
|
"activeLine": 3,
|
|
"machine": {
|
|
"powerOn": true,
|
|
"taskState": "on",
|
|
"mode": "auto",
|
|
"allHomed": true,
|
|
"interpState": "idle",
|
|
"taskPaused": false
|
|
},
|
|
"axisPose": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"dro": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
},
|
|
"programRuntimeFeedback": {
|
|
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
|
"line": 3,
|
|
"taskCycle": 141,
|
|
"currentVelocityMmPerMin": 120,
|
|
"axisPose": {
|
|
"x": 2.63789,
|
|
"y": 0,
|
|
"z": 0,
|
|
"a": 0,
|
|
"b": 0,
|
|
"c": 0
|
|
}
|
|
},
|
|
"taskHalStatus": {
|
|
"task": {
|
|
"mode": "AUTO",
|
|
"interpState": "IDLE",
|
|
"taskPaused": false,
|
|
"singleStepping": false
|
|
},
|
|
"ui": {
|
|
"activeLine": 3,
|
|
"taskCycle": 0,
|
|
"servoCycle": 1410
|
|
},
|
|
"motionStatus": {
|
|
"motion": {
|
|
"paused": false,
|
|
"aborted": true
|
|
}
|
|
}
|
|
},
|
|
"taskHalStatusLoop": {
|
|
"apiName": "web-rtcp-5axis-task-hal-status-loop",
|
|
"active": false,
|
|
"sequence": 2,
|
|
"profileId": "xyzac-trt",
|
|
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
|
"kinematicsModuleId": "xyzac-trt",
|
|
"tickCount": 9,
|
|
"batchSize": 5,
|
|
"intervalMs": 25,
|
|
"taskPeriodNs": 10000000,
|
|
"servoPeriodNs": 1000000,
|
|
"lastStatusAt": "2026-06-23T09:15:35.030Z",
|
|
"lastError": null,
|
|
"stopReason": "stopped",
|
|
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
|
},
|
|
"operatorMessage": "task/HAL program stopped"
|
|
}
|
|
}
|
|
],
|
|
"checks": [
|
|
{
|
|
"name": "HOME keeps all axes homed",
|
|
"pass": true,
|
|
"detail": "{\"powerOn\":true,\"taskState\":\"on\",\"mode\":\"manual\",\"allHomed\":true,\"interpState\":\"idle\",\"taskPaused\":false}"
|
|
},
|
|
{
|
|
"name": "RUN uses task/HAL runtime feedback",
|
|
"pass": true,
|
|
"detail": "{\"sourceMode\":\"linuxcnc-task-motion-hal-wasm\",\"line\":3,\"taskCycle\":56,\"currentVelocityMmPerMin\":120,\"axisPose\":{\"x\":0.999201,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0}}"
|
|
},
|
|
{
|
|
"name": "PAUSE sets paused state",
|
|
"pass": true,
|
|
"detail": "{\"powerOn\":true,\"taskState\":\"on\",\"mode\":\"auto\",\"allHomed\":true,\"interpState\":\"paused\",\"taskPaused\":true}"
|
|
},
|
|
{
|
|
"name": "RESUME returns to reading",
|
|
"pass": true,
|
|
"detail": "{\"powerOn\":true,\"taskState\":\"on\",\"mode\":\"auto\",\"allHomed\":true,\"interpState\":\"reading\",\"taskPaused\":false}"
|
|
},
|
|
{
|
|
"name": "STEP records single stepping",
|
|
"pass": true,
|
|
"detail": "{\"mode\":\"AUTO\",\"interpState\":\"PAUSED\",\"taskPaused\":true,\"singleStepping\":true}"
|
|
},
|
|
{
|
|
"name": "STOP aborts motion",
|
|
"pass": true,
|
|
"detail": "{\"paused\":false,\"aborted\":true}"
|
|
},
|
|
{
|
|
"name": "Screenshots are nonblank",
|
|
"pass": true,
|
|
"detail": "01-initial:0.7826, 02-program-loaded:0.7795, 03-before-home:0.7794, 04-after-home:0.7794, 05-ready-for-run:0.7794, 06-after-run:0.7795, 07-before-pause:0.7795, 08-after-pause:0.7795, 09-before-resume:0.7795, 10-after-resume:0.7794, 11-before-step:0.7795, 12-after-step:0.7795, 13-before-stop:0.7795, 14-after-stop:0.7795"
|
|
},
|
|
{
|
|
"name": "Control buttons expose readiness attributes",
|
|
"pass": true,
|
|
"detail": "RUN/STOP/PAUSE/RESUME/STEP/HOME"
|
|
}
|
|
],
|
|
"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)"
|
|
],
|
|
"pageErrors": [],
|
|
"status": "PASS",
|
|
"jsonPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json",
|
|
"pdfPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf"
|
|
}
|