diff --git a/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py b/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py index 7fdb701..1ff77ab 100644 --- a/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py +++ b/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py @@ -140,8 +140,9 @@ class XRayEye(BECWidget, QWidget): # Connection to redis endpoints self.bec_dispatcher.connect_slot(self.device_updates, MessageEndpoints.device_readback("omny_xray_gui")) + self.bec_dispatcher.connect_slot(self.getting_shutter_status, MessageEndpoints.device_readback("omnyfsh")) self.bec_dispatcher.connect_slot(self.getting_camera_status, MessageEndpoints.device_read_configuration(CAMERA[0])) - # self.bec_dispatcher.connect_slot(self.camera_running,MessageEndpoints.device_preview(CAMERA[0],CAMERA[1])) #TODO put better way how to sync property of device + self.connect_motors() self.resize(800, 600) QTimer.singleShot(0, self._init_gui_trigger) @@ -187,11 +188,12 @@ class XRayEye(BECWidget, QWidget): switch_row.addStretch() self.camera_running_label = QLabel("Camera running", parent=self) self.camera_running_toggle = ToggleSwitch(parent=self) - self.camera_running_toggle.checked = False + # self.camera_running_toggle.checked = False self.camera_running_toggle.enabled.connect(self.camera_running_enabled) self.shutter_label = QLabel("Shutter open", parent=self) self.shutter_toggle = ToggleSwitch(parent=self) - self.shutter_toggle.checked = False + # self.shutter_toggle.checked = False + self.shutter_toggle.enabled.connect(self.opening_shutter) switch_row.addWidget(self.shutter_label, 0, Qt.AlignVCenter) switch_row.addWidget(self.shutter_toggle, 0, Qt.AlignVCenter) switch_row.addWidget(self.camera_running_label, 0, Qt.AlignVCenter) @@ -364,11 +366,29 @@ class XRayEye(BECWidget, QWidget): @SafeSlot(dict,dict) def getting_camera_status(self,data,meta): live_mode_enabled = data.get("signals").get(f"{CAMERA[0]}_live_mode_enabled").get("value") + self.camera_running_toggle.blockSignals(True) self.camera_running_toggle.checked = live_mode_enabled + self.camera_running_toggle.blockSignals(False) + + @SafeSlot(bool) + def opening_shutter(self, enabled: bool): + logger.info(f"Shutter changed from GUI to: {enabled}") + self.shutter_toggle.blockSignals(True) + if enabled: + dev.omnyfsh.fshopen() + else: + dev.omnyfsh.fshclose() + # self.shutter_toggle.checked = enabled + self.shutter_toggle.blockSignals(False) + @SafeSlot(dict,dict) - def camera_running(self,data,meta): - ... + def getting_shutter_status(self,data,meta): + shutter_open = bool(data.get("signals").get("omnyfsh_shutter").get("value")) + self.shutter_toggle.blockSignals(True) + self.shutter_toggle.checked = shutter_open + self.shutter_toggle.blockSignals(False) + @SafeSlot(bool, bool) def on_motors_enable(self, x_enable: bool, y_enable: bool):