Align AXIS control flow and fix pause and program rendering
Document source UI gates, explicit native live-plot clearing, and remaining parity boundaries. Fix pause/resume transport continuity, repeated stepping, coordinate previews, and spindle override state. Optimize large program snapshots and rendering, and cover the control flows with native Tcl, WASM, and browser checks. Validation: 22 native tests and source/browser checks pass. Worker/App regression: 113 of 123 pass; 10 pre-existing failures remain documented with no new failures.
This commit is contained in:
@@ -41,10 +41,14 @@ assert.equal(readyGates.tool.enabled, true);
|
||||
assert.equal(readyGates.probe.enabled, true);
|
||||
assert.equal(send("KINEMATICS_SELECT", { type: 1 }).payload.kinematics.active_type, 1);
|
||||
const alternateKinematicsGates = send("SNAPSHOT_REQUEST").payload.panel_snapshot.gates;
|
||||
assert.equal(alternateKinematicsGates.spindle.reason, "linuxcnc_wasm_mode_unavailable");
|
||||
// Switchkins leaves MDI selected; AXIS spindle() ensures MANUAL itself.
|
||||
assert.equal(alternateKinematicsGates.spindle.enabled, true);
|
||||
assert.equal(alternateKinematicsGates.spindle.reason, "linuxcnc_wasm_authority");
|
||||
assert.equal(alternateKinematicsGates.tool.reason, "linuxcnc_wasm_mode_unavailable");
|
||||
assert.equal(send("RESET").payload.command, "RESET");
|
||||
assert.equal(send("MDI_EXECUTE", { block: "G0 X1" }).payload.task.mode, "MDI");
|
||||
assert.equal(send("JOG_STOP").kind, "ERROR", "jog stop must not abort a running MDI move");
|
||||
assert.equal(send("SIM_STEP", { cycles: 100 }).kind, "COMMAND_RESULT");
|
||||
assert.equal(send("JOG_STOP").payload.command, "JOG_STOP");
|
||||
assert.equal(send("SET_MODE", { mode: "MANUAL" }).payload.mode, "MANUAL");
|
||||
assert.equal(send("POWER", { active: false }).payload.panel_snapshot.axis_state.machine_state, "OFF");
|
||||
@@ -72,7 +76,7 @@ assert.equal(send("PROGRAM_ABORT").payload.task.state, "STOPPED");
|
||||
|
||||
assert.equal(send("ESTOP", { active: true }).payload.panel_snapshot.axis_state.machine_state, "ESTOP");
|
||||
const reset = send("ESTOP", { active: false });
|
||||
assert.equal(reset.payload.panel_snapshot.axis_state.machine_state, "ESTOP_RESET");
|
||||
assert.equal(reset.payload.panel_snapshot.axis_state.source_task_state, "STATE_ESTOP_RESET");
|
||||
assert.equal(send("POWER", { active: true }).payload.panel_snapshot.axis_state.machine_state, "ON");
|
||||
|
||||
console.log(JSON.stringify({
|
||||
|
||||
Reference in New Issue
Block a user