按推荐建议,继续执行
结论:已将 LinuxCNC TRT xyzac/xyzbc 运动学源码纳入 vendored manifest、native probe 和文档验证链,完整 native 验证通过。
This commit is contained in:
@@ -54,6 +54,8 @@ The validation fails if:
|
||||
| `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. |
|
||||
| `linuxcnc_xyzac_trt_kinematics_probe` | Validates vendored LinuxCNC XYZAC TRT kinematics through `switchkins.c`, including forward/inverse round-trip behavior and switching to identity kinematics. |
|
||||
| `linuxcnc_xyzbc_trt_kinematics_probe` | Validates vendored LinuxCNC XYZBC TRT kinematics through `switchkins.c`, including forward/inverse round-trip behavior and switching to identity kinematics. |
|
||||
|
||||
## Fixture Coverage
|
||||
|
||||
@@ -96,7 +98,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 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.
|
||||
The kinematics probes currently cover LinuxCNC identity/trivial kinematics,
|
||||
the switchable `5axiskins` XYZBCW bridge-mill model, and the TRT `xyzac`/`xyzbc`
|
||||
table-rotary models. 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` 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. |
|
||||
| Kinematics component lifecycle | `trivkins.c`, `5axiskins.c`, and TRT switchkins modules 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,11 +47,11 @@ semantic rewrites:
|
||||
- No browser/WASM parity tests yet.
|
||||
- No JS SDK validation yet.
|
||||
- No OPFS persistence validation yet.
|
||||
- Identity/trivial kinematics and LinuxCNC `5axiskins` now have native
|
||||
source-probe coverage; TRT `xyzac`/`xyzbc`, serial, delta, SCARA, and other
|
||||
- Identity/trivial kinematics, LinuxCNC `5axiskins`, and TRT `xyzac`/`xyzbc`
|
||||
now have native source-probe coverage; 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.
|
||||
- Full machine baselines beyond the current identity/trivial, `5axiskins`, and
|
||||
TRT 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,6 +60,6 @@ Negative fixture coverage includes:
|
||||
- missing tool length offset
|
||||
|
||||
Machine baseline is still limited to standalone interpreter, trajectory
|
||||
planner, LinuxCNC identity/trivial kinematics, and the LinuxCNC `5axiskins`
|
||||
XYZBCW bridge-mill probe. Additional non-trivial kinematics and fuller machine
|
||||
baselines remain future work.
|
||||
planner, LinuxCNC identity/trivial kinematics, LinuxCNC `5axiskins` XYZBCW
|
||||
bridge-mill probing, and LinuxCNC TRT `xyzac`/`xyzbc` probing. Additional
|
||||
non-trivial kinematics and fuller machine baselines remain future work.
|
||||
|
||||
@@ -37,6 +37,7 @@ Current validation is intentionally mechanical:
|
||||
| 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` |
|
||||
| TRT table-rotary kinematics | `src/emc/kinematics/trtfuncs.c`, `xyzac-trt-kins.c`, `xyzbc-trt-kins.c` | Copy unchanged | HAL pin allocation and switchkins lifecycle stay runtime boundaries; XYZAC/XYZBC TRT forward/inverse behavior remains LinuxCNC source | Vendor byte sync, per-file source probes, `linuxcnc_xyzac_trt_kinematics_probe`, `linuxcnc_xyzbc_trt_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 |
|
||||
@@ -60,9 +61,8 @@ Current validation is intentionally mechanical:
|
||||
|
||||
## Known Gaps
|
||||
|
||||
- Additional non-trivial kinematics implementation files, including TRT
|
||||
`xyzac`/`xyzbc`, serial, delta, SCARA, and other machine-specific modules,
|
||||
are not yet extracted.
|
||||
- Additional non-trivial kinematics implementation files, including 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