wip mockup signals for the xray gui
This commit is contained in:
@@ -13,11 +13,13 @@ from bec_widgets.widgets.plots.image.setting_widgets.image_roi_tree import ROIPr
|
||||
from bec_widgets.widgets.plots.roi.image_roi import BaseROI
|
||||
from bec_widgets.widgets.utility.toggle.toggle import ToggleSwitch
|
||||
|
||||
from bec_lib.endpoints import MessageEndpoints
|
||||
|
||||
logger = bec_logger.logger
|
||||
#TODO replace with actual device names, these are just placeholders from simulation framework
|
||||
DEVICE_HORIZONTAL = "samx"
|
||||
DEVICE_VERTICAL = "samy"
|
||||
CAMERA = "eiger"
|
||||
CAMERA = ("cam_flomni_overview","preview")
|
||||
|
||||
class XRayEye(BECWidget, QWidget):
|
||||
USER_ACCESS = ["active_roi","enable_live_view", "enable_live_view.setter", "user_message", "user_message.setter","sample_name", "sample_name.setter", "enable_move_buttons", "enable_move_buttons.setter"]
|
||||
@@ -29,6 +31,8 @@ class XRayEye(BECWidget, QWidget):
|
||||
self._init_ui()
|
||||
self._make_connections()
|
||||
|
||||
self.bec_dispatcher.connect_slot(self.device_updates,MessageEndpoints.device_readback("omny_xray_gui"))
|
||||
self.bec_dispatcher.connect_slot(self.on_tomo_angle_readback,MessageEndpoints.device_readback("fsamroy"))
|
||||
def _init_ui(self):
|
||||
self.core_layout = QHBoxLayout(self)
|
||||
|
||||
@@ -51,6 +55,7 @@ class XRayEye(BECWidget, QWidget):
|
||||
header_row.addStretch()
|
||||
self.live_preview_label = QLabel("Live Preview", parent=self)
|
||||
self.live_preview_toggle = ToggleSwitch(parent=self)
|
||||
self.live_preview_toggle.checked = False
|
||||
header_row.addWidget(self.live_preview_label, 0, Qt.AlignVCenter)
|
||||
header_row.addWidget(self.live_preview_toggle, 0, Qt.AlignVCenter)
|
||||
self.control_panel_layout.addLayout(header_row)
|
||||
@@ -198,11 +203,39 @@ class XRayEye(BECWidget, QWidget):
|
||||
@SafeSlot(bool)
|
||||
def on_live_view_enabled(self, enabled: bool):
|
||||
logger.info(f"Live view is enabled: {enabled}")
|
||||
self.live_preview_toggle.blockSignals(True)
|
||||
if enabled:
|
||||
self.live_preview_toggle.checked = enabled
|
||||
self.image.image(CAMERA)
|
||||
self.live_preview_toggle.blockSignals(False)
|
||||
return
|
||||
|
||||
self.image.disconnect_monitor(CAMERA)
|
||||
self.live_preview_toggle.checked = enabled
|
||||
self.live_preview_toggle.blockSignals(False)
|
||||
@SafeSlot(bool,bool)
|
||||
def on_motors_enable(self,x_enable:bool,y_enable:bool):
|
||||
print(f"x enable: {x_enable}")
|
||||
print(f"y enable: {y_enable}")
|
||||
@SafeSlot(bool,bool)
|
||||
def on_tomo_angle_readback(self,data:dict,meta:dict):
|
||||
print(f"data: {data}")
|
||||
print(f"meta: {meta}")
|
||||
|
||||
@SafeSlot(dict,dict)
|
||||
def device_updates(self,data:dict,meta:dict):
|
||||
|
||||
signals = data.get('signals')
|
||||
enable_live_preview = signals.get("omny_xray_gui_update_frame_acq").get('value')
|
||||
enable_x_motor = signals.get("omny_xray_gui_enable_mv_x").get('value')
|
||||
enable_y_motor = signals.get("omny_xray_gui_enable_mv_y").get('value')
|
||||
self.on_live_view_enabled(bool(enable_live_preview))
|
||||
self.on_motors_enable(bool(enable_x_motor),bool(enable_y_motor))
|
||||
|
||||
|
||||
print(f"signals: {signals}")
|
||||
print(f"data: {data}")
|
||||
print(f"meta: {meta}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user