结论:接入 LinuxCNC iniFindBool 到 INI WASM/SDK,并让 machine-session bridge 通过 vendored INI 解析 [EMCIO]RANDOM_TOOLCHANGER 后透传给 tooldata;native、WASM、OPFS 和浏览器 smoke 验证已通过。
1.6 KiB
LinuxCNC WASM SDK
This SDK exposes browser/Node JavaScript wrappers for standalone WASM modules built from vendored LinuxCNC source.
Boundary
The SDK is a host-boundary layer only. It may:
- load generated Emscripten modules;
- allocate and free C strings;
- write text files into the Emscripten filesystem;
- call exported C ABI functions;
- return LinuxCNC-produced text output to JavaScript callers.
The SDK must not implement G-code interpretation, canonical motion behavior, tool semantics, parameter semantics, kinematics, or planner behavior. Those behaviors must continue to come from vendored LinuxCNC source through the C ABI.
Entrypoints
Use src/index.js for stable imports:
import {
createLinuxCncIniSdk,
createLinuxCncInterpSdk,
} from "./src/index.js";
createLinuxCncIniSdk() wraps the INI parser module built from vendored
LinuxCNC inifile.cc and exposes getString() plus getBool(). Boolean
conversion is performed by vendored LinuxCNC iniFindBool().
createLinuxCncInterpSdk() wraps the interpreter-core module built from
vendored LinuxCNC RS274NGC sources and exposes:
runProgram(programText)runProgramWithIni(programText, iniPath)runFile(path)runFileWithIni(path, iniPath)restoreParameters(path)saveParameters(path, values)loadToolTable(path, options)saveToolTable(path)writeTextFile(path, text)readTextFile(path)
loadToolTable() accepts { randomToolChanger: true } to select the
LinuxCNC random-toolchanger branch before calling vendored
tooldata_load(). The SDK only forwards that runtime boundary flag.