feat: sync latest run execution updates
This commit is contained in:
@@ -0,0 +1,385 @@
|
||||
{
|
||||
"generatedAt": "2026-06-23T01:38:37.231Z",
|
||||
"url": "http://127.0.0.1:35283/web-rtcp-5axis-sim-plan/app/index.html",
|
||||
"sourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||||
"activeLines": [
|
||||
9,
|
||||
10,
|
||||
12
|
||||
],
|
||||
"historyLines": [
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12
|
||||
],
|
||||
"synced": true,
|
||||
"samples": [
|
||||
{
|
||||
"elapsedMs": 100,
|
||||
"activeLine": 9,
|
||||
"uiLine": 9,
|
||||
"runState": "running",
|
||||
"velocity": 2100,
|
||||
"line": 9,
|
||||
"motionProgramLine": 9,
|
||||
"halProgramLine": 9,
|
||||
"activeLineSource": "motion-status",
|
||||
"activeLineHalSynced": true,
|
||||
"history": [
|
||||
{
|
||||
"line": 9,
|
||||
"motion": 9,
|
||||
"hal": 9,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"elapsedMs": 250,
|
||||
"activeLine": 10,
|
||||
"uiLine": 10,
|
||||
"runState": "running",
|
||||
"velocity": 2100,
|
||||
"line": 10,
|
||||
"motionProgramLine": 10,
|
||||
"halProgramLine": 10,
|
||||
"activeLineSource": "motion-status",
|
||||
"activeLineHalSynced": true,
|
||||
"history": [
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 9,
|
||||
"motion": 9,
|
||||
"hal": 9,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"elapsedMs": 500,
|
||||
"activeLine": 10,
|
||||
"uiLine": 10,
|
||||
"runState": "running",
|
||||
"velocity": 2100,
|
||||
"line": 10,
|
||||
"motionProgramLine": 10,
|
||||
"halProgramLine": 10,
|
||||
"activeLineSource": "motion-status",
|
||||
"activeLineHalSynced": true,
|
||||
"history": [
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 9,
|
||||
"motion": 9,
|
||||
"hal": 9,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"elapsedMs": 1000,
|
||||
"activeLine": 12,
|
||||
"uiLine": 12,
|
||||
"runState": "running",
|
||||
"velocity": 100.0002,
|
||||
"line": 12,
|
||||
"motionProgramLine": 12,
|
||||
"halProgramLine": 12,
|
||||
"activeLineSource": "motion-status",
|
||||
"activeLineHalSynced": true,
|
||||
"history": [
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 11,
|
||||
"motion": 11,
|
||||
"hal": 11,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 9,
|
||||
"motion": 9,
|
||||
"hal": 9,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"elapsedMs": 2000,
|
||||
"activeLine": 12,
|
||||
"uiLine": 12,
|
||||
"runState": "running",
|
||||
"velocity": 100.0002,
|
||||
"line": 12,
|
||||
"motionProgramLine": 12,
|
||||
"halProgramLine": 12,
|
||||
"activeLineSource": "motion-status",
|
||||
"activeLineHalSynced": true,
|
||||
"history": [
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 11,
|
||||
"motion": 11,
|
||||
"hal": 11,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 10,
|
||||
"motion": 10,
|
||||
"hal": 10,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 9,
|
||||
"motion": 9,
|
||||
"hal": 9,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"elapsedMs": 4000,
|
||||
"activeLine": 12,
|
||||
"uiLine": 12,
|
||||
"runState": "running",
|
||||
"velocity": 100.0002,
|
||||
"line": 12,
|
||||
"motionProgramLine": 12,
|
||||
"halProgramLine": 12,
|
||||
"activeLineSource": "motion-status",
|
||||
"activeLineHalSynced": true,
|
||||
"history": [
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
},
|
||||
{
|
||||
"line": 12,
|
||||
"motion": 12,
|
||||
"hal": 12,
|
||||
"source": "motion-status",
|
||||
"synced": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"final": {
|
||||
"runState": "running",
|
||||
"activeLine": 12,
|
||||
"feedbackHistoryLength": 24
|
||||
},
|
||||
"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)"
|
||||
]
|
||||
}
|
||||
267
qa/web-rtcp-5axis-site-test/output/meter-scene-evidence.json
Normal file
267
qa/web-rtcp-5axis-site-test/output/meter-scene-evidence.json
Normal file
@@ -0,0 +1,267 @@
|
||||
{
|
||||
"generatedAt": "2026-06-22T22:09:41.825Z",
|
||||
"targetUrl": "http://127.0.0.1:45757/web-rtcp-5axis-sim-plan/app/index.html",
|
||||
"caseName": "08-meter-scene-desktop-mobile",
|
||||
"summary": "浏览器米尺度 Three.js 证据:desktop/mobile canvas 非空、路径 bounds 为米、预览稳定居中",
|
||||
"status": "PASS",
|
||||
"samples": [
|
||||
{
|
||||
"viewport": {
|
||||
"name": "desktop",
|
||||
"width": 1600,
|
||||
"height": 1200,
|
||||
"deviceScaleFactor": 1
|
||||
},
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/meter-scene-evidence/08-meter-scene-desktop.png",
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 65.18,
|
||||
"nonBlackRatio": 0.8173
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
"engine": "three.js r183",
|
||||
"threeReady": "true",
|
||||
"threeRevision": "183",
|
||||
"threePathPoints": "1498",
|
||||
"threeExecutedPathPoints": "1",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||||
"threeSceneUnits": "m",
|
||||
"threeLinearUnits": "mm",
|
||||
"threeLinearUnitScaleToMeters": "0.001",
|
||||
"threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}",
|
||||
"threeTcpPose": "{\"x\":36.474,\"y\":-22.486,\"z\":-13.749,\"a\":-71.841,\"c\":-35.93}",
|
||||
"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.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}",
|
||||
"threeCurrentSegmentHighlight": "ok",
|
||||
"threeRapidFeedVisualDistinction": "ok",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
"threeRapidPathPoints": "186",
|
||||
"threeFeedPathPoints": "1436",
|
||||
"threeArcPathPoints": "0",
|
||||
"threeCurrentSegmentPoints": "1",
|
||||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||||
},
|
||||
"status": "PASS",
|
||||
"checks": [
|
||||
{
|
||||
"name": "canvas ready",
|
||||
"pass": true,
|
||||
"detail": "threeReady=true"
|
||||
},
|
||||
{
|
||||
"name": "WebGL renderer",
|
||||
"pass": true,
|
||||
"detail": "renderer=webgl"
|
||||
},
|
||||
{
|
||||
"name": "机床参考模型",
|
||||
"pass": true,
|
||||
"detail": "scope=machine-reference-and-toolpath, model=webgl-five-axis-reference"
|
||||
},
|
||||
{
|
||||
"name": "TCP 球标记",
|
||||
"pass": true,
|
||||
"detail": "tcp=sphere, marker=true"
|
||||
},
|
||||
{
|
||||
"name": "刀轴线",
|
||||
"pass": true,
|
||||
"detail": "toolAxisMarker=line"
|
||||
},
|
||||
{
|
||||
"name": "场景对象数量",
|
||||
"pass": true,
|
||||
"detail": "sceneObjects=20"
|
||||
},
|
||||
{
|
||||
"name": "无 G-code 语义生成",
|
||||
"pass": true,
|
||||
"detail": "semanticGuard=ok"
|
||||
},
|
||||
{
|
||||
"name": "刀路预览点",
|
||||
"pass": true,
|
||||
"detail": "pathPoints=1498"
|
||||
},
|
||||
{
|
||||
"name": "执行轨迹点",
|
||||
"pass": true,
|
||||
"detail": "executed=1"
|
||||
},
|
||||
{
|
||||
"name": "scene units are meters",
|
||||
"pass": true,
|
||||
"detail": "sceneUnits=m"
|
||||
},
|
||||
{
|
||||
"name": "linear scale visible",
|
||||
"pass": true,
|
||||
"detail": "scale=0.001"
|
||||
},
|
||||
{
|
||||
"name": "path fit bounds",
|
||||
"pass": true,
|
||||
"detail": "fit=ok"
|
||||
},
|
||||
{
|
||||
"name": "path bounds in meters",
|
||||
"pass": true,
|
||||
"detail": "bounds={\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}"
|
||||
},
|
||||
{
|
||||
"name": "canvas nonblank",
|
||||
"pass": true,
|
||||
"detail": "nonBlack=0.8173"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"viewport": {
|
||||
"name": "mobile",
|
||||
"width": 390,
|
||||
"height": 844,
|
||||
"deviceScaleFactor": 2
|
||||
},
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/meter-scene-evidence/08-meter-scene-mobile.png",
|
||||
"pixelStats": {
|
||||
"width": 1146,
|
||||
"height": 1036,
|
||||
"averageLuminance": 67.87,
|
||||
"nonBlackRatio": 0.838
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
"engine": "three.js r183",
|
||||
"threeReady": "true",
|
||||
"threeRevision": "183",
|
||||
"threePathPoints": "1498",
|
||||
"threeExecutedPathPoints": "1",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||||
"threeSceneUnits": "m",
|
||||
"threeLinearUnits": "mm",
|
||||
"threeLinearUnitScaleToMeters": "0.001",
|
||||
"threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}",
|
||||
"threeTcpPose": "{\"x\":36.474,\"y\":-22.486,\"z\":-13.749,\"a\":-71.841,\"c\":-35.93}",
|
||||
"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.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}",
|
||||
"threeCurrentSegmentHighlight": "ok",
|
||||
"threeRapidFeedVisualDistinction": "ok",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
"threeRapidPathPoints": "186",
|
||||
"threeFeedPathPoints": "1436",
|
||||
"threeArcPathPoints": "0",
|
||||
"threeCurrentSegmentPoints": "1",
|
||||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||||
},
|
||||
"status": "PASS",
|
||||
"checks": [
|
||||
{
|
||||
"name": "canvas ready",
|
||||
"pass": true,
|
||||
"detail": "threeReady=true"
|
||||
},
|
||||
{
|
||||
"name": "WebGL renderer",
|
||||
"pass": true,
|
||||
"detail": "renderer=webgl"
|
||||
},
|
||||
{
|
||||
"name": "机床参考模型",
|
||||
"pass": true,
|
||||
"detail": "scope=machine-reference-and-toolpath, model=webgl-five-axis-reference"
|
||||
},
|
||||
{
|
||||
"name": "TCP 球标记",
|
||||
"pass": true,
|
||||
"detail": "tcp=sphere, marker=true"
|
||||
},
|
||||
{
|
||||
"name": "刀轴线",
|
||||
"pass": true,
|
||||
"detail": "toolAxisMarker=line"
|
||||
},
|
||||
{
|
||||
"name": "场景对象数量",
|
||||
"pass": true,
|
||||
"detail": "sceneObjects=20"
|
||||
},
|
||||
{
|
||||
"name": "无 G-code 语义生成",
|
||||
"pass": true,
|
||||
"detail": "semanticGuard=ok"
|
||||
},
|
||||
{
|
||||
"name": "刀路预览点",
|
||||
"pass": true,
|
||||
"detail": "pathPoints=1498"
|
||||
},
|
||||
{
|
||||
"name": "执行轨迹点",
|
||||
"pass": true,
|
||||
"detail": "executed=1"
|
||||
},
|
||||
{
|
||||
"name": "scene units are meters",
|
||||
"pass": true,
|
||||
"detail": "sceneUnits=m"
|
||||
},
|
||||
{
|
||||
"name": "linear scale visible",
|
||||
"pass": true,
|
||||
"detail": "scale=0.001"
|
||||
},
|
||||
{
|
||||
"name": "path fit bounds",
|
||||
"pass": true,
|
||||
"detail": "fit=ok"
|
||||
},
|
||||
{
|
||||
"name": "path bounds in meters",
|
||||
"pass": true,
|
||||
"detail": "bounds={\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}"
|
||||
},
|
||||
{
|
||||
"name": "canvas nonblank",
|
||||
"pass": true,
|
||||
"detail": "nonBlack=0.838"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"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)"
|
||||
]
|
||||
}
|
||||
5962
qa/web-rtcp-5axis-site-test/output/public-https-run-debug.json
Normal file
5962
qa/web-rtcp-5axis-site-test/output/public-https-run-debug.json
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,565 @@
|
||||
{
|
||||
"generatedAt": "2026-06-22T22:10:40.219Z",
|
||||
"targetUrl": "http://127.0.0.1:45757/web-rtcp-5axis-sim-plan/app/index.html",
|
||||
"caseName": "07-run-preconditions-and-feedback",
|
||||
"summary": "浏览器 RUN 证据:INI/profile/kinematics/task-HAL 同一上下文,taskHalStatusLoop 持续推进,UI 消费 task/HAL/motion feedback",
|
||||
"status": "PASS",
|
||||
"checks": [
|
||||
{
|
||||
"name": "INI ready",
|
||||
"pass": true,
|
||||
"detail": "iniReady=true,true,true,true,true"
|
||||
},
|
||||
{
|
||||
"name": "selected LinuxCNC G-code",
|
||||
"pass": true,
|
||||
"detail": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc"
|
||||
},
|
||||
{
|
||||
"name": "task/HAL session opened selected G-code",
|
||||
"pass": true,
|
||||
"detail": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc"
|
||||
},
|
||||
{
|
||||
"name": "taskHalStatusLoop 新 RUN sequence",
|
||||
"pass": true,
|
||||
"detail": "baselineSequence=1, sequences=2,2,2,2,2"
|
||||
},
|
||||
{
|
||||
"name": "taskHalStatusLoop 本次 RUN tickCount",
|
||||
"pass": true,
|
||||
"detail": "ticks=4,4,4,4,4"
|
||||
},
|
||||
{
|
||||
"name": "programRuntimeFeedbackHistory 本次 RUN 采样",
|
||||
"pass": true,
|
||||
"detail": "history=5,5,5,5,5"
|
||||
},
|
||||
{
|
||||
"name": "feedback sourceMode 来自 task/HAL",
|
||||
"pass": true,
|
||||
"detail": "sourceModes=linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm"
|
||||
},
|
||||
{
|
||||
"name": "无 fixture-line-playback feedback",
|
||||
"pass": true,
|
||||
"detail": "sourceModes=linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm"
|
||||
},
|
||||
{
|
||||
"name": "semantic boundary",
|
||||
"pass": true,
|
||||
"detail": "linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime"
|
||||
},
|
||||
{
|
||||
"name": "activeLine 等于 UI 高亮行",
|
||||
"pass": true,
|
||||
"detail": "active=29/29,29/29,29/29,29/29,29/29"
|
||||
},
|
||||
{
|
||||
"name": "DRO 等于 runtime feedback axisPose",
|
||||
"pass": true,
|
||||
"detail": "droMatchesFeedback=true for all samples"
|
||||
},
|
||||
{
|
||||
"name": "RTCP canvas 与 state 一致",
|
||||
"pass": true,
|
||||
"detail": "off/off,off/off,off/off,off/off,off/off"
|
||||
},
|
||||
{
|
||||
"name": "runtime cycle 可见",
|
||||
"pass": true,
|
||||
"detail": "33/330,33/330,33/330,33/330,33/330"
|
||||
},
|
||||
{
|
||||
"name": "canvas 执行轨迹",
|
||||
"pass": true,
|
||||
"detail": "true/1/ok,true/1/ok,true/1/ok,true/1/ok,true/1/ok"
|
||||
}
|
||||
],
|
||||
"baseline": {
|
||||
"elapsedMs": 0,
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback/07-run-preconditions-and-feedback-0000ms-before-run.png",
|
||||
"canvas": {
|
||||
"threeReady": "true",
|
||||
"rtcpState": "off",
|
||||
"executedPathPoints": 1,
|
||||
"currentSegmentHighlight": "ok",
|
||||
"toolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback"
|
||||
},
|
||||
"state": {
|
||||
"profileId": "xyzac-trt",
|
||||
"iniReady": true,
|
||||
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"coordinates": "XYZAC",
|
||||
"kinematicsModuleId": "xyzac-trt",
|
||||
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"taskHalSessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc",
|
||||
"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": 12,
|
||||
"batchSize": 5,
|
||||
"intervalMs": 25,
|
||||
"taskPeriodNs": 10000000,
|
||||
"servoPeriodNs": 1000000,
|
||||
"lastStatusAt": "2026-06-22T22:10:27.362Z",
|
||||
"lastError": null,
|
||||
"stopReason": "running",
|
||||
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
||||
},
|
||||
"runState": "idle",
|
||||
"activeLine": 1,
|
||||
"activeRowLine": 1,
|
||||
"activeLineMatchesUi": true,
|
||||
"droAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"feedbackAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"droMatchesFeedback": true,
|
||||
"rtcpState": "off",
|
||||
"kinsType": "identity",
|
||||
"feedback": {
|
||||
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"line": 1,
|
||||
"taskCycle": 3,
|
||||
"servoCycle": 30,
|
||||
"velocity": 0,
|
||||
"distanceToGo": 0
|
||||
},
|
||||
"feedbackHistoryLength": 18,
|
||||
"feedbackHistorySourceModes": [
|
||||
"linuxcnc-task-motion-hal-wasm"
|
||||
],
|
||||
"taskHalStatus": {
|
||||
"taskState": "on",
|
||||
"taskMode": "auto",
|
||||
"interpState": "idle",
|
||||
"taskCycle": null,
|
||||
"servoCycle": 30
|
||||
}
|
||||
}
|
||||
},
|
||||
"samples": [
|
||||
{
|
||||
"elapsedMs": 200,
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback/07-run-preconditions-and-feedback-200ms.png",
|
||||
"canvas": {
|
||||
"threeReady": "true",
|
||||
"rtcpState": "off",
|
||||
"executedPathPoints": 1,
|
||||
"currentSegmentHighlight": "ok",
|
||||
"toolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback"
|
||||
},
|
||||
"state": {
|
||||
"profileId": "xyzac-trt",
|
||||
"iniReady": true,
|
||||
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"coordinates": "XYZAC",
|
||||
"kinematicsModuleId": "xyzac-trt",
|
||||
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"taskHalSessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc",
|
||||
"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": 4,
|
||||
"batchSize": 5,
|
||||
"intervalMs": 25,
|
||||
"taskPeriodNs": 10000000,
|
||||
"servoPeriodNs": 1000000,
|
||||
"lastStatusAt": "2026-06-22T22:10:35.152Z",
|
||||
"lastError": null,
|
||||
"stopReason": "complete",
|
||||
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
||||
},
|
||||
"runState": "complete",
|
||||
"activeLine": 29,
|
||||
"activeRowLine": 29,
|
||||
"activeLineMatchesUi": true,
|
||||
"droAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"feedbackAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"droMatchesFeedback": true,
|
||||
"rtcpState": "off",
|
||||
"kinsType": "identity",
|
||||
"feedback": {
|
||||
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"line": 29,
|
||||
"taskCycle": 33,
|
||||
"servoCycle": 330,
|
||||
"velocity": 3600,
|
||||
"distanceToGo": 0
|
||||
},
|
||||
"feedbackHistoryLength": 5,
|
||||
"feedbackHistorySourceModes": [
|
||||
"linuxcnc-task-motion-hal-wasm"
|
||||
],
|
||||
"taskHalStatus": {
|
||||
"taskState": "on",
|
||||
"taskMode": "auto",
|
||||
"interpState": "idle",
|
||||
"taskCycle": null,
|
||||
"servoCycle": 330
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"elapsedMs": 500,
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback/07-run-preconditions-and-feedback-500ms.png",
|
||||
"canvas": {
|
||||
"threeReady": "true",
|
||||
"rtcpState": "off",
|
||||
"executedPathPoints": 1,
|
||||
"currentSegmentHighlight": "ok",
|
||||
"toolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback"
|
||||
},
|
||||
"state": {
|
||||
"profileId": "xyzac-trt",
|
||||
"iniReady": true,
|
||||
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"coordinates": "XYZAC",
|
||||
"kinematicsModuleId": "xyzac-trt",
|
||||
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"taskHalSessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc",
|
||||
"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": 4,
|
||||
"batchSize": 5,
|
||||
"intervalMs": 25,
|
||||
"taskPeriodNs": 10000000,
|
||||
"servoPeriodNs": 1000000,
|
||||
"lastStatusAt": "2026-06-22T22:10:35.152Z",
|
||||
"lastError": null,
|
||||
"stopReason": "complete",
|
||||
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
||||
},
|
||||
"runState": "complete",
|
||||
"activeLine": 29,
|
||||
"activeRowLine": 29,
|
||||
"activeLineMatchesUi": true,
|
||||
"droAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"feedbackAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"droMatchesFeedback": true,
|
||||
"rtcpState": "off",
|
||||
"kinsType": "identity",
|
||||
"feedback": {
|
||||
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"line": 29,
|
||||
"taskCycle": 33,
|
||||
"servoCycle": 330,
|
||||
"velocity": 3600,
|
||||
"distanceToGo": 0
|
||||
},
|
||||
"feedbackHistoryLength": 5,
|
||||
"feedbackHistorySourceModes": [
|
||||
"linuxcnc-task-motion-hal-wasm"
|
||||
],
|
||||
"taskHalStatus": {
|
||||
"taskState": "on",
|
||||
"taskMode": "auto",
|
||||
"interpState": "idle",
|
||||
"taskCycle": null,
|
||||
"servoCycle": 330
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"elapsedMs": 1000,
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback/07-run-preconditions-and-feedback-1000ms.png",
|
||||
"canvas": {
|
||||
"threeReady": "true",
|
||||
"rtcpState": "off",
|
||||
"executedPathPoints": 1,
|
||||
"currentSegmentHighlight": "ok",
|
||||
"toolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback"
|
||||
},
|
||||
"state": {
|
||||
"profileId": "xyzac-trt",
|
||||
"iniReady": true,
|
||||
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"coordinates": "XYZAC",
|
||||
"kinematicsModuleId": "xyzac-trt",
|
||||
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"taskHalSessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc",
|
||||
"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": 4,
|
||||
"batchSize": 5,
|
||||
"intervalMs": 25,
|
||||
"taskPeriodNs": 10000000,
|
||||
"servoPeriodNs": 1000000,
|
||||
"lastStatusAt": "2026-06-22T22:10:35.152Z",
|
||||
"lastError": null,
|
||||
"stopReason": "complete",
|
||||
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
||||
},
|
||||
"runState": "complete",
|
||||
"activeLine": 29,
|
||||
"activeRowLine": 29,
|
||||
"activeLineMatchesUi": true,
|
||||
"droAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"feedbackAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"droMatchesFeedback": true,
|
||||
"rtcpState": "off",
|
||||
"kinsType": "identity",
|
||||
"feedback": {
|
||||
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"line": 29,
|
||||
"taskCycle": 33,
|
||||
"servoCycle": 330,
|
||||
"velocity": 3600,
|
||||
"distanceToGo": 0
|
||||
},
|
||||
"feedbackHistoryLength": 5,
|
||||
"feedbackHistorySourceModes": [
|
||||
"linuxcnc-task-motion-hal-wasm"
|
||||
],
|
||||
"taskHalStatus": {
|
||||
"taskState": "on",
|
||||
"taskMode": "auto",
|
||||
"interpState": "idle",
|
||||
"taskCycle": null,
|
||||
"servoCycle": 330
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"elapsedMs": 2000,
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback/07-run-preconditions-and-feedback-2000ms.png",
|
||||
"canvas": {
|
||||
"threeReady": "true",
|
||||
"rtcpState": "off",
|
||||
"executedPathPoints": 1,
|
||||
"currentSegmentHighlight": "ok",
|
||||
"toolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback"
|
||||
},
|
||||
"state": {
|
||||
"profileId": "xyzac-trt",
|
||||
"iniReady": true,
|
||||
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"coordinates": "XYZAC",
|
||||
"kinematicsModuleId": "xyzac-trt",
|
||||
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"taskHalSessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc",
|
||||
"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": 4,
|
||||
"batchSize": 5,
|
||||
"intervalMs": 25,
|
||||
"taskPeriodNs": 10000000,
|
||||
"servoPeriodNs": 1000000,
|
||||
"lastStatusAt": "2026-06-22T22:10:35.152Z",
|
||||
"lastError": null,
|
||||
"stopReason": "complete",
|
||||
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
||||
},
|
||||
"runState": "complete",
|
||||
"activeLine": 29,
|
||||
"activeRowLine": 29,
|
||||
"activeLineMatchesUi": true,
|
||||
"droAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"feedbackAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"droMatchesFeedback": true,
|
||||
"rtcpState": "off",
|
||||
"kinsType": "identity",
|
||||
"feedback": {
|
||||
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"line": 29,
|
||||
"taskCycle": 33,
|
||||
"servoCycle": 330,
|
||||
"velocity": 3600,
|
||||
"distanceToGo": 0
|
||||
},
|
||||
"feedbackHistoryLength": 5,
|
||||
"feedbackHistorySourceModes": [
|
||||
"linuxcnc-task-motion-hal-wasm"
|
||||
],
|
||||
"taskHalStatus": {
|
||||
"taskState": "on",
|
||||
"taskMode": "auto",
|
||||
"interpState": "idle",
|
||||
"taskCycle": null,
|
||||
"servoCycle": 330
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"elapsedMs": 5000,
|
||||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback/07-run-preconditions-and-feedback-5000ms.png",
|
||||
"canvas": {
|
||||
"threeReady": "true",
|
||||
"rtcpState": "off",
|
||||
"executedPathPoints": 1,
|
||||
"currentSegmentHighlight": "ok",
|
||||
"toolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback"
|
||||
},
|
||||
"state": {
|
||||
"profileId": "xyzac-trt",
|
||||
"iniReady": true,
|
||||
"iniPath": "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"coordinates": "XYZAC",
|
||||
"kinematicsModuleId": "xyzac-trt",
|
||||
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"taskHalSessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc",
|
||||
"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": 4,
|
||||
"batchSize": 5,
|
||||
"intervalMs": 25,
|
||||
"taskPeriodNs": 10000000,
|
||||
"servoPeriodNs": 1000000,
|
||||
"lastStatusAt": "2026-06-22T22:10:35.152Z",
|
||||
"lastError": null,
|
||||
"stopReason": "complete",
|
||||
"semanticBoundary": "js_status_polling_loop_for_linuxcnc_task_hal_motion_status"
|
||||
},
|
||||
"runState": "complete",
|
||||
"activeLine": 29,
|
||||
"activeRowLine": 29,
|
||||
"activeLineMatchesUi": true,
|
||||
"droAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"feedbackAxisPose": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0
|
||||
},
|
||||
"droMatchesFeedback": true,
|
||||
"rtcpState": "off",
|
||||
"kinsType": "identity",
|
||||
"feedback": {
|
||||
"sourceMode": "linuxcnc-task-motion-hal-wasm",
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"line": 29,
|
||||
"taskCycle": 33,
|
||||
"servoCycle": 330,
|
||||
"velocity": 3600,
|
||||
"distanceToGo": 0
|
||||
},
|
||||
"feedbackHistoryLength": 5,
|
||||
"feedbackHistorySourceModes": [
|
||||
"linuxcnc-task-motion-hal-wasm"
|
||||
],
|
||||
"taskHalStatus": {
|
||||
"taskState": "on",
|
||||
"taskMode": "auto",
|
||||
"interpState": "idle",
|
||||
"taskCycle": null,
|
||||
"servoCycle": 330
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"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)"
|
||||
]
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"generatedAt": "2026-06-22T13:12:11.146Z",
|
||||
"targetUrl": "http://127.0.0.1:43627/web-rtcp-5axis-sim-plan/app/index.html",
|
||||
"generatedAt": "2026-06-22T22:09:28.057Z",
|
||||
"targetUrl": "http://127.0.0.1:45757/web-rtcp-5axis-sim-plan/app/index.html",
|
||||
"projectPath": "/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/index.html",
|
||||
"chromePath": "/usr/bin/google-chrome",
|
||||
"screenshots": {
|
||||
@@ -9,6 +9,7 @@
|
||||
"03-arc-demo-toolpath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/toolpath-preview-cases/03-arc-demo-toolpath.png",
|
||||
"04-clear-preview-reference": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/toolpath-preview-cases/04-clear-preview-reference.png",
|
||||
"05-vendored-impeller-toolpath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/toolpath-preview-cases/05-vendored-impeller-toolpath.png",
|
||||
"09-g20-g21-mixed-units-preview": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/toolpath-preview-cases/09-g20-g21-mixed-units-preview.png",
|
||||
"06-running-rtcp-toolpath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/toolpath-preview-cases/06-running-rtcp-toolpath.png"
|
||||
},
|
||||
"cases": [
|
||||
@@ -66,8 +67,8 @@
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 62.52,
|
||||
"nonBlackRatio": 0.7491
|
||||
"averageLuminance": 68.18,
|
||||
"nonBlackRatio": 0.8681
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
@@ -77,7 +78,10 @@
|
||||
"threePathPoints": "2",
|
||||
"threeExecutedPathPoints": "1",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.35}",
|
||||
"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",
|
||||
@@ -95,6 +99,7 @@
|
||||
"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",
|
||||
@@ -207,8 +212,8 @@
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 59.4,
|
||||
"nonBlackRatio": 0.7092
|
||||
"averageLuminance": 66.03,
|
||||
"nonBlackRatio": 0.854
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
@@ -218,7 +223,10 @@
|
||||
"threePathPoints": "6",
|
||||
"threeExecutedPathPoints": "1",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.35}",
|
||||
"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",
|
||||
@@ -236,6 +244,7 @@
|
||||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||||
"threePathFitBounds": "ok",
|
||||
"threePathBoundsMeters": "{\"center\":{\"x\":0.005,\"y\":0.005,\"z\":0.002},\"size\":{\"x\":0.01,\"y\":0.01,\"z\":0.005},\"maxSpan\":0.01}",
|
||||
"threeCurrentSegmentHighlight": "ok",
|
||||
"threeRapidFeedVisualDistinction": "ok",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
@@ -346,8 +355,8 @@
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 65.26,
|
||||
"nonBlackRatio": 0.7885
|
||||
"averageLuminance": 67.56,
|
||||
"nonBlackRatio": 0.8687
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
@@ -357,7 +366,10 @@
|
||||
"threePathPoints": "2",
|
||||
"threeExecutedPathPoints": "1",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.35}",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||||
"threeSceneUnits": "m",
|
||||
"threeLinearUnits": "mm",
|
||||
"threeLinearUnitScaleToMeters": "0.001",
|
||||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||||
"threeTcpPose": "{\"x\":1,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||||
"threeRtcpState": "on",
|
||||
@@ -375,6 +387,7 @@
|
||||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||||
"threePathFitBounds": "ok",
|
||||
"threePathBoundsMeters": "{\"center\":{\"x\":0.001,\"y\":0.001,\"z\":0},\"size\":{\"x\":0.001,\"y\":0.001,\"z\":0},\"maxSpan\":0.001}",
|
||||
"threeCurrentSegmentHighlight": "ok",
|
||||
"threeRapidFeedVisualDistinction": "ok",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
@@ -487,8 +500,8 @@
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 64.72,
|
||||
"nonBlackRatio": 0.7874
|
||||
"averageLuminance": 67.78,
|
||||
"nonBlackRatio": 0.8701
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
@@ -498,7 +511,10 @@
|
||||
"threePathPoints": "0",
|
||||
"threeExecutedPathPoints": "0",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.35}",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||||
"threeSceneUnits": "m",
|
||||
"threeLinearUnits": "mm",
|
||||
"threeLinearUnitScaleToMeters": "0.001",
|
||||
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
|
||||
"threeTcpPose": "{\"x\":1,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
|
||||
"threeRtcpState": "on",
|
||||
@@ -516,6 +532,7 @@
|
||||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||||
"threePathFitBounds": "ok",
|
||||
"threePathBoundsMeters": "null",
|
||||
"threeCurrentSegmentHighlight": "pending",
|
||||
"threeRapidFeedVisualDistinction": "pending",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
@@ -643,8 +660,8 @@
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 35.56,
|
||||
"nonBlackRatio": 0.4577
|
||||
"averageLuminance": 65.18,
|
||||
"nonBlackRatio": 0.8173
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
@@ -654,7 +671,10 @@
|
||||
"threePathPoints": "1498",
|
||||
"threeExecutedPathPoints": "1",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0.35}",
|
||||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||||
"threeSceneUnits": "m",
|
||||
"threeLinearUnits": "mm",
|
||||
"threeLinearUnitScaleToMeters": "0.001",
|
||||
"threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}",
|
||||
"threeTcpPose": "{\"x\":36.474,\"y\":-22.486,\"z\":-13.749,\"a\":-71.841,\"c\":-35.93}",
|
||||
"threeRtcpState": "on",
|
||||
@@ -672,6 +692,7 @@
|
||||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||||
"threePathFitBounds": "ok",
|
||||
"threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}",
|
||||
"threeCurrentSegmentHighlight": "ok",
|
||||
"threeRapidFeedVisualDistinction": "ok",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
@@ -726,6 +747,176 @@
|
||||
"programRuntimeFeedbackSource": "linuxcnc-tp-runtime-sample"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "08-meter-scene-desktop-mobile",
|
||||
"summary": "浏览器米尺度 Three.js 证据:desktop/mobile canvas 非空、路径 bounds 为米、预览稳定居中",
|
||||
"status": "PASS",
|
||||
"screenshotDir": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/meter-scene-evidence",
|
||||
"output": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/meter-scene-evidence.json",
|
||||
"sampleCount": 2
|
||||
},
|
||||
{
|
||||
"name": "09-g20-g21-mixed-units-preview",
|
||||
"summary": "G20/G21 混合单位程序:验证 canonical motion 保留 inch/mm,Three.js 统一按米绘制",
|
||||
"status": "PASS",
|
||||
"checks": [
|
||||
{
|
||||
"name": "canvas ready",
|
||||
"pass": true,
|
||||
"detail": "threeReady=true"
|
||||
},
|
||||
{
|
||||
"name": "WebGL renderer",
|
||||
"pass": true,
|
||||
"detail": "renderer=webgl"
|
||||
},
|
||||
{
|
||||
"name": "机床参考模型",
|
||||
"pass": true,
|
||||
"detail": "scope=machine-reference-and-toolpath, model=webgl-five-axis-reference"
|
||||
},
|
||||
{
|
||||
"name": "TCP 球标记",
|
||||
"pass": true,
|
||||
"detail": "tcp=sphere, marker=true"
|
||||
},
|
||||
{
|
||||
"name": "刀轴线",
|
||||
"pass": true,
|
||||
"detail": "toolAxisMarker=line"
|
||||
},
|
||||
{
|
||||
"name": "场景对象数量",
|
||||
"pass": true,
|
||||
"detail": "sceneObjects=20"
|
||||
},
|
||||
{
|
||||
"name": "无 G-code 语义生成",
|
||||
"pass": true,
|
||||
"detail": "semanticGuard=ok"
|
||||
},
|
||||
{
|
||||
"name": "刀路预览点",
|
||||
"pass": true,
|
||||
"detail": "pathPoints=2"
|
||||
},
|
||||
{
|
||||
"name": "执行轨迹点",
|
||||
"pass": true,
|
||||
"detail": "executed=1"
|
||||
},
|
||||
{
|
||||
"name": "G20/G21 motion units",
|
||||
"pass": true,
|
||||
"detail": "units=inch,mm"
|
||||
},
|
||||
{
|
||||
"name": "scene units are meters",
|
||||
"pass": true,
|
||||
"detail": "sceneUnits=m"
|
||||
},
|
||||
{
|
||||
"name": "mixed unit path visible",
|
||||
"pass": true,
|
||||
"detail": "pathPoints=2"
|
||||
},
|
||||
{
|
||||
"name": "1 inch equals 25.4 mm in scene",
|
||||
"pass": true,
|
||||
"detail": "xMeters=0.0254,0.0254"
|
||||
},
|
||||
{
|
||||
"name": "no unit fallback in canonical motion",
|
||||
"pass": true,
|
||||
"detail": "source=linuxcnc-interpreter-wasm"
|
||||
}
|
||||
],
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 64.71,
|
||||
"nonBlackRatio": 0.849
|
||||
},
|
||||
"dataset": {
|
||||
"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\":43,\"y\":-32.15,\"z\":-11.306,\"a\":0,\"c\":0}",
|
||||
"threeRtcpState": "on",
|
||||
"threeSelectedView": "iso",
|
||||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||||
"threeRenderer": "webgl",
|
||||
"threeSceneMode": "program-preview-and-tool-execution",
|
||||
"threePreviewScope": "machine-reference-and-toolpath",
|
||||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||||
"threeCameraControls": "orbit-pan-zoom",
|
||||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||||
"threeToolExecutionMarker": "true",
|
||||
"threeTcpMarker": "sphere",
|
||||
"threeToolAxisMarker": "line",
|
||||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||||
"threePathFitBounds": "ok",
|
||||
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":0.013,\"z\":0},\"size\":{\"x\":0.025,\"y\":0.025,\"z\":0},\"maxSpan\":0.0254}",
|
||||
"threeCurrentSegmentHighlight": "ok",
|
||||
"threeRapidFeedVisualDistinction": "ok",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
"threeRapidPathPoints": "0",
|
||||
"threeFeedPathPoints": "2",
|
||||
"threeArcPathPoints": "0",
|
||||
"threeCurrentSegmentPoints": "1",
|
||||
"threeCurrentSegmentType": "STRAIGHT_FEED"
|
||||
},
|
||||
"state": {
|
||||
"activeProgram": "operator-g20-g21-mixed-units.ngc",
|
||||
"activeLine": 2,
|
||||
"programSource": "operator-file",
|
||||
"programExecutionSourceMode": "linuxcnc-interpreter-wasm",
|
||||
"programExecutionSummary": {
|
||||
"ready": true,
|
||||
"programLineCount": 5,
|
||||
"canonicalEventCount": 22,
|
||||
"motionEventCount": 2,
|
||||
"motionTypes": [
|
||||
"STRAIGHT_FEED"
|
||||
],
|
||||
"finalAxes": {
|
||||
"x": 25.4,
|
||||
"y": 25.4,
|
||||
"z": 0,
|
||||
"a": 0,
|
||||
"b": 0,
|
||||
"c": 0,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0
|
||||
},
|
||||
"switchkinsEventCount": 0,
|
||||
"switchkinsCodes": [],
|
||||
"switchkinsRemapBoundary": null,
|
||||
"remapRuntimeReady": false,
|
||||
"plannerRuntimeReady": true,
|
||||
"plannerSemanticBoundary": "linuxcnc_tp_queue_runtime_timing_from_canonical_motion",
|
||||
"machineFileExecutionReady": false,
|
||||
"fullLinuxCncProgramExecutionReady": false
|
||||
},
|
||||
"runState": "idle",
|
||||
"rtcpState": "on",
|
||||
"kinsType": "tcp-xyzac",
|
||||
"programExecutionMotionIndex": 0,
|
||||
"programExecutionSampleIndex": 0,
|
||||
"programRuntimeFeedbackSource": "linuxcnc-tp-runtime-sample"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "06-running-rtcp-toolpath",
|
||||
"summary": "G-code 运行态:验证 task/HAL runtime feedback 驱动执行轨迹、当前段高亮、TCP 球和刀轴线跟随",
|
||||
@@ -790,8 +981,8 @@
|
||||
"pixelStats": {
|
||||
"width": 803,
|
||||
"height": 874,
|
||||
"averageLuminance": 36.05,
|
||||
"nonBlackRatio": 0.4607
|
||||
"averageLuminance": 65.86,
|
||||
"nonBlackRatio": 0.8173
|
||||
},
|
||||
"dataset": {
|
||||
"fiveAxisCanvas": "true",
|
||||
@@ -801,9 +992,12 @@
|
||||
"threePathPoints": "1498",
|
||||
"threeExecutedPathPoints": "1",
|
||||
"threeSceneObjects": "20",
|
||||
"threeToolhead": "{\"x\":0.26,\"y\":-0.458,\"z\":1.485}",
|
||||
"threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}",
|
||||
"threeTcpPose": "{\"x\":7.417,\"y\":-13.098,\"z\":28.366,\"a\":-71.841,\"c\":-35.93}",
|
||||
"threeToolhead": "{\"x\":-0.023,\"y\":-0.033,\"z\":0.001}",
|
||||
"threeSceneUnits": "m",
|
||||
"threeLinearUnits": "mm",
|
||||
"threeLinearUnitScaleToMeters": "0.001",
|
||||
"threeToolAxis": "{\"x\":0.621,\"y\":0.503,\"z\":0.601}",
|
||||
"threeTcpPose": "{\"x\":-75.066,\"y\":-75.473,\"z\":-49.344,\"a\":-53.043,\"c\":-50.969}",
|
||||
"threeRtcpState": "on",
|
||||
"threeSelectedView": "iso",
|
||||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||||
@@ -819,6 +1013,7 @@
|
||||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||||
"threePathFitBounds": "ok",
|
||||
"threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}",
|
||||
"threeCurrentSegmentHighlight": "ok",
|
||||
"threeRapidFeedVisualDistinction": "ok",
|
||||
"threeNoGcodeSemanticsGeneration": "ok",
|
||||
@@ -830,7 +1025,7 @@
|
||||
},
|
||||
"state": {
|
||||
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc",
|
||||
"activeLine": 5,
|
||||
"activeLine": 65,
|
||||
"programSource": "linuxcnc-vendored-5axis-gcode",
|
||||
"programExecutionSourceMode": "linuxcnc-interpreter-wasm",
|
||||
"programExecutionSummary": {
|
||||
@@ -872,6 +1067,86 @@
|
||||
"programExecutionSampleIndex": 0,
|
||||
"programRuntimeFeedbackSource": "linuxcnc-task-motion-hal-wasm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "07-run-preconditions-and-feedback",
|
||||
"summary": "浏览器 RUN 证据:INI/profile/kinematics/task-HAL 同一上下文,taskHalStatusLoop 持续推进,UI 消费 task/HAL/motion feedback",
|
||||
"status": "PASS",
|
||||
"checks": [
|
||||
{
|
||||
"name": "INI ready",
|
||||
"pass": true,
|
||||
"detail": "iniReady=true,true,true,true,true"
|
||||
},
|
||||
{
|
||||
"name": "selected LinuxCNC G-code",
|
||||
"pass": true,
|
||||
"detail": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc"
|
||||
},
|
||||
{
|
||||
"name": "task/HAL session opened selected G-code",
|
||||
"pass": true,
|
||||
"detail": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/xyzac_switchkins_test_1.ngc"
|
||||
},
|
||||
{
|
||||
"name": "taskHalStatusLoop 新 RUN sequence",
|
||||
"pass": true,
|
||||
"detail": "baselineSequence=1, sequences=2,2,2,2,2"
|
||||
},
|
||||
{
|
||||
"name": "taskHalStatusLoop 本次 RUN tickCount",
|
||||
"pass": true,
|
||||
"detail": "ticks=4,4,4,4,4"
|
||||
},
|
||||
{
|
||||
"name": "programRuntimeFeedbackHistory 本次 RUN 采样",
|
||||
"pass": true,
|
||||
"detail": "history=5,5,5,5,5"
|
||||
},
|
||||
{
|
||||
"name": "feedback sourceMode 来自 task/HAL",
|
||||
"pass": true,
|
||||
"detail": "sourceModes=linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm"
|
||||
},
|
||||
{
|
||||
"name": "无 fixture-line-playback feedback",
|
||||
"pass": true,
|
||||
"detail": "sourceModes=linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm,linuxcnc-task-motion-hal-wasm"
|
||||
},
|
||||
{
|
||||
"name": "semantic boundary",
|
||||
"pass": true,
|
||||
"detail": "linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime,linuxcnc_task_motion_hal_wasm_simulation_runtime"
|
||||
},
|
||||
{
|
||||
"name": "activeLine 等于 UI 高亮行",
|
||||
"pass": true,
|
||||
"detail": "active=29/29,29/29,29/29,29/29,29/29"
|
||||
},
|
||||
{
|
||||
"name": "DRO 等于 runtime feedback axisPose",
|
||||
"pass": true,
|
||||
"detail": "droMatchesFeedback=true for all samples"
|
||||
},
|
||||
{
|
||||
"name": "RTCP canvas 与 state 一致",
|
||||
"pass": true,
|
||||
"detail": "off/off,off/off,off/off,off/off,off/off"
|
||||
},
|
||||
{
|
||||
"name": "runtime cycle 可见",
|
||||
"pass": true,
|
||||
"detail": "33/330,33/330,33/330,33/330,33/330"
|
||||
},
|
||||
{
|
||||
"name": "canvas 执行轨迹",
|
||||
"pass": true,
|
||||
"detail": "true/1/ok,true/1/ok,true/1/ok,true/1/ok,true/1/ok"
|
||||
}
|
||||
],
|
||||
"screenshotDir": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback",
|
||||
"output": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/run-preconditions-feedback.json",
|
||||
"sampleCount": 5
|
||||
}
|
||||
],
|
||||
"consoleErrors": [
|
||||
|
||||
Reference in New Issue
Block a user