fix(LamNI): don't auto-retry lsamrot moves aborted by stop() #281

Merged
holler merged 1 commits from fix/lsamrot_stop_retry into main 2026-07-28 11:54:11 +02:00
Member

move_and_finish()'s spurious-trip retry (added in 1f85106) couldn't tell a
genuine Galil safety-thread trip apart from a user/scan-initiated stop()
(e.g. Ctrl+C): an aborted move looked like an incomplete move either way,
so the abort got silently undone by resetting the error latches and
re-issuing the original move to the same target.

Track stop() requests on a per-motor threading.Event, cleared at the start
of each move() and checked (twice, since reset_axis_errors() itself takes
a few round-trips) before the retry branch fires, so an aborted move is
now reported as a failure instead of being retried.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

move_and_finish()'s spurious-trip retry (added in 1f85106) couldn't tell a genuine Galil safety-thread trip apart from a user/scan-initiated stop() (e.g. Ctrl+C): an aborted move looked like an incomplete move either way, so the abort got silently undone by resetting the error latches and re-issuing the original move to the same target. Track stop() requests on a per-motor threading.Event, cleared at the start of each move() and checked (twice, since reset_axis_errors() itself takes a few round-trips) before the retry branch fires, so an aborted move is now reported as a failure instead of being retried. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
holler added 1 commit 2026-07-28 11:37:46 +02:00
fix(LamNI): don't auto-retry lsamrot moves aborted by stop()
CI for csaxs_bec / test (pull_request) Successful in 1m50s
Read the Docs Deploy Trigger / trigger-rtd-webhook (push) Successful in 2s
CI for csaxs_bec / test (push) Successful in 1m57s
89c5ed1c9e
move_and_finish()'s spurious-trip retry (added in 1f85106) couldn't tell a
genuine Galil safety-thread trip apart from a user/scan-initiated stop()
(e.g. Ctrl+C): an aborted move looked like an incomplete move either way,
so the abort got silently undone by resetting the error latches and
re-issuing the original move to the same target.

Track stop() requests on a per-motor threading.Event, cleared at the start
of each move() and checked (twice, since reset_axis_errors() itself takes
a few round-trips) before the retry branch fires, so an aborted move is
now reported as a failure instead of being retried.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
holler merged commit 89c5ed1c9e into main 2026-07-28 11:54:11 +02:00
holler deleted branch fix/lsamrot_stop_retry 2026-07-28 11:54:11 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bec/csaxs_bec#281