支持真实G代码程序执行

结论:AXIS 风格浏览器仿真页面新增 Open Program、runProgramText 和 loadProgramFile,支持用户提供的 G-code 文本/文件通过 LinuxCNC WASM 执行并参与回放。
This commit is contained in:
2026-06-16 22:14:34 +08:00
parent 163a68ff42
commit 69ccf931b1
8 changed files with 204 additions and 5 deletions

View File

@@ -12,6 +12,7 @@ import {
getSimulationTestProgram,
getSimulationTestPrograms,
parseLinuxCncCanonicalMotion,
runRealBrowserSimulation,
} from "../../../runtime/ui/simulation/simulation-app.js";
import {
SIMULATION_TEST_PROGRAMS as directoryPrograms,
@@ -119,4 +120,18 @@ const clampedFrame = createPlaybackFrame(playbackState, 99);
assert.equal(clampedFrame.index, 2);
assert.equal(clampedFrame.progress, 100);
const customRunDocument = {
body: { dataset: {} },
querySelector: () => null,
querySelectorAll: () => [],
};
const customRun = await runRealBrowserSimulation({
documentRef: customRunDocument,
programText: "G90 G17 G0 X0 Y0 Z0\nG1 X4.25 Y2.5 F90\nM2\n",
});
assert.equal(customRun.program.id, "custom");
assert.equal(customRun.program.source, "custom");
assert.ok(customRun.resultText.includes("canon_event=STRAIGHT_FEED line=2 x=4.25 y=2.5"));
assert.ok(customRun.summary.ready);
console.log("real_simulation_programs_node_smoke=ok");