继续推进:用LinuxCNC配置生成switchkins测试

结论:M428/M429/M430 的配置匹配测试已从手写列表改为由 LinuxCNC INI/MACHINE/KINEMATICS/HALFILE 生成,native 与 source-link 验证通过。
This commit is contained in:
cnc
2026-05-30 10:10:49 +08:00
parent de273bf830
commit c2d1aa6fe3
4 changed files with 141 additions and 61 deletions

View File

@@ -11321,64 +11321,7 @@ int main() {
int m430_type;
};
const SourceBackedConfigCase source_cases[] = {
{"config", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
{"config", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
{"config", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
{"config",
"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini",
0,
1,
2},
{"config",
"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini",
0,
1,
2},
{"config", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
{"config", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
{"config", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
{"config", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
{"machine", "Sim-5Axis Bridge Mill (xyzbcw)", 0, 1, 2},
{"machine", "sim-xyzab-tdr-kins (switchkins)", 1, 0, -1},
{"machine", "sim-xyzac-trt-kins (switchkins)", 1, 0, 2},
{"machine", "sim-xyzbc-trt-kins (switchkins)", 1, 0, 2},
{"machine", "xyzacb-trsrn (switchkins)", 0, 1, 2},
{"machine", "xyzbca-trsrn (switchkins)", 0, 1, 2},
{"machine", "hexapod (switchkins)", 0, 1, 2},
{"machine", "melfa (mm)", 0, 1, 2},
{"machine", "millturn (mm)", 0, 1, -1},
{"machine", "PUMA (pumakins,switchkins)", 0, 1, 2},
{"machine", "puma_cube.ini (pumakins)", 0, 1, 2},
{"machine", "puma560 (switchkins) (inch)", 0, 1, 2},
{"machine", "SCARA (genserkins,switchkins)", 0, 1, 2},
{"kinematics", "5axiskins", 0, 1, 2},
{"kinematics", "xyzab_tdr_kins", 1, 0, -1},
{"kinematics", "xyzac-trt-kins sparm=identityfirst", 1, 0, 2},
{"kinematics", "xyzbc-trt-kins sparm=identityfirst", 1, 0, 2},
{"kinematics", "xyzacb_trsrn", 0, 1, 2},
{"kinematics", "xyzbca_trsrn", 0, 1, 2},
{"kinematics", "genhexkins", 0, 1, 2},
{"kinematics", "genserkins", 0, 1, 2},
{"kinematics", "millturn", 0, 1, -1},
{"kinematics", "pumakins", 0, 1, 2},
{"kinematics", "scarakins coordinates=xyzcab", 0, 1, 2},
{"halfile", "5axisgui.hal", 0, 1, 2},
{"halfile", "5axisgui", 0, 1, 2},
{"halfile", "kinematics.hal", 0, 1, 2},
{"hal_file", "melfa_dh.hal", 0, 1, 2},
{"hal_file", "melfa_dh", 0, 1, 2},
{"hal_file", "millturn.hal", 0, 1, -1},
{"halfile", "puma_dh.hal", 0, 1, 2},
{"halfile", "puma_dh", 0, 1, 2},
{"halfile", "puma560_dh.hal", 0, 1, 2},
{"halfile", "puma560_dh", 0, 1, 2},
#include "linuxcnc_switchkins_remap_config_cases.inc"
};
for (const SourceBackedConfigCase &source_case : source_cases) {
const std::string json = std::string("{\"backend\":\"smoke\",\"") +

View File

@@ -0,0 +1,67 @@
// Generated by ./generate-linuxcnc-switchkins-remap-table.sh --config-cases.
// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, and non-LIB HALFILE entries
// for M428/M429/M430 remap #<kinstype> assignments.
{"config", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
{"machine", "Sim-5Axis Bridge Mill (xyzbcw)", 0, 1, 2},
{"kinematics", "5axiskins coordinates=xyzbcwy", 0, 1, 2},
{"halfile", "5axisgui.hal", 0, 1, 2},
{"halfile", "5axisgui", 0, 1, 2},
{"hal_file", "5axisgui.hal", 0, 1, 2},
{"hal_file", "5axisgui", 0, 1, 2},
{"config", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
{"machine", "sim-xyzab-tdr-kins (switchkins)", 1, 0, -1},
{"kinematics", "xyzab_tdr_kins", 1, 0, -1},
{"config", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
{"machine", "sim-xyzac-trt-kins (switchkins)", 1, 0, 2},
{"kinematics", "xyzac-trt-kins sparm=identityfirst", 1, 0, 2},
{"config", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
{"machine", "sim-xyzbc-trt-kins (switchkins)", 1, 0, 2},
{"kinematics", "xyzbc-trt-kins sparm=identityfirst", 1, 0, 2},
{"config", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
{"machine", "xyzacb-trsrn (switchkins)", 0, 1, 2},
{"kinematics", "xyzacb_trsrn", 0, 1, 2},
{"config", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
{"machine", "xyzbca-trsrn (switchkins)", 0, 1, 2},
{"kinematics", "xyzbca_trsrn", 0, 1, 2},
{"config", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
{"machine", "hexapod (switchkins)", 0, 1, 2},
{"kinematics", "genhexkins", 0, 1, 2},
{"halfile", "kinematics.hal", 0, 1, 2},
{"halfile", "kinematics", 0, 1, 2},
{"hal_file", "kinematics.hal", 0, 1, 2},
{"hal_file", "kinematics", 0, 1, 2},
{"config", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
{"machine", "melfa (mm)", 0, 1, 2},
{"kinematics", "genserkins", 0, 1, 2},
{"halfile", "melfa_dh.hal", 0, 1, 2},
{"halfile", "melfa_dh", 0, 1, 2},
{"hal_file", "melfa_dh.hal", 0, 1, 2},
{"hal_file", "melfa_dh", 0, 1, 2},
{"config", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
{"machine", "millturn (mm)", 0, 1, -1},
{"kinematics", "millturn", 0, 1, -1},
{"halfile", "millturn.hal", 0, 1, -1},
{"halfile", "millturn", 0, 1, -1},
{"hal_file", "millturn.hal", 0, 1, -1},
{"hal_file", "millturn", 0, 1, -1},
{"config", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
{"machine", "PUMA (pumakins,switchkins)", 0, 1, 2},
{"kinematics", "pumakins", 0, 1, 2},
{"halfile", "puma_dh.hal", 0, 1, 2},
{"halfile", "puma_dh", 0, 1, 2},
{"hal_file", "puma_dh.hal", 0, 1, 2},
{"hal_file", "puma_dh", 0, 1, 2},
{"config", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
{"machine", "puma_cube.ini (pumakins)", 0, 1, 2},
{"config", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
{"machine", "puma560 (switchkins) (inch)", 0, 1, 2},
{"halfile", "puma560_dh.hal", 0, 1, 2},
{"halfile", "puma560_dh", 0, 1, 2},
{"hal_file", "puma560_dh.hal", 0, 1, 2},
{"hal_file", "puma560_dh", 0, 1, 2},
{"config", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
{"config", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
{"machine", "SCARA (genserkins,switchkins)", 0, 1, 2},
{"kinematics", "scarakins coordinates=xyzcab", 0, 1, 2},
{"config", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
{"config", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},