提交 xyzbc-trt 界面与验证更新
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"apiName": "xyzbc-trt-native-web-evidence-comparison",
|
||||
"status": "pass",
|
||||
"comparedAt": "2026-07-02T14:28:50.647Z",
|
||||
"comparedAt": "2026-07-02T23:30:52.947Z",
|
||||
"nativePath": "/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/native-xyzbc-trt-evidence.json",
|
||||
"webPath": "/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json",
|
||||
"summary": {
|
||||
"checkCount": 29,
|
||||
"passCount": 29,
|
||||
"checkCount": 31,
|
||||
"passCount": 31,
|
||||
"failCount": 0,
|
||||
"blockers": [],
|
||||
"nativeStatus": "ok",
|
||||
@@ -808,6 +808,536 @@
|
||||
"section": "run-jog-home-controls"
|
||||
}
|
||||
],
|
||||
"axisButtonParity": {
|
||||
"sourceFile": "/home/mes123456/cnc_wams/linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
|
||||
"pyvcpSourceFiles": [
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml",
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal"
|
||||
],
|
||||
"requiredActions": [
|
||||
"estop",
|
||||
"power",
|
||||
"open",
|
||||
"reload",
|
||||
"run-ready",
|
||||
"run",
|
||||
"pause",
|
||||
"resume",
|
||||
"step",
|
||||
"stop",
|
||||
"home-all",
|
||||
"jog-minus",
|
||||
"jog-plus",
|
||||
"touch-off",
|
||||
"tool-touch-off",
|
||||
"spindle-forward",
|
||||
"spindle-stop",
|
||||
"spindle-reverse",
|
||||
"feed-override-down",
|
||||
"feed-override-up",
|
||||
"rapid-override-down",
|
||||
"rapid-override-up",
|
||||
"spindle-override-down",
|
||||
"spindle-override-up",
|
||||
"ignore-limits",
|
||||
"block-delete",
|
||||
"optional-stop",
|
||||
"toggle-flood",
|
||||
"toggle-mist",
|
||||
"mdi-form",
|
||||
"mdi-history",
|
||||
"kins-identity",
|
||||
"kins-tcp",
|
||||
"kins-userk",
|
||||
"clear-preview",
|
||||
"view-x",
|
||||
"view-y",
|
||||
"view-z",
|
||||
"view-p"
|
||||
],
|
||||
"coveredActions": [
|
||||
"open",
|
||||
"reload",
|
||||
"stage",
|
||||
"save-session",
|
||||
"restore-session",
|
||||
"estop",
|
||||
"power",
|
||||
"home-all",
|
||||
"run-ready",
|
||||
"run",
|
||||
"pause",
|
||||
"resume",
|
||||
"step",
|
||||
"stop",
|
||||
"view-z",
|
||||
"view-y",
|
||||
"view-x",
|
||||
"view-p",
|
||||
"clear-preview",
|
||||
"audit",
|
||||
"tab-manual",
|
||||
"tab-mdi",
|
||||
"select-joint",
|
||||
"jog-increment",
|
||||
"jog-minus",
|
||||
"jog-plus",
|
||||
"touch-off",
|
||||
"tool-touch-off",
|
||||
"spindle-reverse",
|
||||
"spindle-stop",
|
||||
"spindle-forward",
|
||||
"feed-override-down",
|
||||
"feed-override-up",
|
||||
"rapid-override-down",
|
||||
"rapid-override-up",
|
||||
"spindle-override-down",
|
||||
"spindle-override-up",
|
||||
"ignore-limits",
|
||||
"block-delete",
|
||||
"optional-stop",
|
||||
"toggle-flood",
|
||||
"toggle-mist",
|
||||
"mdi-form",
|
||||
"mdi-history",
|
||||
"kins-identity",
|
||||
"kins-tcp",
|
||||
"kins-userk"
|
||||
],
|
||||
"missingActions": [],
|
||||
"buttonCount": 61,
|
||||
"sourceReferencedCount": 61,
|
||||
"ready": true
|
||||
},
|
||||
"buttons": [
|
||||
{
|
||||
"id": "menu-open",
|
||||
"action": "open",
|
||||
"sourceSymbol": "commands.open_file",
|
||||
"sourceLines": "axis.py:2243-2262",
|
||||
"expected": "file picker opens without changing runtime state"
|
||||
},
|
||||
{
|
||||
"id": "menu-reload",
|
||||
"action": "reload",
|
||||
"sourceSymbol": "commands.reload_file",
|
||||
"sourceLines": "axis.py:2296-2297",
|
||||
"expected": "program reload resets active playback state"
|
||||
},
|
||||
{
|
||||
"id": "menu-stage",
|
||||
"action": "stage",
|
||||
"sourceSymbol": "web OPFS staging for DISPLAY PROGRAM_PREFIX",
|
||||
"sourceLines": "xyzbc-trt.ini:[DISPLAY] PROGRAM_PREFIX",
|
||||
"expected": "LinuxCNC profile files are staged"
|
||||
},
|
||||
{
|
||||
"id": "menu-save-session",
|
||||
"action": "save-session",
|
||||
"sourceSymbol": "web session persistence",
|
||||
"sourceLines": "five-axis-session.js",
|
||||
"expected": "session snapshot is requested"
|
||||
},
|
||||
{
|
||||
"id": "menu-restore-session",
|
||||
"action": "restore-session",
|
||||
"sourceSymbol": "web session persistence",
|
||||
"sourceLines": "five-axis-session.js",
|
||||
"expected": "session restore is requested"
|
||||
},
|
||||
{
|
||||
"id": "menu-estop",
|
||||
"action": "estop",
|
||||
"sourceSymbol": "commands.estop_clicked",
|
||||
"sourceLines": "axis.py:2223-2229",
|
||||
"expected": "toggle ESTOP/ESTOP_RESET"
|
||||
},
|
||||
{
|
||||
"id": "menu-power",
|
||||
"action": "power",
|
||||
"sourceSymbol": "commands.onoff_clicked",
|
||||
"sourceLines": "axis.py:2231-2241",
|
||||
"expected": "toggle machine ON/OFF after estop reset"
|
||||
},
|
||||
{
|
||||
"id": "menu-home-all",
|
||||
"action": "home-all",
|
||||
"sourceSymbol": "commands.home_all_joints",
|
||||
"sourceLines": "axis.py:2586-2596",
|
||||
"expected": "home all joints in manual mode"
|
||||
},
|
||||
{
|
||||
"id": "menu-run-ready",
|
||||
"action": "run-ready",
|
||||
"sourceSymbol": "AXIS run preconditions",
|
||||
"sourceLines": "axis.py:2308-2320",
|
||||
"expected": "power on, home, auto mode and TCP kins ready"
|
||||
},
|
||||
{
|
||||
"id": "menu-run",
|
||||
"action": "run",
|
||||
"sourceSymbol": "commands.task_run",
|
||||
"sourceLines": "axis.py:2308-2320",
|
||||
"expected": "AUTO_RUN from current start line"
|
||||
},
|
||||
{
|
||||
"id": "menu-pause",
|
||||
"action": "pause",
|
||||
"sourceSymbol": "commands.task_pause",
|
||||
"sourceLines": "axis.py:2329-2333",
|
||||
"expected": "AUTO_PAUSE when running"
|
||||
},
|
||||
{
|
||||
"id": "menu-resume",
|
||||
"action": "resume",
|
||||
"sourceSymbol": "commands.task_resume",
|
||||
"sourceLines": "axis.py:2344-2351",
|
||||
"expected": "AUTO_RESUME when paused"
|
||||
},
|
||||
{
|
||||
"id": "menu-step",
|
||||
"action": "step",
|
||||
"sourceSymbol": "commands.task_step",
|
||||
"sourceLines": "axis.py:2321-2327",
|
||||
"expected": "AUTO_STEP one cycle/segment"
|
||||
},
|
||||
{
|
||||
"id": "menu-stop",
|
||||
"action": "stop",
|
||||
"sourceSymbol": "commands.task_stop",
|
||||
"sourceLines": "axis.py:2365-2372",
|
||||
"expected": "abort current task"
|
||||
},
|
||||
{
|
||||
"id": "menu-view-z",
|
||||
"action": "view-z",
|
||||
"sourceSymbol": "commands.set_view_z",
|
||||
"sourceLines": "axis.py:2208-2215",
|
||||
"expected": "select top Z camera"
|
||||
},
|
||||
{
|
||||
"id": "menu-view-y",
|
||||
"action": "view-y",
|
||||
"sourceSymbol": "commands.set_view_y",
|
||||
"sourceLines": "axis.py:2192-2200",
|
||||
"expected": "select front Y camera"
|
||||
},
|
||||
{
|
||||
"id": "menu-view-x",
|
||||
"action": "view-x",
|
||||
"sourceSymbol": "commands.set_view_x",
|
||||
"sourceLines": "axis.py:2182-2190",
|
||||
"expected": "select side X camera"
|
||||
},
|
||||
{
|
||||
"id": "menu-view-p",
|
||||
"action": "view-p",
|
||||
"sourceSymbol": "commands.set_view_p",
|
||||
"sourceLines": "axis.py:2220-2221",
|
||||
"expected": "select perspective/fit camera"
|
||||
},
|
||||
{
|
||||
"id": "menu-clear-preview",
|
||||
"action": "clear-preview",
|
||||
"sourceSymbol": "commands.clear_live_plot",
|
||||
"sourceLines": "axis.py:2557-2558",
|
||||
"expected": "clear live plot buffer"
|
||||
},
|
||||
{
|
||||
"id": "menu-audit",
|
||||
"action": "audit",
|
||||
"sourceSymbol": "web parity audit",
|
||||
"sourceLines": "collect-web-xyzbc-trt-evidence.mjs",
|
||||
"expected": "request native/Web parity audit"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-estop",
|
||||
"action": "estop",
|
||||
"sourceSymbol": "commands.estop_clicked",
|
||||
"sourceLines": "axis.py:2223-2229",
|
||||
"expected": "toggle ESTOP/ESTOP_RESET"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-power",
|
||||
"action": "power",
|
||||
"sourceSymbol": "commands.onoff_clicked",
|
||||
"sourceLines": "axis.py:2231-2241",
|
||||
"expected": "toggle machine power"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-load",
|
||||
"action": "open",
|
||||
"sourceSymbol": "commands.open_file",
|
||||
"sourceLines": "axis.py:2243-2262",
|
||||
"expected": "open local G-code"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-reload",
|
||||
"action": "reload",
|
||||
"sourceSymbol": "commands.reload_file",
|
||||
"sourceLines": "axis.py:2296-2297",
|
||||
"expected": "reload active program"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-run",
|
||||
"action": "run",
|
||||
"sourceSymbol": "commands.task_run",
|
||||
"sourceLines": "axis.py:2308-2320",
|
||||
"expected": "start AUTO run"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-pause-resume",
|
||||
"action": "pause",
|
||||
"sourceSymbol": "commands.task_pauseresume",
|
||||
"sourceLines": "axis.py:2353-2363",
|
||||
"expected": "pause or resume based on paused state"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-step",
|
||||
"action": "step",
|
||||
"sourceSymbol": "commands.task_step",
|
||||
"sourceLines": "axis.py:2321-2327",
|
||||
"expected": "single step"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-stop",
|
||||
"action": "stop",
|
||||
"sourceSymbol": "commands.task_stop",
|
||||
"sourceLines": "axis.py:2365-2372",
|
||||
"expected": "abort current task"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-view-z",
|
||||
"action": "view-z",
|
||||
"sourceSymbol": "commands.set_view_z",
|
||||
"sourceLines": "axis.py:2208-2215",
|
||||
"expected": "Z view"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-view-y",
|
||||
"action": "view-y",
|
||||
"sourceSymbol": "commands.set_view_y",
|
||||
"sourceLines": "axis.py:2192-2200",
|
||||
"expected": "Y view"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-view-x",
|
||||
"action": "view-x",
|
||||
"sourceSymbol": "commands.set_view_x",
|
||||
"sourceLines": "axis.py:2182-2190",
|
||||
"expected": "X view"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-view-p",
|
||||
"action": "view-p",
|
||||
"sourceSymbol": "commands.set_view_p",
|
||||
"sourceLines": "axis.py:2220-2221",
|
||||
"expected": "perspective view"
|
||||
},
|
||||
{
|
||||
"id": "toolbar-clear-preview",
|
||||
"action": "clear-preview",
|
||||
"sourceSymbol": "commands.clear_live_plot",
|
||||
"sourceLines": "axis.py:2557-2558",
|
||||
"expected": "clear path count"
|
||||
},
|
||||
{
|
||||
"id": "manual-tab",
|
||||
"action": "tab-manual",
|
||||
"sourceSymbol": "commands.ensure_manual",
|
||||
"sourceLines": "axis.py:2520-2531",
|
||||
"expected": "manual mode tab selected"
|
||||
},
|
||||
{
|
||||
"id": "mdi-tab",
|
||||
"action": "tab-mdi",
|
||||
"sourceSymbol": "commands.ensure_mdi",
|
||||
"sourceLines": "axis.py:2533-2540",
|
||||
"expected": "MDI mode tab selected"
|
||||
},
|
||||
{
|
||||
"id": "manual-select-joint",
|
||||
"action": "select-joint",
|
||||
"sourceSymbol": "axis radiobuttons ja_rbutton",
|
||||
"sourceLines": "axis.py:1369-1380",
|
||||
"expected": "active joint/axis selected"
|
||||
},
|
||||
{
|
||||
"id": "manual-jog-increment",
|
||||
"action": "jog-increment",
|
||||
"sourceSymbol": "set_hal_jogincrement",
|
||||
"sourceLines": "axis.py:1507-1515",
|
||||
"expected": "jog increment updates HAL-equivalent state"
|
||||
},
|
||||
{
|
||||
"id": "manual-jog-minus",
|
||||
"action": "jog-minus",
|
||||
"sourceSymbol": "commands.jog_minus",
|
||||
"sourceLines": "axis.py:2573-2577",
|
||||
"expected": "negative jog of active axis/joint"
|
||||
},
|
||||
{
|
||||
"id": "manual-jog-plus",
|
||||
"action": "jog-plus",
|
||||
"sourceSymbol": "commands.jog_plus",
|
||||
"sourceLines": "axis.py:2567-2571",
|
||||
"expected": "positive jog of active axis/joint"
|
||||
},
|
||||
{
|
||||
"id": "manual-touch-off",
|
||||
"action": "touch-off",
|
||||
"sourceSymbol": "commands.touch_off_system",
|
||||
"sourceLines": "axis.py:2631-2650",
|
||||
"expected": "G10 touch off MDI equivalent"
|
||||
},
|
||||
{
|
||||
"id": "manual-tool-touch-off",
|
||||
"action": "tool-touch-off",
|
||||
"sourceSymbol": "commands.touch_off_tool",
|
||||
"sourceLines": "axis.py:2651-2685",
|
||||
"expected": "tool length offset equivalent"
|
||||
},
|
||||
{
|
||||
"id": "manual-spindle-reverse",
|
||||
"action": "spindle-reverse",
|
||||
"sourceSymbol": "spindle CCW control",
|
||||
"sourceLines": "axis.py:1389-1398",
|
||||
"expected": "spindle reverse"
|
||||
},
|
||||
{
|
||||
"id": "manual-spindle-stop",
|
||||
"action": "spindle-stop",
|
||||
"sourceSymbol": "spindle stop control",
|
||||
"sourceLines": "axis.py:1389-1398",
|
||||
"expected": "spindle stop"
|
||||
},
|
||||
{
|
||||
"id": "manual-spindle-forward",
|
||||
"action": "spindle-forward",
|
||||
"sourceSymbol": "spindle CW control",
|
||||
"sourceLines": "axis.py:1389-1398",
|
||||
"expected": "spindle forward"
|
||||
},
|
||||
{
|
||||
"id": "override-feed-down",
|
||||
"action": "feed-override-down",
|
||||
"sourceSymbol": "commands.set_feedrate",
|
||||
"sourceLines": "axis.py:2131-2137",
|
||||
"expected": "feed override down"
|
||||
},
|
||||
{
|
||||
"id": "override-feed-up",
|
||||
"action": "feed-override-up",
|
||||
"sourceSymbol": "commands.set_feedrate",
|
||||
"sourceLines": "axis.py:2131-2137",
|
||||
"expected": "feed override up"
|
||||
},
|
||||
{
|
||||
"id": "override-rapid-down",
|
||||
"action": "rapid-override-down",
|
||||
"sourceSymbol": "commands.set_rapidrate",
|
||||
"sourceLines": "axis.py:2139-2145",
|
||||
"expected": "rapid override down"
|
||||
},
|
||||
{
|
||||
"id": "override-rapid-up",
|
||||
"action": "rapid-override-up",
|
||||
"sourceSymbol": "commands.set_rapidrate",
|
||||
"sourceLines": "axis.py:2139-2145",
|
||||
"expected": "rapid override up"
|
||||
},
|
||||
{
|
||||
"id": "override-spindle-down",
|
||||
"action": "spindle-override-down",
|
||||
"sourceSymbol": "commands.set_spindlerate",
|
||||
"sourceLines": "axis.py:2122-2129",
|
||||
"expected": "spindle override down"
|
||||
},
|
||||
{
|
||||
"id": "override-spindle-up",
|
||||
"action": "spindle-override-up",
|
||||
"sourceSymbol": "commands.set_spindlerate",
|
||||
"sourceLines": "axis.py:2122-2129",
|
||||
"expected": "spindle override up"
|
||||
},
|
||||
{
|
||||
"id": "manual-ignore-limits",
|
||||
"action": "ignore-limits",
|
||||
"sourceSymbol": "commands.toggle_override_limits",
|
||||
"sourceLines": "axis.py:3161",
|
||||
"expected": "limit override checkbox state"
|
||||
},
|
||||
{
|
||||
"id": "manual-block-delete",
|
||||
"action": "block-delete",
|
||||
"sourceSymbol": "commands.toggle_block_delete",
|
||||
"sourceLines": "axis.py:2051-2059",
|
||||
"expected": "block delete state"
|
||||
},
|
||||
{
|
||||
"id": "manual-optional-stop",
|
||||
"action": "optional-stop",
|
||||
"sourceSymbol": "commands.toggle_optional_stop",
|
||||
"sourceLines": "axis.py:2047-2049",
|
||||
"expected": "optional stop state"
|
||||
},
|
||||
{
|
||||
"id": "manual-flood",
|
||||
"action": "toggle-flood",
|
||||
"sourceSymbol": "commands.flood_toggle",
|
||||
"sourceLines": "axis.py:3176",
|
||||
"expected": "flood coolant toggle"
|
||||
},
|
||||
{
|
||||
"id": "manual-mist",
|
||||
"action": "toggle-mist",
|
||||
"sourceSymbol": "commands.mist_toggle",
|
||||
"sourceLines": "axis.py:3175",
|
||||
"expected": "mist coolant toggle"
|
||||
},
|
||||
{
|
||||
"id": "mdi-submit",
|
||||
"action": "mdi-form",
|
||||
"sourceSymbol": "commands.send_mdi",
|
||||
"sourceLines": "axis.py:2413-2417",
|
||||
"expected": "submit MDI command"
|
||||
},
|
||||
{
|
||||
"id": "mdi-history",
|
||||
"action": "mdi-history",
|
||||
"sourceSymbol": "commands.mdi_history_butt_1",
|
||||
"sourceLines": "axis.py:2499-2516",
|
||||
"expected": "run/restore MDI history command"
|
||||
},
|
||||
{
|
||||
"id": "pyvcp-identity",
|
||||
"action": "kins-identity",
|
||||
"sourceSymbol": "pyvcp.type0-button -> halui.mdi-command-00",
|
||||
"sourceLines": "switchkins_postgui.hal",
|
||||
"expected": "M429 sets identity kins"
|
||||
},
|
||||
{
|
||||
"id": "pyvcp-tcp",
|
||||
"action": "kins-tcp",
|
||||
"sourceSymbol": "pyvcp.type1-button -> halui.mdi-command-01",
|
||||
"sourceLines": "switchkins_postgui.hal",
|
||||
"expected": "M428 sets tcp-xyzbc kins"
|
||||
},
|
||||
{
|
||||
"id": "pyvcp-userk",
|
||||
"action": "kins-userk",
|
||||
"sourceSymbol": "pyvcp.type2-button -> halui.mdi-command-02",
|
||||
"sourceLines": "switchkins_postgui.hal",
|
||||
"expected": "M430 sets userk kins"
|
||||
},
|
||||
{
|
||||
"id": "pyvcp-clear",
|
||||
"action": "clear-preview",
|
||||
"sourceSymbol": "pyvcp.vismach-clear -> vismach.plotclear",
|
||||
"sourceLines": "switchkins_postgui.hal",
|
||||
"expected": "clear Vismach plot"
|
||||
}
|
||||
],
|
||||
"capabilities": [
|
||||
{
|
||||
"id": "program",
|
||||
@@ -932,7 +1462,7 @@
|
||||
"ready": true,
|
||||
"evidence": {
|
||||
"samplePeriodMs": 20,
|
||||
"sampleCount": 3074
|
||||
"sampleCount": 3226
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -950,7 +1480,108 @@
|
||||
"canRunAuto": false,
|
||||
"canExecuteMdi": false,
|
||||
"canJog": false,
|
||||
"canHome": false
|
||||
"canHome": false,
|
||||
"axisButtonParity": {
|
||||
"sourceFile": "/home/mes123456/cnc_wams/linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
|
||||
"pyvcpSourceFiles": [
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml",
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal"
|
||||
],
|
||||
"requiredActions": [
|
||||
"estop",
|
||||
"power",
|
||||
"open",
|
||||
"reload",
|
||||
"run-ready",
|
||||
"run",
|
||||
"pause",
|
||||
"resume",
|
||||
"step",
|
||||
"stop",
|
||||
"home-all",
|
||||
"jog-minus",
|
||||
"jog-plus",
|
||||
"touch-off",
|
||||
"tool-touch-off",
|
||||
"spindle-forward",
|
||||
"spindle-stop",
|
||||
"spindle-reverse",
|
||||
"feed-override-down",
|
||||
"feed-override-up",
|
||||
"rapid-override-down",
|
||||
"rapid-override-up",
|
||||
"spindle-override-down",
|
||||
"spindle-override-up",
|
||||
"ignore-limits",
|
||||
"block-delete",
|
||||
"optional-stop",
|
||||
"toggle-flood",
|
||||
"toggle-mist",
|
||||
"mdi-form",
|
||||
"mdi-history",
|
||||
"kins-identity",
|
||||
"kins-tcp",
|
||||
"kins-userk",
|
||||
"clear-preview",
|
||||
"view-x",
|
||||
"view-y",
|
||||
"view-z",
|
||||
"view-p"
|
||||
],
|
||||
"coveredActions": [
|
||||
"open",
|
||||
"reload",
|
||||
"stage",
|
||||
"save-session",
|
||||
"restore-session",
|
||||
"estop",
|
||||
"power",
|
||||
"home-all",
|
||||
"run-ready",
|
||||
"run",
|
||||
"pause",
|
||||
"resume",
|
||||
"step",
|
||||
"stop",
|
||||
"view-z",
|
||||
"view-y",
|
||||
"view-x",
|
||||
"view-p",
|
||||
"clear-preview",
|
||||
"audit",
|
||||
"tab-manual",
|
||||
"tab-mdi",
|
||||
"select-joint",
|
||||
"jog-increment",
|
||||
"jog-minus",
|
||||
"jog-plus",
|
||||
"touch-off",
|
||||
"tool-touch-off",
|
||||
"spindle-reverse",
|
||||
"spindle-stop",
|
||||
"spindle-forward",
|
||||
"feed-override-down",
|
||||
"feed-override-up",
|
||||
"rapid-override-down",
|
||||
"rapid-override-up",
|
||||
"spindle-override-down",
|
||||
"spindle-override-up",
|
||||
"ignore-limits",
|
||||
"block-delete",
|
||||
"optional-stop",
|
||||
"toggle-flood",
|
||||
"toggle-mist",
|
||||
"mdi-form",
|
||||
"mdi-history",
|
||||
"kins-identity",
|
||||
"kins-tcp",
|
||||
"kins-userk"
|
||||
],
|
||||
"missingActions": [],
|
||||
"buttonCount": 61,
|
||||
"sourceReferencedCount": 61,
|
||||
"ready": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -959,6 +1590,114 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "ui",
|
||||
"requirement": "web AXIS/PyVCP buttons are source-referenced and covered by a button-level parity matrix",
|
||||
"status": "pass",
|
||||
"evidence": {
|
||||
"axisButtonParity": {
|
||||
"sourceFile": "/home/mes123456/cnc_wams/linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
|
||||
"pyvcpSourceFiles": [
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml",
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal"
|
||||
],
|
||||
"requiredActions": [
|
||||
"estop",
|
||||
"power",
|
||||
"open",
|
||||
"reload",
|
||||
"run-ready",
|
||||
"run",
|
||||
"pause",
|
||||
"resume",
|
||||
"step",
|
||||
"stop",
|
||||
"home-all",
|
||||
"jog-minus",
|
||||
"jog-plus",
|
||||
"touch-off",
|
||||
"tool-touch-off",
|
||||
"spindle-forward",
|
||||
"spindle-stop",
|
||||
"spindle-reverse",
|
||||
"feed-override-down",
|
||||
"feed-override-up",
|
||||
"rapid-override-down",
|
||||
"rapid-override-up",
|
||||
"spindle-override-down",
|
||||
"spindle-override-up",
|
||||
"ignore-limits",
|
||||
"block-delete",
|
||||
"optional-stop",
|
||||
"toggle-flood",
|
||||
"toggle-mist",
|
||||
"mdi-form",
|
||||
"mdi-history",
|
||||
"kins-identity",
|
||||
"kins-tcp",
|
||||
"kins-userk",
|
||||
"clear-preview",
|
||||
"view-x",
|
||||
"view-y",
|
||||
"view-z",
|
||||
"view-p"
|
||||
],
|
||||
"coveredActions": [
|
||||
"open",
|
||||
"reload",
|
||||
"stage",
|
||||
"save-session",
|
||||
"restore-session",
|
||||
"estop",
|
||||
"power",
|
||||
"home-all",
|
||||
"run-ready",
|
||||
"run",
|
||||
"pause",
|
||||
"resume",
|
||||
"step",
|
||||
"stop",
|
||||
"view-z",
|
||||
"view-y",
|
||||
"view-x",
|
||||
"view-p",
|
||||
"clear-preview",
|
||||
"audit",
|
||||
"tab-manual",
|
||||
"tab-mdi",
|
||||
"select-joint",
|
||||
"jog-increment",
|
||||
"jog-minus",
|
||||
"jog-plus",
|
||||
"touch-off",
|
||||
"tool-touch-off",
|
||||
"spindle-reverse",
|
||||
"spindle-stop",
|
||||
"spindle-forward",
|
||||
"feed-override-down",
|
||||
"feed-override-up",
|
||||
"rapid-override-down",
|
||||
"rapid-override-up",
|
||||
"spindle-override-down",
|
||||
"spindle-override-up",
|
||||
"ignore-limits",
|
||||
"block-delete",
|
||||
"optional-stop",
|
||||
"toggle-flood",
|
||||
"toggle-mist",
|
||||
"mdi-form",
|
||||
"mdi-history",
|
||||
"kins-identity",
|
||||
"kins-tcp",
|
||||
"kins-userk"
|
||||
],
|
||||
"missingActions": [],
|
||||
"buttonCount": 61,
|
||||
"sourceReferencedCount": 61,
|
||||
"ready": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "ui",
|
||||
"requirement": "web UI state flow, buttons, HAL pins, and paths are rechecked against native xyzbc-trt runtime",
|
||||
@@ -971,7 +1710,7 @@
|
||||
"states": [
|
||||
{
|
||||
"name": "before",
|
||||
"taskState": 1,
|
||||
"taskState": 4,
|
||||
"taskMode": 1,
|
||||
"interpState": 1,
|
||||
"execState": 2,
|
||||
@@ -982,7 +1721,7 @@
|
||||
false,
|
||||
false
|
||||
],
|
||||
"file": "./demos/xyzbc_switchkins.ngc"
|
||||
"file": "/home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc"
|
||||
},
|
||||
{
|
||||
"name": "after",
|
||||
@@ -1074,10 +1813,28 @@
|
||||
"status": "pass",
|
||||
"evidence": {
|
||||
"nativeSampleCount": 3226,
|
||||
"webSampleCount": 3074,
|
||||
"webSampleCount": 3226,
|
||||
"unavailable": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "path-preview",
|
||||
"requirement": "native and web preview tool paths are geometrically aligned",
|
||||
"status": "pass",
|
||||
"evidence": {
|
||||
"thresholds": {
|
||||
"maxTcpErrorMm": 0.001,
|
||||
"maxJointError": 0.001,
|
||||
"maxToolAxisAngleDeg": 0.001,
|
||||
"sampleCountDelta": 0
|
||||
},
|
||||
"maxTcpErrorMm": 3.552713678800501e-15,
|
||||
"rmsTcpErrorMm": 3.620348931466302e-16,
|
||||
"maxJointError": 3.552713678800501e-15,
|
||||
"maxToolAxisAngleDeg": 0,
|
||||
"sampleCountDelta": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "path-execution",
|
||||
"requirement": "native and web execution path sample period is 20ms",
|
||||
@@ -1112,7 +1869,7 @@
|
||||
"requirement": "web preview and execution paths are comparable",
|
||||
"status": "pass",
|
||||
"evidence": {
|
||||
"webPreviewSampleCount": 3074,
|
||||
"webPreviewSampleCount": 3226,
|
||||
"webExecutionSampleCount": 569,
|
||||
"unavailable": []
|
||||
}
|
||||
@@ -1123,25 +1880,39 @@
|
||||
"previewVsPreview": {
|
||||
"status": "pass",
|
||||
"comparable": true,
|
||||
"geometricAligned": true,
|
||||
"thresholds": {
|
||||
"maxTcpErrorMm": 0.001,
|
||||
"maxJointError": 0.001,
|
||||
"maxToolAxisAngleDeg": 0.001,
|
||||
"sampleCountDelta": 0
|
||||
},
|
||||
"periodsMatch": true,
|
||||
"nativeSamplePeriodMs": 20,
|
||||
"webSamplePeriodMs": 20,
|
||||
"leftSampleCount": 3226,
|
||||
"rightSampleCount": 3074,
|
||||
"rightSampleCount": 3226,
|
||||
"nativeSampleCount": 3226,
|
||||
"webSampleCount": 3074,
|
||||
"webSampleCount": 3226,
|
||||
"unavailable": [],
|
||||
"maxTcpErrorMm": 67.98043602330502,
|
||||
"rmsTcpErrorMm": 32.95865162170114,
|
||||
"maxJointError": 82.06891657213505,
|
||||
"rmsJointError": 37.490160637344005,
|
||||
"maxToolAxisAngleDeg": 19.999999999999993,
|
||||
"sampleCountDelta": 152,
|
||||
"maxTcpErrorMm": 3.552713678800501e-15,
|
||||
"rmsTcpErrorMm": 3.620348931466302e-16,
|
||||
"maxJointError": 3.552713678800501e-15,
|
||||
"rmsJointError": 3.620348931466302e-16,
|
||||
"maxToolAxisAngleDeg": 0,
|
||||
"sampleCountDelta": 0,
|
||||
"missingSamples": []
|
||||
},
|
||||
"executionVsExecution": {
|
||||
"status": "pass",
|
||||
"status": "fail",
|
||||
"comparable": true,
|
||||
"geometricAligned": false,
|
||||
"thresholds": {
|
||||
"maxTcpErrorMm": 0.001,
|
||||
"maxJointError": 0.001,
|
||||
"maxToolAxisAngleDeg": 0.001,
|
||||
"sampleCountDelta": 0
|
||||
},
|
||||
"periodsMatch": true,
|
||||
"nativeSamplePeriodMs": 20,
|
||||
"webSamplePeriodMs": 20,
|
||||
@@ -1161,6 +1932,8 @@
|
||||
"previewVsExecutionNative": {
|
||||
"status": "pass",
|
||||
"comparable": true,
|
||||
"geometricAligned": true,
|
||||
"thresholds": null,
|
||||
"periodsMatch": true,
|
||||
"nativePreviewSamplePeriodMs": 20,
|
||||
"nativeExecutionSamplePeriodMs": 20,
|
||||
@@ -1178,18 +1951,20 @@
|
||||
"previewVsExecutionWeb": {
|
||||
"status": "pass",
|
||||
"comparable": true,
|
||||
"geometricAligned": true,
|
||||
"thresholds": null,
|
||||
"periodsMatch": true,
|
||||
"webPreviewSamplePeriodMs": 20,
|
||||
"webExecutionSamplePeriodMs": 20,
|
||||
"leftSampleCount": 3074,
|
||||
"leftSampleCount": 3226,
|
||||
"rightSampleCount": 569,
|
||||
"unavailable": [],
|
||||
"maxTcpErrorMm": 31.575968660550437,
|
||||
"rmsTcpErrorMm": 14.55884964854259,
|
||||
"maxJointError": 58.498220458848685,
|
||||
"rmsJointError": 20.762740311288844,
|
||||
"maxTcpErrorMm": 38.30103950316296,
|
||||
"rmsTcpErrorMm": 27.021770315964023,
|
||||
"maxJointError": 61.12490900383208,
|
||||
"rmsJointError": 30.022839681881376,
|
||||
"maxToolAxisAngleDeg": 19.999999999999993,
|
||||
"sampleCountDelta": 2505,
|
||||
"sampleCountDelta": 2657,
|
||||
"missingSamples": []
|
||||
}
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user