Files
wasm-simulator/docs/linuxcnc-kinematics-source-map.md

70 lines
3.2 KiB
Markdown

# LinuxCNC kinematics source map
This map tracks the LinuxCNC source/configuration basis for kinematics,
switchkins, RTCP, and M428/M429/M430 remap coverage. It is intentionally a
source-coverage document: the manifest entries here must not become browser or
application behavior by themselves. It must not add CNC behavior and must not
expand the temporary smoke parser.
## Manifest groups
The kinematics manifest currently contains these LinuxCNC-root relative source
groups:
| Group | Count | Source coverage role |
| --- | ---: | --- |
| `core` | 30 | LinuxCNC kinematics and posemath C/C++ sources. |
| `config` | 33 | LinuxCNC switchkins INI/HAL/POSTGUI sources used by M428/M429/M430 and RTCP coverage. |
| `remap` | 31 | LinuxCNC M428/M429/M430 remap subroutines. |
| `component` | 8 | LinuxCNC halcompile component sources referenced by kinematics configs. |
| `generated` | 8 | LinuxCNC halcompile-generated C sources adjacent to component coverage. |
| `header` | 13 | LinuxCNC kinematics and posemath declarations. |
| `metadata` | 34 | LinuxCNC build/manpage metadata adjacent to covered kinematics sources. |
| `asset` | 122 | LinuxCNC INI-adjacent HAL, README, GUI, demo, PYVCP, and other source assets. |
| `tooldata` | 10 | LinuxCNC tool table files referenced by covered M428/M429/M430 INI files. |
## LinuxCNC Source Anchors
- `src/emc/kinematics/Submakefile` defines the kinematics build source surface,
including `GENSERKINSSRCS`.
- `src/emc/kinematics/kinematics.h` declares `kinematicsInverse()` and
`kinematicsSwitch()` for switchkins-capable modules.
- `configs/sim/axis/vismach/5axis/bridgemill/5axis.ini` wires
`motion.switchkins-type` and representative M428/M429/M430 switchkins
configuration.
- `configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc`
provides a representative `#<kinstype>` remap assignment.
## Boundaries
- `asset`, `metadata`, `header`, and `tooldata` entries are source coverage,
not browser API surface.
- Browser-side file persistence remains OPFS-only and is not expanded by this
manifest.
- Switchkins/remap generation must continue to derive M428/M429/M430 cases from
LinuxCNC INI/HAL/remap sources, not from hand-authored behavior.
- RTCP and five-axis coverage must remain tied to LinuxCNC kinematics sources,
remap files, and configuration files.
- `test-native.sh`, `test-linuxcnc-source-link.sh`, and `build-wasm.sh` must
run `./check-linuxcnc-kinematics-source-map.sh` before consuming generated
config aliases, source-linked LinuxCNC objects, or browser artifacts.
- The kinematics source-map guard validates LinuxCNC source/config ownership
and manifest drift only; it does not interpret G-code.
## Checks
Run:
```bash
./check-linuxcnc-kinematics-source-map.sh
./check-linuxcnc-inputs.sh linuxcnc-kinematics-source-files.txt --require-kinematics-complete
./check-linuxcnc-switchkins-remap-table.sh linuxcnc-kinematics-source-files.txt
./test-native.sh
./test-linuxcnc-source-link.sh
```
`check-linuxcnc-kinematics-source-map.sh` keeps this document's group counts in
sync with `linuxcnc-kinematics-source-files.txt`; the input and table checkers
validate LinuxCNC source existence, directory completeness, remap kinstype
notes, and switchkins/remap table generation.