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:
@@ -44,15 +44,10 @@ static int state_accepts_kind(uint32_t current, const char *kind) {
|
||||
if (current == SIM_PROTOCOL_NEW) return is_kind(kind, "HELLO");
|
||||
if (current == SIM_PROTOCOL_HELLO) return is_kind(kind, "SESSION_ATTACH") || is_kind(kind, "CAPABILITIES");
|
||||
if (current == SIM_PROTOCOL_ATTACHED) return is_kind(kind, "SESSION_READY");
|
||||
if (current == SIM_PROTOCOL_READY) return 1;
|
||||
if (current == SIM_PROTOCOL_PAUSED) {
|
||||
return is_kind(kind, "PROGRAM_RESUME") || is_kind(kind, "RESUME") ||
|
||||
is_kind(kind, "PROGRAM_ABORT") || is_kind(kind, "ESTOP") ||
|
||||
is_kind(kind, "POWER") || is_kind(kind, "SET_OVERRIDE") ||
|
||||
is_kind(kind, "SIM_STEP") ||
|
||||
is_kind(kind, "PING") || is_kind(kind, "SNAPSHOT_REQUEST") ||
|
||||
is_kind(kind, "DESTROY");
|
||||
}
|
||||
/* Task pause does not disconnect the command channel. The task gate
|
||||
decides whether a valid frame may execute, and records refusals at
|
||||
that sequence so Resume/Abort cannot be stranded behind a gap. */
|
||||
if (current == SIM_PROTOCOL_READY || current == SIM_PROTOCOL_PAUSED) return 1;
|
||||
return is_kind(kind, "RESET");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user