From 467d754a4f6f948f1680d486b8502e65fa8cd084 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Thu, 26 Jun 2025 09:43:07 +0200 Subject: [PATCH] DAQ: Fix lamp light being overwritten + handle transmission being None --- daq/src/aaredaq/daq.py | 8 ++++---- daq/src/aaredaq/devices.py | 12 +++++++++++- daq/src/aaredaq/workflows.py | 6 +++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/daq/src/aaredaq/daq.py b/daq/src/aaredaq/daq.py index bb1b216d..73785bd6 100644 --- a/daq/src/aaredaq/daq.py +++ b/daq/src/aaredaq/daq.py @@ -97,7 +97,7 @@ class AareDAQ: @property def light(self) -> float: - val = self.__devs.lamp_light.value + val = self.__devs.lamp_light if val <= 1.0: return 0 elif val >= 2.5: @@ -109,7 +109,7 @@ class AareDAQ: def light(self, f: float): conv = (f / 100.0 * 1.5) + 1.0 print(f"Light {f} -> {conv}") - self.__devs.lamp_light.move(conv, wait=True) + self.__devs.lamp_light = conv @property def sample(self) -> SampleShortInfo | None: @@ -367,7 +367,7 @@ class AareDAQ: self.__cfg.try_set_busy(timeout=360) self.__set_state(BeamlineStateEnum.SampleAlignment) try: - self.__devs.lamp_light.move("on", wait=True) + self.__devs.lamp_light = 2.5 for s in self.__cfg.alc_zoom_settings.z: self.__devs.samcam_settings = SampleCameraSettings(exposure=s.sam_cam_exp, gain=s.sam_cam_gain) @@ -556,7 +556,7 @@ class AareDAQ: def __loop_center_sequence(self, sample_id: int | None = None) -> bool: self.__set_state(BeamlineStateEnum.SampleAlignment) - self.__devs.lamp_light.move("on", wait=True) + self.__devs.lamp_light = 2.5 try: i = 0 for s in self.__cfg.alc_zoom_settings.z: diff --git a/daq/src/aaredaq/devices.py b/daq/src/aaredaq/devices.py index b4e868b3..34091480 100644 --- a/daq/src/aaredaq/devices.py +++ b/daq/src/aaredaq/devices.py @@ -78,7 +78,7 @@ class BeamlineDevices: move_done_when=(f"{BEAMLINE}-ES-DF1:GMZ-DONE", 1), ) - self.lamp_light = NonStandard( + self.__lamp_light = NonStandard( name="FrontLight", setpv=f"{BEAMLINE}-ES-FL:SET-BRGHT", getpv=f"{BEAMLINE}-ES-FL:SET-BRGHT", @@ -187,6 +187,14 @@ class BeamlineDevices: self.sample_cam = epicsAD(f"{BEAMLINE}-SAMCAM:") + @property + def lamp_light(self) -> float: + return self.__lamp_light.value + + @lamp_light.setter + def lamp_light(self, v: float): + self.__lamp_light.move(v, wait=False) + @property def zoom(self) -> float: return self.__zoom.value @@ -329,4 +337,6 @@ class BeamlineDevices: def flux(self) -> float: # Very approximate value - to be changed # 2 nA -> 4e11 ph/s + if self.transmission.get() is None: + return 0.0 return self.transmission.get() * self.__bpm.value / 2.0 * 4e11 \ No newline at end of file diff --git a/daq/src/aaredaq/workflows.py b/daq/src/aaredaq/workflows.py index 1f0f61cb..6b1169ab 100644 --- a/daq/src/aaredaq/workflows.py +++ b/daq/src/aaredaq/workflows.py @@ -132,7 +132,7 @@ def se2sa(devs: BeamlineDevices, cfg: BeamlineConfig): devs.aerotech.set_direct_mode() devs.reflector_up = True devs.beamstop_stage_up = True - devs.lamp_light.move(2.5) + devs.lamp_light = 2.5 devs.abr_pos = cfg.abr_meas_pos if _cryo: @@ -240,14 +240,14 @@ def sa2ba(devs: BeamlineDevices, cfg: BeamlineConfig): if hub.cryojet_in_use: devs.cryo.move(hub.cryojet_park_position) devs.gmx.move(-38.0) - devs.lamp_light.move("on") + devs.lamp_light = 2.5 devs.beamstop_stage_up = True move_bsz(devs, 0.0) def ba2sa(devs: BeamlineDevices, cfg: BeamlineConfig): hub = cfg.settings - devs.lamp_light.move("half") + devs.lamp_light = 2.5 devs.beamstop_stage_up = True move_bsz(devs, hub.bsz) devs.reflector_up = True