diff --git a/wasm-port/docs/compatibility-validation.md b/wasm-port/docs/compatibility-validation.md index 43fe48e..a5d8e1b 100644 --- a/wasm-port/docs/compatibility-validation.md +++ b/wasm-port/docs/compatibility-validation.md @@ -626,10 +626,10 @@ using `M68`, `M66`, and `_hal[motion.switchkins-type]`; it does not implement the remap execution path. `linuxcnc_remap_parse_harness` links vendored `interp_remap.cc` for the -standalone remap descriptor path. It reads the vendored `xyzac-trt` and -`xyzbc-trt` INI `REMAP` entries, resolves their `remap_subs/*.ngc` files -through LinuxCNC `find_ngc_file()`, and validates the resulting -`_setup.m_remapped` descriptors for `M428`, `M429`, and `M430`. Python -callbacks remain runtime boundaries. Native and WASM validation now execute -the NGC remap/file paths through vendored LinuxCNC O-word dispatch and the -standalone HAL adapter boundary. +standalone remap descriptor path. It reads the vendored `xyzac-trt`, +`xyzbc-trt`, `xyzab-tdr`, and bridge-mill INI `REMAP` entries, resolves their +`remap_subs/*.ngc` files through LinuxCNC `find_ngc_file()`, and validates the +resulting `_setup.m_remapped` descriptors for each machine's LinuxCNC-defined +`M428`/`M429`/`M430` set. Python callbacks remain runtime boundaries. Native +and WASM validation now execute the NGC remap/file paths through vendored +LinuxCNC O-word dispatch and the standalone HAL adapter boundary. diff --git a/wasm-port/docs/porting-steps-standalone.md b/wasm-port/docs/porting-steps-standalone.md index d434184..16369c1 100644 --- a/wasm-port/docs/porting-steps-standalone.md +++ b/wasm-port/docs/porting-steps-standalone.md @@ -797,8 +797,9 @@ Current five-axis switchkins status: vendored LinuxCNC NGC subroutines; do not replace them with standalone M-code handlers. 4. `linuxcnc_remap_parse_harness` now links vendored `interp_remap.cc` and - validates the LinuxCNC `Interp::parse_remap()` path for `xyzac-trt` and - `xyzbc-trt` `M428`/`M429`/`M430` NGC remap descriptors. + validates the LinuxCNC `Interp::parse_remap()` path for `xyzac-trt`, + `xyzbc-trt`, `xyzab-tdr`, and bridge-mill NGC remap descriptors, matching + each vendored machine's LinuxCNC-defined `M428`/`M429`/`M430` set. 5. `linuxcnc_remap_hal_sync_harness` validates vendored LinuxCNC `M68` and `M66` synchronization through the standalone HAL adapter boundary. 6. `linuxcnc_5axis_remap_execute_harness` executes the `xyzac-trt` and diff --git a/wasm-port/docs/source-reuse-map.md b/wasm-port/docs/source-reuse-map.md index 87192fb..a6bfa7d 100644 --- a/wasm-port/docs/source-reuse-map.md +++ b/wasm-port/docs/source-reuse-map.md @@ -72,13 +72,13 @@ Current validation is intentionally mechanical: userspace genser flows are not yet established. - Five-axis M428/M429/M430 source assets are now vendored for bridge-mill, dual-rotary, and table-rotary-tilting LinuxCNC sample machines. NGC remap - descriptors for the TRT sample machines are parsed through vendored - `Interp::parse_remap()` and `find_ngc_file()` by + descriptors for the TRT, TDR, and bridge-mill sample machines are parsed + through vendored `Interp::parse_remap()` and `find_ngc_file()` by `linuxcnc_remap_parse_harness`; native, WASM Node, browser interpreter, and - INI panel UI validation execute the selected TRT switchkins demo files - through vendored LinuxCNC O-word remap dispatch, file - `open()`/`read()`/`execute()`, and the standalone HAL adapter boundary for - `M68`/`M66` plus `_hal[motion.switchkins-type]` readback. + INI panel UI validation execute the selected switchkins demo files through + vendored LinuxCNC O-word remap dispatch, file `open()`/`read()`/`execute()`, + and the standalone HAL adapter boundary for `M68`/`M66` plus + `_hal[motion.switchkins-type]` readback. - Cutter compensation positive motion and negative interpreter paths are fixture-covered through vendored `interp_convert.cc` and `interp_queue.cc`. - Browser/WASM C ABI and JS SDK layers are now present for the INI parser, the diff --git a/wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_remap_parse_harness.cpp b/wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_remap_parse_harness.cpp index 7ca5f92..a06b654 100644 --- a/wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_remap_parse_harness.cpp +++ b/wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_remap_parse_harness.cpp @@ -134,6 +134,23 @@ int main() {430, "M430", "430remap"}, }, }, + { + "xyzab_tdr", + "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + { + {428, "M428", "428remap"}, + {429, "M429", "429remap"}, + }, + }, + { + "bridgemill", + "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + { + {428, "M428", "428remap"}, + {429, "M429", "429remap"}, + {430, "M430", "430remap"}, + }, + }, }; bool ok = true; diff --git a/wasm-port/tests/native/verify_native_probes.sh b/wasm-port/tests/native/verify_native_probes.sh index db747e6..f039999 100755 --- a/wasm-port/tests/native/verify_native_probes.sh +++ b/wasm-port/tests/native/verify_native_probes.sh @@ -266,6 +266,22 @@ grep -Fq "xyzbc_trt_M428_ngc=1" "$REMAP_PARSE_STDOUT" grep -Fq "xyzbc_trt_M429_ngc=1" "$REMAP_PARSE_STDOUT" grep -Fq "xyzbc_trt_M430_ngc=1" "$REMAP_PARSE_STDOUT" grep -Fq "xyzbc_trt_linuxcnc_ngc_remaps_parsed=1" "$REMAP_PARSE_STDOUT" +grep -Fq "xyzab_tdr_ini_open=1" "$REMAP_PARSE_STDOUT" +grep -Fq "xyzab_tdr_parse_remap_1=0" "$REMAP_PARSE_STDOUT" +grep -Fq "xyzab_tdr_parse_remap_2=0" "$REMAP_PARSE_STDOUT" +grep -Fq "xyzab_tdr_parsed_remap_count=2" "$REMAP_PARSE_STDOUT" +grep -Fq "xyzab_tdr_M428_ngc=1" "$REMAP_PARSE_STDOUT" +grep -Fq "xyzab_tdr_M429_ngc=1" "$REMAP_PARSE_STDOUT" +grep -Fq "xyzab_tdr_linuxcnc_ngc_remaps_parsed=1" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_ini_open=1" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_parse_remap_1=0" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_parse_remap_2=0" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_parse_remap_3=0" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_parsed_remap_count=3" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_M428_ngc=1" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_M429_ngc=1" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_M430_ngc=1" "$REMAP_PARSE_STDOUT" +grep -Fq "bridgemill_linuxcnc_ngc_remaps_parsed=1" "$REMAP_PARSE_STDOUT" grep -Fq "fiveaxis_linuxcnc_remap_parse_path=1" "$REMAP_PARSE_STDOUT" REMAP_HAL_SYNC_STDOUT="$BUILD_DIR/linuxcnc_remap_hal_sync_harness.run.stdout.log"