Complete XYZAC LinuxCNC WASM parity and smooth 3D preview
This commit is contained in:
40
web/worker/xyzac-session.mjs
Normal file
40
web/worker/xyzac-session.mjs
Normal file
@@ -0,0 +1,40 @@
|
||||
import { SimSession, CONTEXT_ID, PROTOCOL_SCHEMA } from "./sim-session.mjs";
|
||||
import { XyzacCommandLedger, XYZAC_COMMAND_LEDGER_SCHEMA } from "./xyzac-command-ledger.mjs";
|
||||
import { XyzacScheduler, XYZAC_SCHEDULER_SCHEMA } from "./xyzac-scheduler.mjs";
|
||||
|
||||
export const XYZAC_SESSION_SCHEMA = "xyzac-session.v1";
|
||||
|
||||
export class XyzacSession extends SimSession {
|
||||
constructor(core, options = {}) {
|
||||
super(core, options);
|
||||
this.ledger = new XyzacCommandLedger();
|
||||
this.scheduler = new XyzacScheduler(core);
|
||||
this.session_scope = "selected_xyzac_simulation";
|
||||
}
|
||||
|
||||
authority() {
|
||||
return {
|
||||
schema: XYZAC_SESSION_SCHEMA,
|
||||
authority: "linuxcnc-wasm-worker",
|
||||
context_id: this.contextId,
|
||||
session_id: this.sessionId,
|
||||
scope: this.session_scope,
|
||||
protocol_schema: PROTOCOL_SCHEMA,
|
||||
ledger_schema: XYZAC_COMMAND_LEDGER_SCHEMA,
|
||||
scheduler_schema: XYZAC_SCHEDULER_SCHEMA,
|
||||
machine: { coordinates: "XYZAC", joint_count: 5, kinematics: "xyzac-trt", rotary_units: "degrees" },
|
||||
};
|
||||
}
|
||||
|
||||
accept(input) {
|
||||
const response = super.accept(input);
|
||||
if (response?.payload && typeof response.payload === "object") {
|
||||
response.payload.xyzac_session = this.authority();
|
||||
response.payload.xyzac_ledger = this.ledger.audit();
|
||||
response.payload.xyzac_scheduler = this.scheduler.export();
|
||||
}
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
export { CONTEXT_ID, PROTOCOL_SCHEMA };
|
||||
Reference in New Issue
Block a user