refactor(xray_gui): minor cleanup
CI for csaxs_bec / test (pull_request) Successful in 1m17s
CI for csaxs_bec / test (push) Successful in 1m14s

This commit was merged in pull request #97.
This commit is contained in:
2025-10-23 11:17:29 +02:00
parent 94d984b8a2
commit c8c71d466c
@@ -24,7 +24,7 @@ from qtpy.QtWidgets import (
)
logger = bec_logger.logger
CAMERA = ("cam_xeye_rgb", "image") #TODO here put correct camera
CAMERA = ("cam_xeye_rgb", "image")
class XRayEye2DControl(BECWidget, QWidget):
@@ -259,15 +259,6 @@ class XRayEye(BECWidget, QWidget):
################################################################################
# Properties ported from the original OmnyAlignment, can be adjusted as needed
################################################################################
@SafeProperty(bool)
def enable_live_view(self):
"""Get or set the live view enabled state."""
return self.live_preview_toggle.checked
@enable_live_view.setter
def enable_live_view(self, enable: bool):
self.live_preview_toggle.checked = enable
@SafeProperty(str)
def user_message(self):
return self.message_line_edit.text()
@@ -326,20 +317,23 @@ class XRayEye(BECWidget, QWidget):
@SafeSlot(bool, bool)
def on_motors_enable(self, x_enable: bool, y_enable: bool):
"""
Enable/Disable motor controls
Args:
x_enable(bool): enable x motor controls
y_enable(bool): enable y motor controls
"""
self.motor_control_2d.enable_controls_hor(x_enable)
self.motor_control_2d.enable_controls_ver(y_enable)
@SafeSlot(str)
def set_message(self, msg: str):
self.message_line_edit.setText(msg)
@SafeSlot(str)
def set_sample_name(self, msg: str):
self.sample_name_line_edit.setText(msg)
@SafeSlot(int)
def enable_submit_button(self, enable: int):
"""If -1 disable else enable"""
"""
Enable/disable submit button.
Args:
enable(int): -1 disable else enable
"""
if enable == -1:
self.submit_button.setEnabled(False)
else:
@@ -347,11 +341,19 @@ class XRayEye(BECWidget, QWidget):
@SafeSlot(bool, bool)
def on_tomo_angle_readback(self, data: dict, meta: dict):
#TODO implement if needed
print(f"data: {data}")
print(f"meta: {meta}")
@SafeSlot(dict, dict)
def device_updates(self, data: dict, meta: dict):
"""
Slot to handle device updates from omny_xray_gui device.
Args:
data(dict): data from device
meta(dict): metadata from device
"""
signals = data.get('signals')
enable_live_preview = signals.get("omny_xray_gui_update_frame_acq").get('value')
@@ -362,11 +364,11 @@ class XRayEye(BECWidget, QWidget):
# Signals from epics gui device
# send message
send_message = signals.get("omny_xray_gui_send_message").get('value')
self.set_message(send_message)
user_message = signals.get("omny_xray_gui_send_message").get('value')
self.user_message = user_message
# sample name
sample_message = signals.get("omny_xray_gui_sample_name").get('value')
self.set_sample_name(sample_message)
self.sample_name = sample_message
# enable frame acquisition
update_frame_acq = signals.get("omny_xray_gui_update_frame_acq").get('value')
self.on_live_view_enabled(bool(update_frame_acq))
@@ -394,7 +396,7 @@ class XRayEye(BECWidget, QWidget):
logger.warning("Unsupported ROI type for submit action.")
return
print(f"current roi: {roi_center_x},{roi_center_y}, {roi_width},{roi_height}")
print(f"current roi: x:{roi_center_x}, y:{roi_center_y}, w:{roi_width},h:{roi_height}") #TODO remove when will be not needed for debugging
# submit roi coordinates
step = int(self.dev.omny_xray_gui.step.read().get("omny_xray_gui_step").get('value'))
@@ -405,6 +407,7 @@ class XRayEye(BECWidget, QWidget):
self.dev.omny_xray_gui.submit.set(1)
def cleanup(self):
"""Cleanup connections on widget close -> disconnect slots and stop live mode of camera."""
self.bec_dispatcher.disconnect_slot(self.device_updates, MessageEndpoints.device_readback("omny_xray_gui"))
getattr(self.dev,CAMERA).live_mode = False
super().cleanup()