按源验证当前位置命名参数
This commit is contained in:
@@ -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.
|
# 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"
|
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()
|
# 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.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_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
|
# Source basis: LinuxCNC src/emc/rs274ngc/interp_array.cc defines
|
||||||
# required/readonly numbered parameters; interp_internal.cc set_probe_data()
|
# required/readonly numbered parameters; interp_internal.cc set_probe_data()
|
||||||
# and interp_convert.cc update probe, tool, G28/G30, G92, G5X, and current
|
# 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:
|
if readonly_moves != expected_readonly_moves:
|
||||||
raise SystemExit(f"unexpected LinuxCNC readonly named parameter motions: {readonly_moves!r}")
|
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")
|
numbered_parameters = load("cnc_sim_linuxcnc_numbered_parameters.json")
|
||||||
if not any(
|
if not any(
|
||||||
event["type"] == "linear-feed" and
|
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_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.json"
|
||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_readonly_named_parameters_extra.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_numbered_parameters.json"
|
||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_rotary_probe_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"
|
echo "dumped $output_dir/cnc_sim_linuxcnc_multi_rotary_probe_numbered_parameters.json"
|
||||||
|
|||||||
@@ -887,6 +887,9 @@ CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
|||||||
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||||
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_readonly_named_parameters_extra.ngc \
|
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_readonly_named_parameters_extra.ngc \
|
||||||
>"$output_dir/cnc_sim_linuxcnc_source_readonly_named_parameters_extra.json"
|
>"$output_dir/cnc_sim_linuxcnc_source_readonly_named_parameters_extra.json"
|
||||||
|
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||||
|
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_readonly_named_current_position.ngc \
|
||||||
|
>"$output_dir/cnc_sim_linuxcnc_source_readonly_named_current_position.json"
|
||||||
if CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
if CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||||
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_readonly_named_parameter_assign_error.ngc \
|
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_readonly_named_parameter_assign_error.ngc \
|
||||||
>"$output_dir/cnc_sim_linuxcnc_source_readonly_named_parameter_assign_error.json" 2>"$output_dir/cnc_sim_linuxcnc_source_readonly_named_parameter_assign_error.err"; then
|
>"$output_dir/cnc_sim_linuxcnc_source_readonly_named_parameter_assign_error.json" 2>"$output_dir/cnc_sim_linuxcnc_source_readonly_named_parameter_assign_error.err"; then
|
||||||
@@ -3381,6 +3384,23 @@ expected_readonly_common_moves = [
|
|||||||
if readonly_common_moves != expected_readonly_common_moves:
|
if readonly_common_moves != expected_readonly_common_moves:
|
||||||
raise SystemExit(f"unexpected source-linked readonly named parameter motions: {readonly_common_moves!r}")
|
raise SystemExit(f"unexpected source-linked readonly named parameter motions: {readonly_common_moves!r}")
|
||||||
|
|
||||||
|
readonly_current = json.loads((OUTPUT_DIR / "cnc_sim_linuxcnc_source_readonly_named_current_position.json").read_text())
|
||||||
|
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 source-linked readonly named current-position branch motion")
|
||||||
|
|
||||||
readonly_named = json.loads((OUTPUT_DIR / "cnc_sim_linuxcnc_source_readonly_named_parameters_extra.json").read_text())
|
readonly_named = json.loads((OUTPUT_DIR / "cnc_sim_linuxcnc_source_readonly_named_parameters_extra.json").read_text())
|
||||||
if not any(
|
if not any(
|
||||||
event["type"] == "linear-feed" and
|
event["type"] == "linear-feed" and
|
||||||
@@ -4172,6 +4192,7 @@ echo "dumped $output_dir/cnc_sim_linuxcnc_source_named_parameter_normalization.j
|
|||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_source_ini_named_parameter.json"
|
echo "dumped $output_dir/cnc_sim_linuxcnc_source_ini_named_parameter.json"
|
||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_source_readonly_named_parameters.json"
|
echo "dumped $output_dir/cnc_sim_linuxcnc_source_readonly_named_parameters.json"
|
||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_source_readonly_named_parameters_extra.json"
|
echo "dumped $output_dir/cnc_sim_linuxcnc_source_readonly_named_parameters_extra.json"
|
||||||
|
echo "dumped $output_dir/cnc_sim_linuxcnc_source_readonly_named_current_position.json"
|
||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_source_value_returned.json"
|
echo "dumped $output_dir/cnc_sim_linuxcnc_source_value_returned.json"
|
||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_source_call_level.json"
|
echo "dumped $output_dir/cnc_sim_linuxcnc_source_call_level.json"
|
||||||
echo "dumped $output_dir/cnc_sim_linuxcnc_source_exists_word_value.json"
|
echo "dumped $output_dir/cnc_sim_linuxcnc_source_exists_word_value.json"
|
||||||
|
|||||||
8
tests/gcode/linuxcnc_readonly_named_current_position.ngc
Normal file
8
tests/gcode/linuxcnc_readonly_named_current_position.ngc
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
G21 G90 G17
|
||||||
|
(Source basis: LinuxCNC src/emc/rs274ngc/interp_namedparams.cc maps readonly #<_x> through #<_w> aliases to current X/Y/Z/A/B/C/U/V/W positions.)
|
||||||
|
F100
|
||||||
|
G1 X1 Y2 Z3 A4 B5 C6 U7 V8 W9
|
||||||
|
O10 if [[#<_x> EQ 1] AND [#<_y> EQ 2] AND [#<_z> EQ 3] AND [#<_a> EQ 4] AND [#<_b> EQ 5] AND [#<_c> EQ 6] AND [#<_u> EQ 7] AND [#<_v> EQ 8] AND [#<_w> EQ 9]]
|
||||||
|
G1 X10
|
||||||
|
O10 endif
|
||||||
|
M30
|
||||||
Reference in New Issue
Block a user