按源验证当前位置命名参数

This commit is contained in:
cnc
2026-06-06 08:51:20 +08:00
parent de5f28f7ee
commit 92562db29f
3 changed files with 50 additions and 1 deletions

View File

@@ -915,9 +915,11 @@ INI_FILE_NAME="$ini_named_parameter_file" CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS27
# and close_and_downcase() accept whitespace around bracketed word values.
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_word_bracket_whitespace.ngc >"$output_dir/cnc_sim_linuxcnc_word_bracket_whitespace.json"
# Source basis: LinuxCNC src/emc/rs274ngc/interp_namedparams.cc lookup_named_param()
# and init_readonly_param() expose modal/unit/feed/spindle readonly parameters.
# and init_readonly_param() expose modal/unit/feed/spindle readonly parameters
# plus current-position #<_x> through #<_w> aliases.
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_readonly_named_parameters.ngc >"$output_dir/cnc_sim_linuxcnc_readonly_named_parameters.json"
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_readonly_named_parameters_extra.ngc >"$output_dir/cnc_sim_linuxcnc_readonly_named_parameters_extra.json"
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_readonly_named_current_position.ngc >"$output_dir/cnc_sim_linuxcnc_readonly_named_current_position.json"
# Source basis: LinuxCNC src/emc/rs274ngc/interp_array.cc defines
# required/readonly numbered parameters; interp_internal.cc set_probe_data()
# and interp_convert.cc update probe, tool, G28/G30, G92, G5X, and current
@@ -2623,6 +2625,23 @@ expected_readonly_moves = [
if readonly_moves != expected_readonly_moves:
raise SystemExit(f"unexpected LinuxCNC readonly named parameter motions: {readonly_moves!r}")
readonly_current = load("cnc_sim_linuxcnc_readonly_named_current_position.json")
if not any(
event["type"] == "linear-feed" and
event["line"] == 6 and
event["end"]["x"] == 10 and
event["end"]["y"] == 2 and
event["end"]["z"] == 3 and
event["end"]["a"] == 4 and
event["end"]["b"] == 5 and
event["end"]["c"] == 6 and
event["end"]["u"] == 7 and
event["end"]["v"] == 8 and
event["end"]["w"] == 9
for event in readonly_current
):
raise SystemExit("missing LinuxCNC readonly named current-position branch motion")
numbered_parameters = load("cnc_sim_linuxcnc_numbered_parameters.json")
if not any(
event["type"] == "linear-feed" and
@@ -3151,6 +3170,7 @@ echo "dumped $output_dir/cnc_sim_linuxcnc_named_parameter_normalization.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_ini_named_parameter.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_readonly_named_parameters.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_readonly_named_parameters_extra.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_readonly_named_current_position.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_numbered_parameters.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_rotary_probe_numbered_parameters.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_multi_rotary_probe_numbered_parameters.json"