From f98aa9ebb1dad265346a414820f07d15672658d0 Mon Sep 17 00:00:00 2001 From: cnc Date: Mon, 1 Jun 2026 21:08:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E8=BD=AE=E5=8F=AA=E6=8E=A8=E8=BF=9B?= =?UTF-8?q?=E5=90=88=E7=90=86=E9=80=82=E9=87=8F=E7=9A=84=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=96=87=E3=80=81=E7=A6=81=E6=AD=A2=E9=A1=BA=E6=89=8B=E6=89=A9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20smoke=EF=BC=9A=E8=A1=A5=E5=85=85gantry?= =?UTF-8?q?=E8=BF=90=E5=8A=A8=E5=AD=A6=E6=BA=90=E6=B8=85=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:第2组 kinematics manifest 补充 LinuxCNC gantry_mm 配置、HAL、tool table、README,以及 gantry HAL component 源/生成源/元数据,并在轻量 manifest 校验中固定这些 source coverage;native/source-link 均复用增量构建,没有触发慢编译。 --- check-linuxcnc-inputs.sh | 48 ++++++++++++++++++++++++++++ linuxcnc-kinematics-source-files.txt | 8 +++++ test-native.sh | 18 +++++++++-- 3 files changed, 71 insertions(+), 3 deletions(-) diff --git a/check-linuxcnc-inputs.sh b/check-linuxcnc-inputs.sh index 8cd7869..744734d 100755 --- a/check-linuxcnc-inputs.sh +++ b/check-linuxcnc-inputs.sh @@ -714,6 +714,54 @@ if [[ -n "$manifest" && "$require_complete" == "--require-kinematics-complete" ] exit 1 fi + required_gantry_asset_sources=( + configs/sim/axis/gantry/gantry_mm.ini + configs/sim/axis/gantry/gantry_mm.hal + configs/sim/axis/gantry/gantry_mm.tbl + configs/sim/axis/gantry/README + ) + missing_gantry_asset_sources=() + for source in "${required_gantry_asset_sources[@]}"; do + if ! printf '%s\n' "${manifest_asset_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_gantry_asset_sources+=("$source") + fi + done + if ((${#missing_gantry_asset_sources[@]} > 0)); then + echo "manifest does not cover LinuxCNC gantry metric INI/HAL/tool sources as asset sources: $manifest" >&2 + printf 'missing gantry metric asset source: %s\n' "${missing_gantry_asset_sources[@]}" >&2 + exit 1 + fi + + required_gantry_component_source=src/hal/components/gantry.comp + if ! printf '%s\n' "${manifest_component_sources[@]}" | grep -Fx -- "$required_gantry_component_source" >/dev/null; then + echo "manifest does not cover LinuxCNC gantry HAL component source: $manifest" >&2 + printf 'missing gantry component source: %s\n' "$required_gantry_component_source" >&2 + exit 1 + fi + + required_gantry_generated_source=src/objects/hal/components/gantry.c + if ! printf '%s\n' "${manifest_generated_sources[@]}" | grep -Fx -- "$required_gantry_generated_source" >/dev/null; then + echo "manifest does not cover LinuxCNC generated gantry HAL component source: $manifest" >&2 + printf 'missing generated gantry component source: %s\n' "$required_gantry_generated_source" >&2 + exit 1 + fi + + required_gantry_metadata_sources=( + src/objects/hal/components/gantry.mak + src/objects/man/man9/gantry.9.adoc + ) + missing_gantry_metadata_sources=() + for source in "${required_gantry_metadata_sources[@]}"; do + if ! printf '%s\n' "${manifest_metadata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_gantry_metadata_sources+=("$source") + fi + done + if ((${#missing_gantry_metadata_sources[@]} > 0)); then + echo "manifest does not cover LinuxCNC gantry HAL component metadata sources: $manifest" >&2 + printf 'missing gantry metadata source: %s\n' "${missing_gantry_metadata_sources[@]}" >&2 + exit 1 + fi + resolve_vismach_loadusr_source() { local command_name=$1 case "$command_name" in diff --git a/linuxcnc-kinematics-source-files.txt b/linuxcnc-kinematics-source-files.txt index 2bbda91..7c4a540 100644 --- a/linuxcnc-kinematics-source-files.txt +++ b/linuxcnc-kinematics-source-files.txt @@ -69,6 +69,10 @@ asset:configs/sim/axis/rose_engine/README:rose engine configuration source notes asset:configs/sim/tklinuxcnc/tripod.ini:TkLinuxCNC tripod KINEMATICS source for LinuxCNC tripodkins coverage asset:lib/hallib/tripodsim.hal:tripod HALFILE source wiring tripodkins geometry pins asset:configs/sim/tklinuxcnc/README:TkLinuxCNC configuration notes referencing tripod.ini +asset:configs/sim/axis/gantry/gantry_mm.ini:AXIS gantry metric KINEMATICS source using LinuxCNC trivkins BOTH coverage +asset:configs/sim/axis/gantry/gantry_mm.hal:AXIS gantry metric HALFILE source wiring four gantry joints +asset:configs/sim/axis/gantry/gantry_mm.tbl:AXIS gantry metric tool table source referenced by gantry_mm INI +asset:configs/sim/axis/gantry/README:AXIS gantry configuration source notes adjacent to gantry_mm coverage config:configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:XYZAB table dual rotary MACHINE/KINEMATICS and M428/M429 remap configuration source config:configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal:XYZAB table dual rotary POSTGUI_HALFILE source referenced by M428/M429 switchkins config config:configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:XYZAC TRT switchkins HAL parameter source used by M428 coverage @@ -209,6 +213,7 @@ component:src/hal/components/xyzab_tdr_kins.comp:XYZAB table dual rotary switchk component:src/hal/components/xyzacb_trsrn.comp:XYZACB transformation component source adjacent to LinuxCNC RTCP kinematics coverage component:src/hal/components/xyzbca_trsrn.comp:XYZBCA transformation component source adjacent to LinuxCNC RTCP kinematics coverage component:src/hal/components/corexy_by_hal.comp:CoreXY HAL component source adjacent to LinuxCNC corexykins coverage +component:src/hal/components/gantry.comp:LinuxCNC gantry HAL component source adjacent to gantry configuration coverage component:src/hal/components/matrixkins.comp:matrix kinematics component source for LinuxCNC kinematics completeness component:src/hal/components/userkins.comp:user kinematics component template source for LinuxCNC switchkins/user kinematics coverage generated:src/objects/hal/components/millturn.c:halcompile-generated millturn switchable kinematics C source used by millturn INI KINEMATICS @@ -216,6 +221,7 @@ generated:src/objects/hal/components/xyzab_tdr_kins.c:halcompile-generated XYZAB generated:src/objects/hal/components/xyzacb_trsrn.c:halcompile-generated XYZACB transformation C source generated:src/objects/hal/components/xyzbca_trsrn.c:halcompile-generated XYZBCA transformation C source generated:src/objects/hal/components/corexy_by_hal.c:halcompile-generated CoreXY HAL component C source +generated:src/objects/hal/components/gantry.c:halcompile-generated gantry HAL component C source generated:src/objects/hal/components/matrixkins.c:halcompile-generated matrix kinematics C source generated:src/objects/hal/components/userkins.c:halcompile-generated user kinematics C source header:src/emc/kinematics/cubic.h:cubic solver header @@ -245,6 +251,8 @@ metadata:src/objects/hal/components/corexy_by_hal.mak:halcompile-generated CoreX metadata:src/objects/man/man9/corexy_by_hal.9.adoc:halcompile-generated CoreXY component manpage source metadata:docs/src/man/man9/rosekins.9.adoc:LinuxCNC rosekins manpage source referenced by rose engine README metadata:docs/man/man9/tripodkins.9:LinuxCNC tripodkins generated manpage source aliasing kins documentation +metadata:src/objects/hal/components/gantry.mak:halcompile-generated gantry component make metadata +metadata:src/objects/man/man9/gantry.9.adoc:halcompile-generated gantry component manpage source metadata:src/objects/hal/components/matrixkins.mak:halcompile-generated matrixkins make metadata adjacent to generated kinematics source metadata:src/objects/hal/components/millturn.mak:halcompile-generated millturn make metadata adjacent to generated kinematics source metadata:src/objects/hal/components/userkins.mak:halcompile-generated userkins make metadata adjacent to generated kinematics source diff --git a/test-native.sh b/test-native.sh index 55148c9..a2953a5 100755 --- a/test-native.sh +++ b/test-native.sh @@ -220,6 +220,18 @@ grep -Fx "configs/sim/tklinuxcnc/README" "$kinematics_manifest_sources" >/dev/nu grep -Fx "docs/man/man9/tripodkins.9" "$kinematics_manifest_sources" >/dev/null grep -F 'manifest does not cover LinuxCNC tripod kinematics INI/HAL sources as asset sources' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not cover LinuxCNC tripodkins manpage source' check-linuxcnc-inputs.sh >/dev/null +grep -Fx "configs/sim/axis/gantry/gantry_mm.ini" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/gantry/gantry_mm.hal" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/gantry/gantry_mm.tbl" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/gantry/README" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/hal/components/gantry.comp" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/hal/components/gantry.c" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/hal/components/gantry.mak" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/gantry.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -F 'manifest does not cover LinuxCNC gantry metric INI/HAL/tool sources as asset sources' check-linuxcnc-inputs.sh >/dev/null +grep -F 'manifest does not cover LinuxCNC gantry HAL component source' check-linuxcnc-inputs.sh >/dev/null +grep -F 'manifest does not cover LinuxCNC generated gantry HAL component source' check-linuxcnc-inputs.sh >/dev/null +grep -F 'manifest does not cover LinuxCNC gantry HAL component metadata sources' check-linuxcnc-inputs.sh >/dev/null grep -Fx "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" "$kinematics_manifest_sources" >/dev/null grep -Fx "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" "$kinematics_manifest_sources" >/dev/null grep -Fx "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini" "$kinematics_manifest_sources" >/dev/null @@ -284,7 +296,7 @@ grep -Fx "src/objects/hal/components/xyzacb_trsrn.mak" "$kinematics_manifest_sou grep -Fx "src/objects/hal/components/xyzbca_trsrn.mak" "$kinematics_manifest_sources" >/dev/null grep -Fx "src/objects/hal/components/matrixkins.mak" "$kinematics_manifest_sources" >/dev/null grep -Fx "src/objects/hal/components/userkins.mak" "$kinematics_manifest_sources" >/dev/null -if [[ "$(grep -Ec '^src/objects/hal/components/.*\.mak$' "$kinematics_manifest_sources")" -ne 7 ]]; then +if [[ "$(grep -Ec '^src/objects/hal/components/.*\.mak$' "$kinematics_manifest_sources")" -ne 8 ]]; then echo "expected kinematics manifest to cover all generated halcompile make metadata sources" >&2 exit 1 fi @@ -298,7 +310,7 @@ grep -Fx "configs/sim/axis/vismach/melfa-sim/melfa.tbl" "$kinematics_manifest_so grep -Fx "configs/sim/axis/vismach/millturn/millturn.tbl" "$kinematics_manifest_sources" >/dev/null grep -Fx "configs/sim/axis/vismach/puma/puma.tbl" "$kinematics_manifest_sources" >/dev/null grep -Fx "configs/sim/qtaxis/non-trivial/scara/scara.tbl" "$kinematics_manifest_sources" >/dev/null -if [[ "$(grep -Ec '\.tbl$' "$kinematics_manifest_sources")" -ne 10 ]]; then +if [[ "$(grep -Ec '\.tbl$' "$kinematics_manifest_sources")" -ne 11 ]]; then echo "expected kinematics manifest to cover all resolvable LinuxCNC TOOL_TABLE switchkins sources" >&2 exit 1 fi @@ -310,7 +322,7 @@ grep -Fx "configs/sim/axis/vismach/melfa-sim/README" "$kinematics_manifest_sourc grep -Fx "configs/sim/axis/vismach/millturn/README" "$kinematics_manifest_sources" >/dev/null grep -Fx "configs/sim/axis/vismach/puma/README" "$kinematics_manifest_sources" >/dev/null grep -Fx "configs/sim/axis/vismach/scara/README" "$kinematics_manifest_sources" >/dev/null -if [[ "$(grep -Ec '/README$' "$kinematics_manifest_sources")" -ne 13 ]]; then +if [[ "$(grep -Ec '/README$' "$kinematics_manifest_sources")" -ne 14 ]]; then echo "expected kinematics manifest to cover all tracked LinuxCNC README sources adjacent to kinematics INI files" >&2 exit 1 fi