按建议继续完成后续工作
结论:upstream rs274 side-by-side 基线已扩展到 threading/rigid tap canonical 调用;完整 native 验证已通过。
This commit is contained in:
@@ -111,10 +111,10 @@ The current fixture expectations validate standalone behavior against both the
|
|||||||
vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for
|
vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for
|
||||||
parser/conversion, offsets, feed-control, comment/logging, numbered-parameter,
|
parser/conversion, offsets, feed-control, comment/logging, numbered-parameter,
|
||||||
spindle-orient, file-open reset, file-finish, tool-reload, and O-word
|
spindle-orient, file-open reset, file-finish, tool-reload, and O-word
|
||||||
subroutine fixtures, plus the comparable canonical runtime edge calls.
|
subroutine fixtures, plus threading/rigid tap and the comparable canonical
|
||||||
Fixtures that depend on standalone-only runtime adapters, HAL/INI/tool table
|
runtime edge calls. Fixtures that depend on standalone-only runtime adapters,
|
||||||
setup, upstream `rs274` output gaps such as `WAIT`, or richer machine session
|
HAL/INI/tool table setup, upstream `rs274` output gaps such as `WAIT`, or
|
||||||
state still need dedicated native LinuxCNC baselines.
|
richer machine session state still need dedicated native LinuxCNC baselines.
|
||||||
|
|
||||||
The kinematics probes currently cover LinuxCNC identity/trivial kinematics,
|
The kinematics probes currently cover LinuxCNC identity/trivial kinematics,
|
||||||
the switchable `5axiskins` XYZBCW bridge-mill model, and the TRT `xyzac`/`xyzbc`
|
the switchable `5axiskins` XYZBCW bridge-mill model, and the TRT `xyzac`/`xyzbc`
|
||||||
|
|||||||
@@ -69,9 +69,9 @@ semantic rewrites:
|
|||||||
path. The upstream `rs274` side-by-side baseline now covers simple motion,
|
path. The upstream `rs274` side-by-side baseline now covers simple motion,
|
||||||
offsets, feed-control, comment/logging, numbered-parameter, spindle-orient,
|
offsets, feed-control, comment/logging, numbered-parameter, spindle-orient,
|
||||||
file-open reset, file-finish, tool-reload, and O-word subroutine fixtures;
|
file-open reset, file-finish, tool-reload, and O-word subroutine fixtures;
|
||||||
it also covers comparable canonical runtime edge calls. Adapter-heavy
|
it also covers threading/rigid tap and comparable canonical runtime edge
|
||||||
fixtures and upstream `rs274` output gaps such as `WAIT` still need dedicated
|
calls. Adapter-heavy fixtures and upstream `rs274` output gaps such as
|
||||||
native LinuxCNC baselines.
|
`WAIT` still need dedicated native LinuxCNC baselines.
|
||||||
|
|
||||||
## Current Drift Conclusion
|
## Current Drift Conclusion
|
||||||
|
|
||||||
|
|||||||
@@ -507,12 +507,12 @@ Current verified progress:
|
|||||||
native LinuxCNC canonical output for simple motion, offsets, feed-control,
|
native LinuxCNC canonical output for simple motion, offsets, feed-control,
|
||||||
comment/logging, numbered-parameter, spindle-orient, file-finish, and
|
comment/logging, numbered-parameter, spindle-orient, file-finish, and
|
||||||
tool-reload fixtures. It now also includes file-open reset and O-word
|
tool-reload fixtures. It now also includes file-open reset and O-word
|
||||||
subroutine fixture coverage, plus comparable canonical runtime edge calls.
|
subroutine fixture coverage, threading/rigid tap coverage, plus comparable
|
||||||
Native output is filtered to the event classes each standalone fixture
|
canonical runtime edge calls. Native output is filtered to the event classes
|
||||||
explicitly expects, while upstream `rs274` output gaps such as `WAIT` remain
|
each standalone fixture explicitly expects, while upstream `rs274` output
|
||||||
covered by the standalone harness rather than being treated as side-by-side
|
gaps such as `WAIT` remain covered by the standalone harness rather than
|
||||||
evidence. The comparison does not introduce a project-authored CNC semantics
|
being treated as side-by-side evidence. The comparison does not introduce a
|
||||||
oracle.
|
project-authored CNC semantics oracle.
|
||||||
- `tests/fixtures/gcode_errors/g1_zero_feed.ngc` and
|
- `tests/fixtures/gcode_errors/g1_zero_feed.ngc` and
|
||||||
`tests/fixtures/canon_errors/g1_zero_feed.expected` pin the negative
|
`tests/fixtures/canon_errors/g1_zero_feed.expected` pin the negative
|
||||||
`G1` zero-feed case. The source basis is LinuxCNC
|
`G1` zero-feed case. The source basis is LinuxCNC
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ FIXTURES=(
|
|||||||
percent_file_finish
|
percent_file_finish
|
||||||
position_params
|
position_params
|
||||||
spindle_orient
|
spindle_orient
|
||||||
|
threading_sync
|
||||||
tool_reload
|
tool_reload
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -224,6 +225,33 @@ normalize_standalone_events() {
|
|||||||
next
|
next
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (line ~ /^START_SPEED_FEED_SYNCH /) {
|
||||||
|
split(line, fields, /[[:space:]]+/)
|
||||||
|
for (i in fields) {
|
||||||
|
split(fields[i], pair, "=")
|
||||||
|
values[pair[1]] = pair[2]
|
||||||
|
}
|
||||||
|
print "START_SPEED_FEED_SYNCH|" norm(values["feed_per_revolution"]) "|" values["velocity_mode"]
|
||||||
|
delete values
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line == "STOP_SPEED_FEED_SYNCH") {
|
||||||
|
print line
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line ~ /^RIGID_TAP /) {
|
||||||
|
split(line, fields, /[[:space:]]+/)
|
||||||
|
for (i in fields) {
|
||||||
|
split(fields[i], pair, "=")
|
||||||
|
values[pair[1]] = pair[2]
|
||||||
|
}
|
||||||
|
print "RIGID_TAP|" norm(values["x"]) "|" norm(values["y"]) "|" norm(values["z"])
|
||||||
|
delete values
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
# Upstream rs274 does not emit saicanon WAIT for the M66 case.
|
# Upstream rs274 does not emit saicanon WAIT for the M66 case.
|
||||||
if (line ~ /^WAIT /) {
|
if (line ~ /^WAIT /) {
|
||||||
next
|
next
|
||||||
@@ -476,6 +504,25 @@ normalize_upstream_rs274_output() {
|
|||||||
next
|
next
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (line ~ /^START_SPEED_FEED_SYNC\(/) {
|
||||||
|
args = args_of(line)
|
||||||
|
split(args, values, ",")
|
||||||
|
print "START_SPEED_FEED_SYNCH|" norm(values[1]) "|" trim(values[2])
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line == "STOP_SPEED_FEED_SYNCH()") {
|
||||||
|
print "STOP_SPEED_FEED_SYNCH"
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line ~ /^RIGID_TAP\(/) {
|
||||||
|
args = args_of(line)
|
||||||
|
split(args, values, ",")
|
||||||
|
print "RIGID_TAP|" norm(values[1]) "|" norm(values[2]) "|" norm(values[3])
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
if (line ~ /^SET_FEED_MODE\(/) {
|
if (line ~ /^SET_FEED_MODE\(/) {
|
||||||
args = args_of(line)
|
args = args_of(line)
|
||||||
split(args, values, ",")
|
split(args, values, ",")
|
||||||
|
|||||||
Reference in New Issue
Block a user