按推荐建议,继续执行

结论:继续按 LinuxCNC 源码直接复用路线推进,新增 linear delta、rotary delta、scorbot 三类运动学源码的 vendored 同步、native 探针、source probe 覆盖和复用文档,并通过 native 验证。
This commit is contained in:
2026-06-07 19:55:43 +08:00
parent d936e9f10c
commit 01495ee26b
12 changed files with 1276 additions and 2 deletions

View File

@@ -406,6 +406,24 @@ MAX_KINEMATICS_PROBE_SOURCES=(
"$WRAP_DIR/linuxcnc_max_kinematics_probe.cpp"
)
LINEARDELTA_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/lineardeltakins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_lineardelta_kinematics_probe.cpp"
)
ROTARYDELTA_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/rotarydeltakins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_rotarydelta_kinematics_probe.cpp"
)
SCORBOT_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/scorbot-kins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_scorbot_kinematics_probe.cpp"
)
TP_CORE_SOURCES=(
"$VENDOR_DIR/src/emc/tp/tp.c"
"$VENDOR_DIR/src/emc/tp/tc.c"
@@ -635,6 +653,27 @@ build_binary_target \
MAX_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_lineardelta_kinematics_probe \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe" \
TP_FLAGS \
LINEARDELTA_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_rotarydelta_kinematics_probe \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe" \
TP_FLAGS \
ROTARYDELTA_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_scorbot_kinematics_probe \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe" \
TP_FLAGS \
SCORBOT_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_kinematics_probe" \
@@ -755,6 +794,51 @@ else
"$BUILD_DIR/linuxcnc_max_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stderr.log"
LINEARDELTA_KINEMATICS_RUN_RC=$?
set -e
echo "$LINEARDELTA_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stderr.log"
ROTARYDELTA_KINEMATICS_RUN_RC=$?
set -e
echo "$ROTARYDELTA_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stderr.log"
SCORBOT_KINEMATICS_RUN_RC=$?
set -e
echo "$SCORBOT_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_tp_api_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_tp_api_probe" \
@@ -925,6 +1009,24 @@ build_object_target \
"$VENDOR_DIR/src/emc/kinematics/maxkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_lineardeltakins_source_probe \
"$BUILD_DIR/linuxcnc_lineardeltakins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/lineardeltakins.c" \
TP_FLAGS
build_object_target \
linuxcnc_rotarydeltakins_source_probe \
"$BUILD_DIR/linuxcnc_rotarydeltakins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/rotarydeltakins.c" \
TP_FLAGS
build_object_target \
linuxcnc_scorbot_kins_source_probe \
"$BUILD_DIR/linuxcnc_scorbot_kins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/scorbot-kins.c" \
TP_FLAGS
build_object_target \
linuxcnc_interp_convert_source_probe \
"$BUILD_DIR/linuxcnc_interp_convert_source_probe.o" \