Initial wasm simulator checkpoint
This commit is contained in:
62
web/src/index.ts
Normal file
62
web/src/index.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
export type CncDialect = "linuxcnc" | "fanuc" | "siemens";
|
||||
|
||||
export type CncPose = {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
a: number;
|
||||
b: number;
|
||||
c: number;
|
||||
u: number;
|
||||
v: number;
|
||||
w: number;
|
||||
};
|
||||
|
||||
export type CncEventType =
|
||||
| "error"
|
||||
| "comment"
|
||||
| "set-units"
|
||||
| "set-plane"
|
||||
| "set-feed"
|
||||
| "set-spindle"
|
||||
| "tool-change"
|
||||
| "dwell"
|
||||
| "rapid"
|
||||
| "linear-feed"
|
||||
| "arc-feed"
|
||||
| "probe"
|
||||
| "program-end"
|
||||
| "rtcp-pivot"
|
||||
| "kinematics-switch"
|
||||
| "rtcp-state"
|
||||
| "set-g5x-offset"
|
||||
| "set-g92-offset"
|
||||
| "set-xy-rotation";
|
||||
|
||||
export type CncEvent = {
|
||||
type: CncEventType;
|
||||
line: number;
|
||||
plane: number;
|
||||
tool: number;
|
||||
feed: number;
|
||||
spindle: number;
|
||||
dwellSeconds: number;
|
||||
start: CncPose;
|
||||
end: CncPose;
|
||||
center: CncPose;
|
||||
arcTurns: number;
|
||||
reserved: number;
|
||||
};
|
||||
|
||||
export type SimulatorCore = {
|
||||
parse(
|
||||
program: string,
|
||||
dialect: CncDialect,
|
||||
options?: { backend?: string; rtcp?: { enabled: boolean; toolLength: number } },
|
||||
): Promise<CncEvent[]>;
|
||||
};
|
||||
|
||||
export async function createSimulatorCore(): Promise<SimulatorCore> {
|
||||
const { createWasmSimulator } = await import("./wasm-core.js");
|
||||
return createWasmSimulator();
|
||||
}
|
||||
Reference in New Issue
Block a user