Detector, collimator, post-tube in/out, move home/yag, the backlight button
and the sample exchange/alignment/data collection transitions blocked the
GUI thread for up to ~20s per move.
- MoveWorker (same thread as the collection worker, so sequences and
collections can not overlap) runs (label, callable) steps with a progress
dialog; all controls are locked meanwhile (no nudges, zoom stays usable)
- move functions raise MoveError instead of showing dialogs; the GUI shows
the message when the sequence ends
- abort stops all motors (motor record STOP, backlight) and ends the
sequence; position checks (assert_tweaker_positions abort=) stop waiting
- safety: backlight moves wait and check the position before the next step
(post-tube in used to start while the backlight was still moving out)
- tandem nudges stay non blocking in the GUI thread; collimator still moves
X then Y
- sample alignment: backlight in now also checks the detector is clear of
the post-tube path (as the backlight button does)
Tested in simulation and at the beamline.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- progress dialog is non modal; during a collection set_collecting() greys
out the left tabs, toolbar, menu, fast stage and x-ray eye groups,
backlight/lights/exposure and the collimator/post-tube in/out buttons
- collimator and post-tube motors stay usable, limited to a total move of
NUDGE_MAX_STEP (0.5 mm) from their position at the start of the
collection (MotorTweak/SimMotorTweak.set_max_step)
- zoom stays usable during a collection
- mouse clicks on the camera view are ignored during a collection
- daq_worker added to the -l log level list
- debug coordinate log is skipped when points/pts_trf are not in the
scan parameters (grid modes) instead of raising KeyError
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- fix sign error in transformation for z
- MotorTweak.py rel_move relative to RBV not VAL
- SimMotorTweak.py move emits also RBV to update objects in SwissMX
- update Readme.md