结论:浏览器 interpreter smoke 和 INI panel UI 已接入 vendored LinuxCNC 五轴 switchkins remap 执行路径,只复制 LinuxCNC sample machine 文件到 WASM FS 并调用 SDK C ABI;host 聚合 smoke 通过,未新增 JavaScript M428/M429/M430 或运动学语义。
58 lines
1.9 KiB
Markdown
58 lines
1.9 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` 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)`
|
|
- `runFiveAxisRemapFile(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.
|
|
|
|
`runFiveAxisRemapFile()` is a narrow host boundary for vendored LinuxCNC
|
|
sample-machine remap validation. Callers provide INI/remap/demo files in the
|
|
WASM filesystem; the C ABI runs vendored LinuxCNC `REMAP`, O-word, file
|
|
execution, and HAL adapter paths.
|