Experimental/rotation center smear #272
Merged
holler
merged 11 commits from 2026-07-24 16:17:01 +02:00
experimental/rotation_center_smear into main
No Reviewers
Labels
Clear labels
issue::not confirmed
issue::not reproducible
issue::reproducible
priority::critical
priority::needed
priority::nice to have
scope::backend
scope::frontend
stage::in development
stage::on hold
stage::pre_release
stage::ready for review
stage::selected for development
stage::weekly backlog
type::bug
type::discussion
type::doc
type::feature
type::improvement
type::test
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
Used if an issue has not yet been confirmed by a developer
Used if an issue is not reproducible
Used if a developer was able to reproduce the issue
Should be done as soon as possible
An important update to the code base
Not really needed but a good improvement
An issue regarding the backend services
An issue regarding the user-facing services
This issue is currently being worked on
Something is blocking the development
For issues that have been merged into a pre-release branch and are waiting for their release.
For issues that have been resolved and are ready for review
This issue has been selected for development but has not been scheduled yet
This issue has been selected for development for the next development cycle
It's a bug!
A discussion is wanted/needed
Improvements to the documentation
A new feature
Neither a feature nor a bug but an improvement to the code base
Missing tests or improvements to the test suite
Something is not working
This issue or pull request already exists
New feature
Need some help
Something is wrong
More information is needed
This won't be fixed
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
acerbo_a (acerbo_a)
appel_c (appel_c)
bec-gitea
celcer_t (celcer_t)
debenjak_l (debenjak_l)
diaz (diaz)
divall_e (divall_e)
guizar_m (guizar_m)
haghta_s (haghta_s)
holler (holler)
lombosi_c (lombosi_c)
menzel (menzel)
perl_d (perl_d)
usov_i (usov_i)
wakonig_k (wakonig_k)
wang_x1 (wang_x1)
wyzula_j (wyzula_j)
zamofing_t (zamofing_t)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: bec/csaxs_bec#272
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A Ctrl-C interrupting an in-flight RPC call (e.g. mid set_live_view_signal) could leave the XRayEye widget stuck showing the smear-preview channel afterward -- and since lamnigui_show_xeyealign() reuses the existing xeyegui widget across calls rather than recreating it, that stale state would silently carry into the *next* alignment run too (including production align()/find_rotation_center(), since on_live_view_enabled() now respects whichever channel is selected). Fix: lamnigui_show_xeyealign() unconditionally resets both set_live_view_signal("image") and set_smear_active(False) every time it's called -- both are cheap no-ops if already in the default state, and this is the single shared entry point for every alignment procedure, so one fix covers all of them. Also add two GUI-facing controls to XRayEye, in a new row below the shutter/camera-running toggles: - "Smear preview channel" -- an interactive toggle mirroring set_live_view_signal(), so the operator has a GUI-only recovery path independent of the ipython client (e.g. if it's hung/disconnected). - "Smear integrating" -- a read-only status indicator (disabled ToggleSwitch) reflecting whether _smear_sweep() is currently accumulating a composite, driven entirely by the automation. set_live_view_signal() keeps the interactive toggle's visual state in sync regardless of who changed the channel (automation or operator) -- single source of truth. _smear_sweep() brackets accumulation with set_smear_active(True)/(False), turning it off as soon as the sweep ends (independent of the channel switch, which stays on the composite until the operator's click is collected). Both new XRayEye methods required regenerating csaxs_bec/bec_widgets/widgets/client.py via bw-generate-cli --target csaxs_bec. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>9299d813adto83f9a6bb59