结论:补齐 LinuxCNC tooldata_common.cc 随机换刀器 load/save 验证边界,WASM/SDK/OPFS 只透传 random-toolchanger 配置;native、WASM、OPFS 和浏览器 smoke 验证已通过。
51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
# 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:
|
|
|
|
```js
|
|
import {
|
|
createLinuxCncIniSdk,
|
|
createLinuxCncInterpSdk,
|
|
} from "./src/index.js";
|
|
```
|
|
|
|
`createLinuxCncIniSdk()` wraps the INI parser module built from vendored
|
|
LinuxCNC `inifile.cc`.
|
|
|
|
`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.
|