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

3.2 KiB

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:

./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.