结论:参数文件 restore/save 已通过解释器 WASM C ABI 直连 vendored LinuxCNC,native 与 host/WASM/browser 验证全部通过。
45 lines
1.2 KiB
Markdown
45 lines
1.2 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)`
|
|
- `writeTextFile(path, text)`
|
|
- `readTextFile(path)`
|