按推荐建议,继续执行
结论:已将 LinuxCNC 5axiskins 及 switchkins 相关源码纳入 vendored manifest、native probe 和文档验证链,完整 native 验证通过。
This commit is contained in:
@@ -53,6 +53,7 @@ The validation fails if:
|
||||
| `linuxcnc_parameter_file_harness` | Validates LinuxCNC parameter file restore/save behavior and required/read-only parameter handling. |
|
||||
| `linuxcnc_tp_api_probe` | Validates vendored LinuxCNC trajectory planner calls for linear, arc, and queued motion paths. |
|
||||
| `linuxcnc_kinematics_probe` | Validates vendored LinuxCNC `trivkins.c` plus `kins_util.c` initialize and perform identity forward/inverse mapping through the standalone HAL/RTAPI boundary. |
|
||||
| `linuxcnc_5axis_kinematics_probe` | Validates vendored LinuxCNC `5axiskins.c` through `switchkins.c`, including 5-axis forward/inverse round-trip behavior and switching to identity kinematics. |
|
||||
|
||||
## Fixture Coverage
|
||||
|
||||
@@ -95,5 +96,7 @@ The current fixture expectations validate standalone behavior against the
|
||||
vendored LinuxCNC source path. They do not yet run a side-by-side native
|
||||
LinuxCNC executable comparison for each fixture.
|
||||
|
||||
The kinematics probe currently covers LinuxCNC identity/trivial kinematics
|
||||
only. Non-trivial and 5-axis kinematics still need dedicated machine baselines.
|
||||
The kinematics probes currently cover LinuxCNC identity/trivial kinematics and
|
||||
the switchable `5axiskins` XYZBCW bridge-mill model. TRT `xyzac`/`xyzbc`,
|
||||
serial, delta, SCARA, and other machine-specific kinematics still need
|
||||
dedicated baselines.
|
||||
|
||||
@@ -29,7 +29,7 @@ semantic rewrites:
|
||||
| Python/remap | Python/remap hooks are stubbed at the runtime edge. |
|
||||
| Dynamic interpreter path | `interp_base.cc` probe uses standalone `EMC2_HOME` compile-time path boundary. |
|
||||
| Realtime scheduler | TP probes seed deterministic status/config data instead of running LinuxCNC realtime process topology. |
|
||||
| Kinematics component lifecycle | `trivkins.c` is initialized through its LinuxCNC module entry point while HAL component init/ready/exit and RTAPI module metadata are handled by standalone shims. |
|
||||
| Kinematics component lifecycle | `trivkins.c` and `5axiskins.c` are initialized through LinuxCNC module entry points while HAL component init/ready/exit, HAL pin allocation, and RTAPI module metadata are handled by standalone shims. |
|
||||
| Browser storage | OPFS remains outside the native core and is not yet connected. |
|
||||
|
||||
## Enforced Non-Drift Rules
|
||||
@@ -47,10 +47,11 @@ semantic rewrites:
|
||||
- No browser/WASM parity tests yet.
|
||||
- No JS SDK validation yet.
|
||||
- No OPFS persistence validation yet.
|
||||
- Identity/trivial kinematics now have native source-probe coverage; non-trivial
|
||||
and 5-axis kinematics implementation files are not yet extracted.
|
||||
- Full machine baselines beyond the identity/trivial kinematics probe are not
|
||||
established.
|
||||
- Identity/trivial kinematics and LinuxCNC `5axiskins` now have native
|
||||
source-probe coverage; TRT `xyzac`/`xyzbc`, serial, delta, SCARA, and other
|
||||
machine-specific kinematics are not yet extracted.
|
||||
- Full machine baselines beyond the current identity/trivial and `5axiskins`
|
||||
probes are not established.
|
||||
- Fixture expectations are currently checked against the standalone vendored
|
||||
source path, not by running a native LinuxCNC binary for every fixture.
|
||||
|
||||
|
||||
@@ -60,5 +60,6 @@ Negative fixture coverage includes:
|
||||
- missing tool length offset
|
||||
|
||||
Machine baseline is still limited to standalone interpreter, trajectory
|
||||
planner, and LinuxCNC identity/trivial kinematics probes. Non-trivial
|
||||
kinematics and 5-axis machine baselines remain future work.
|
||||
planner, LinuxCNC identity/trivial kinematics, and the LinuxCNC `5axiskins`
|
||||
XYZBCW bridge-mill probe. Additional non-trivial kinematics and fuller machine
|
||||
baselines remain future work.
|
||||
|
||||
@@ -36,6 +36,7 @@ Current validation is intentionally mechanical:
|
||||
| Canon/NML-facing interpreter types | `src/emc/nml_intf/canon*.hh`, `emctool.h`, `interp_return.hh`, `motion_types.h`, `emcpose.*`, `emcpos.h`, `debugflags.h`, `src/emc/linuxcnc.h` | Copy unchanged | NML transport is not ported; wrappers provide only the status/type edges needed by standalone probes | Vendor byte sync, dependent source probes, `linuxcnc_tp_api_probe`, interpreter harnesses |
|
||||
| Motion state headers | `src/emc/motion/state_tag.h`, `emcmotcfg.h`, `simple_tp.h`, `motion.h`, `mot_priv.h`, `axis.h` | Copy unchanged | Realtime motion process is not ported; standalone probes seed the small motion status/config state required by TP calls | Vendor byte sync, `linuxcnc_tp_api_probe` |
|
||||
| Identity/trivial kinematics | `src/emc/kinematics/kinematics.h`, `cubic.h`, `kins_util.c`, `trivkins.c` | Copy unchanged | HAL component lifecycle and RTAPI module metadata are replaced by standalone shims; forward/inverse mapping behavior remains LinuxCNC source | Vendor byte sync, per-file source probes, `linuxcnc_kinematics_probe` |
|
||||
| Switchable 5-axis bridge kinematics | `src/emc/kinematics/5axiskins.c`, `switchkins.c`, `switchkins.h`, `userkfuncs.c`, plus `src/rtapi/rtapi_ctype.h` | Copy unchanged | HAL pin allocation, HAL component lifecycle, and RTAPI module metadata are standalone runtime edges; switchable 5-axis forward/inverse behavior remains LinuxCNC source | Vendor byte sync, per-file source probes, `linuxcnc_5axis_kinematics_probe` |
|
||||
| Trajectory planner | `src/emc/tp/tp.c`, `tc.c`, `tcq.c`, `spherical_arc.c`, `blendmath.c`, `sp_scurve.c`, `ruckig_wrapper.c`, plus matching `*.h` files | Copy unchanged | Native realtime scheduling and motion process state are replaced by standalone probe setup | Vendor byte sync, per-file source probes, `linuxcnc_tp_api_probe` |
|
||||
| Ruckig C planner support | Selected `src/emc/tp/cruckig/*.c` and `*.h` files in the manifest | Copy unchanged | Used as LinuxCNC planner support code through vendored TP sources | Vendor byte sync, per-file source probes |
|
||||
| Posemath | `src/libnml/posemath/posemath.cc`, `_posemath.c`, `gomath.c`, `sincos.c`, and matching headers | Copy unchanged | `gomath.c` is compiled as C; `rtapi.h` shim is C/C++ compatible for this boundary | Vendor byte sync, per-file source probes, TP probe |
|
||||
@@ -59,7 +60,9 @@ Current validation is intentionally mechanical:
|
||||
|
||||
## Known Gaps
|
||||
|
||||
- Full non-trivial and 5-axis kinematics implementation files are not yet extracted.
|
||||
- Additional non-trivial kinematics implementation files, including TRT
|
||||
`xyzac`/`xyzbc`, serial, delta, SCARA, and other machine-specific modules,
|
||||
are not yet extracted.
|
||||
- Browser/WASM C ABI and JS SDK layers are not yet built for the full
|
||||
interpreter/planner core.
|
||||
- OPFS persistence is not yet connected to INI, tool table, parameter file, or
|
||||
|
||||
Reference in New Issue
Block a user