70 lines
3.2 KiB
Markdown
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.
|