diff --git a/check-linuxcnc-inputs.sh b/check-linuxcnc-inputs.sh index 2102773..b30a7de 100755 --- a/check-linuxcnc-inputs.sh +++ b/check-linuxcnc-inputs.sh @@ -611,6 +611,59 @@ if [[ -n "$manifest" && "$require_complete" == "--require-kinematics-complete" ] exit 1 fi + required_corexy_asset_sources=( + configs/sim/axis/corexy/corexy_by_kins.ini + configs/sim/axis/corexy/corexy_by_hal.ini + configs/sim/axis/corexy/corexy_base.inc + configs/sim/axis/corexy/3joint_xyz.hal + configs/sim/axis/corexy/corexy_by_hal.hal + configs/sim/axis/corexy/corexy.halshow + configs/sim/axis/corexy/README + configs/sim/axis/corexy/corexy_by_kins.txt + configs/sim/axis/corexy/corexy_by_hal.txt + ) + missing_corexy_asset_sources=() + for source in "${required_corexy_asset_sources[@]}"; do + if ! printf '%s\n' "${manifest_asset_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_corexy_asset_sources+=("$source") + fi + done + if ((${#missing_corexy_asset_sources[@]} > 0)); then + echo "manifest does not cover LinuxCNC CoreXY kinematics INI/HAL/demo sources as asset sources: $manifest" >&2 + printf 'missing CoreXY kinematics asset source: %s\n' "${missing_corexy_asset_sources[@]}" >&2 + exit 1 + fi + + required_corexy_component_source=src/hal/components/corexy_by_hal.comp + if ! printf '%s\n' "${manifest_component_sources[@]}" | grep -Fx -- "$required_corexy_component_source" >/dev/null; then + echo "manifest does not cover LinuxCNC CoreXY HAL component source: $manifest" >&2 + printf 'missing CoreXY component source: %s\n' "$required_corexy_component_source" >&2 + exit 1 + fi + + required_corexy_generated_source=src/objects/hal/components/corexy_by_hal.c + if ! printf '%s\n' "${manifest_generated_sources[@]}" | grep -Fx -- "$required_corexy_generated_source" >/dev/null; then + echo "manifest does not cover LinuxCNC generated CoreXY HAL component source: $manifest" >&2 + printf 'missing generated CoreXY component source: %s\n' "$required_corexy_generated_source" >&2 + exit 1 + fi + + required_corexy_metadata_sources=( + src/objects/hal/components/corexy_by_hal.mak + src/objects/man/man9/corexy_by_hal.9.adoc + ) + missing_corexy_metadata_sources=() + for source in "${required_corexy_metadata_sources[@]}"; do + if ! printf '%s\n' "${manifest_metadata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_corexy_metadata_sources+=("$source") + fi + done + if ((${#missing_corexy_metadata_sources[@]} > 0)); then + echo "manifest does not cover LinuxCNC CoreXY HAL component metadata sources: $manifest" >&2 + printf 'missing CoreXY metadata source: %s\n' "${missing_corexy_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 81212f4..eb7df94 100644 --- a/linuxcnc-kinematics-source-files.txt +++ b/linuxcnc-kinematics-source-files.txt @@ -52,6 +52,15 @@ asset:configs/sim/axis/ldelta_demo_es.txt:linear delta Spanish demo notes adjace asset:configs/sim/axis/rdelta.ini:rotary delta KINEMATICS source for LinuxCNC rotarydeltakins coverage asset:lib/hallib/sim_ldelta.hal:linear delta HALFILE source wiring lineardeltakins L and R pins asset:lib/hallib/sim_rdelta.hal:rotary delta HALFILE source wiring rotarydeltakins geometry pins +asset:configs/sim/axis/corexy/corexy_by_kins.ini:CoreXY KINEMATICS source for LinuxCNC corexykins coverage +asset:configs/sim/axis/corexy/corexy_by_hal.ini:CoreXY HAL-component comparison configuration adjacent to corexykins coverage +asset:configs/sim/axis/corexy/corexy_base.inc:CoreXY shared INI include with common axis and EMC settings +asset:configs/sim/axis/corexy/3joint_xyz.hal:CoreXY HALFILE source referenced by corexy_by_kins and corexy_by_hal INI files +asset:configs/sim/axis/corexy/corexy_by_hal.hal:CoreXY HALFILE source wiring the corexy_by_hal component +asset:configs/sim/axis/corexy/corexy.halshow:CoreXY halshow asset referenced by the shared INI include +asset:configs/sim/axis/corexy/README:CoreXY configuration source notes adjacent to corexykins coverage +asset:configs/sim/axis/corexy/corexy_by_kins.txt:CoreXY kinematics demo notes adjacent to corexy_by_kins INI +asset:configs/sim/axis/corexy/corexy_by_hal.txt:CoreXY HAL-component demo notes adjacent to corexy_by_hal INI 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 @@ -191,12 +200,14 @@ component:src/hal/components/millturn.comp:millturn switchable kinematics compon component:src/hal/components/xyzab_tdr_kins.comp:XYZAB table dual rotary switchkins component source used by M428/M429/M430 coverage 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/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 generated:src/objects/hal/components/xyzab_tdr_kins.c:halcompile-generated XYZAB table dual rotary switchkins C source used by the adapter 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/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 @@ -222,6 +233,8 @@ metadata:docs/src/man/man1/scaragui.1.adoc:LinuxCNC SCARA vismach GUI command do metadata:docs/src/man/man1/xyzab-tdr-gui.1.adoc:LinuxCNC XYZAB table dual rotary vismach GUI command documentation source metadata:docs/src/man/man1/xyzac-trt-gui.1.adoc:LinuxCNC XYZAC TRT vismach GUI command documentation source metadata:docs/src/man/man1/xyzbc-trt-gui.1.adoc:LinuxCNC XYZBC TRT vismach GUI command documentation source +metadata:src/objects/hal/components/corexy_by_hal.mak:halcompile-generated CoreXY component make metadata +metadata:src/objects/man/man9/corexy_by_hal.9.adoc:halcompile-generated CoreXY 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 4864df8..85fdcea 100755 --- a/test-native.sh +++ b/test-native.sh @@ -189,6 +189,23 @@ grep -Fx "configs/sim/axis/rdelta.ini" "$kinematics_manifest_sources" >/dev/null grep -Fx "lib/hallib/sim_ldelta.hal" "$kinematics_manifest_sources" >/dev/null grep -Fx "lib/hallib/sim_rdelta.hal" "$kinematics_manifest_sources" >/dev/null grep -F 'manifest does not cover LinuxCNC delta kinematics INI/HAL demo sources as asset sources' check-linuxcnc-inputs.sh >/dev/null +grep -Fx "configs/sim/axis/corexy/corexy_by_kins.ini" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/corexy_by_hal.ini" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/corexy_base.inc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/3joint_xyz.hal" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/corexy_by_hal.hal" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/corexy.halshow" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/README" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/corexy_by_kins.txt" "$kinematics_manifest_sources" >/dev/null +grep -Fx "configs/sim/axis/corexy/corexy_by_hal.txt" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/hal/components/corexy_by_hal.comp" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/hal/components/corexy_by_hal.c" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/hal/components/corexy_by_hal.mak" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/corexy_by_hal.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -F 'manifest does not cover LinuxCNC CoreXY kinematics INI/HAL/demo sources as asset sources' check-linuxcnc-inputs.sh >/dev/null +grep -F 'manifest does not cover LinuxCNC CoreXY HAL component source' check-linuxcnc-inputs.sh >/dev/null +grep -F 'manifest does not cover LinuxCNC generated CoreXY HAL component source' check-linuxcnc-inputs.sh >/dev/null +grep -F 'manifest does not cover LinuxCNC CoreXY 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 @@ -253,7 +270,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 6 ]]; then +if [[ "$(grep -Ec '^src/objects/hal/components/.*\.mak$' "$kinematics_manifest_sources")" -ne 7 ]]; then echo "expected kinematics manifest to cover all generated halcompile make metadata sources" >&2 exit 1 fi @@ -279,8 +296,8 @@ 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 10 ]]; then - echo "expected kinematics manifest to cover all LinuxCNC README sources adjacent to switchkins INI files" >&2 +if [[ "$(grep -Ec '/README$' "$kinematics_manifest_sources")" -ne 11 ]]; then + echo "expected kinematics manifest to cover all tracked LinuxCNC README sources adjacent to kinematics INI files" >&2 exit 1 fi grep -Fx "src/hal/user_comps/vismach/5axisgui.py" "$kinematics_manifest_sources" >/dev/null