按规划持续工作

结论:已接通 vendored LinuxCNC interp_remap.cc 的 NGC REMAP 描述符解析路径,新增 native harness 验证 xyzac/xyzbc 的 M428/M429/M430 映射,未实现自写 M 码语义。
This commit is contained in:
2026-06-08 15:54:07 +08:00
parent 5df62ad60a
commit 3a58f1e495
9 changed files with 300 additions and 11 deletions

View File

@@ -58,6 +58,12 @@ MINIMAL_FLAGS=(
-DLINUXCNC_STANDALONE_USE_RS274_PRE_STATE
)
REMAP_RUNTIME_FLAGS=(
"${MINIMAL_FLAGS[@]}"
-DLINUXCNC_VENDOR_DIR=\"$VENDOR_DIR\"
-include "$SHIM_DIR/linuxcnc_remap_compile_compat.hh"
)
INTERP_BASE_FLAGS=(
"${MINIMAL_FLAGS[@]}"
-DEMC2_HOME=\"/standalone\"
@@ -661,6 +667,36 @@ INDEXER_HARNESS_SOURCES=(
"$WRAP_DIR/linuxcnc_indexer_harness.cpp"
)
REMAP_PARSE_SOURCES=(
"$VENDOR_DIR/src/emc/rs274ngc/modal_state.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_array.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_internal.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_read.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_check.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_arc.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_inverse.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_execute.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_convert.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_cycles.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_g7x.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_queue.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_find.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_namedparams.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_write.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_o_word.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_remap.cc"
"$VENDOR_DIR/src/emc/rs274ngc/rs274ngc_pre.cc"
"$VENDOR_DIR/src/emc/tooldata/tooldata_common.cc"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_emc_status_runtime.cpp"
"$WRAP_DIR/linuxcnc_interp_python_edge_stubs.cpp"
"$WRAP_DIR/linuxcnc_runtime_state_stubs.cpp"
"$WRAP_DIR/linuxcnc_tool_adapter.cpp"
"$WRAP_DIR/linuxcnc_interp_minimal_runtime.cpp"
"$VENDOR_DIR/src/emc/ini/inifile.cc"
"$WRAP_DIR/linuxcnc_remap_parse_harness.cpp"
)
build_binary_target \
linuxcnc_ini_probe \
"$BUILD_DIR/linuxcnc_ini_probe" \
@@ -1223,6 +1259,29 @@ else
"$BUILD_DIR/linuxcnc_interp_init_harness.run.stderr.log"
fi
build_binary_target \
linuxcnc_remap_parse_harness \
"$BUILD_DIR/linuxcnc_remap_parse_harness" \
REMAP_RUNTIME_FLAGS \
REMAP_PARSE_SOURCES \
MINIMAL_LINK_FLAGS \
-lfmt
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_remap_parse_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_remap_parse_harness" \
>"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stderr.log"
REMAP_PARSE_RUN_RC=$?
set -e
echo "$REMAP_PARSE_RUN_RC" > "$BUILD_DIR/linuxcnc_remap_parse_harness.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_remap_parse_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stderr.log"
fi
build_binary_target \
linuxcnc_indexer_harness \
"$BUILD_DIR/linuxcnc_indexer_harness" \