From 7bf193eaa6b3217c1386a9405ea41c0f64f2fb53 Mon Sep 17 00:00:00 2001 From: e20588 Date: Thu, 17 Nov 2022 18:19:47 +0100 Subject: [PATCH 1/5] improvements for sls info --- ophyd_devices/sls_devices/sls_devices.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/ophyd_devices/sls_devices/sls_devices.py b/ophyd_devices/sls_devices/sls_devices.py index 3bbd103..d48a5e9 100644 --- a/ophyd_devices/sls_devices/sls_devices.py +++ b/ophyd_devices/sls_devices/sls_devices.py @@ -19,14 +19,18 @@ class SLSInfo(Device): # eh_t02_temperature_t0205_axis_18 = Cpt( # EpicsSignalRO, "ILUUL-0200-EB105:TEMP", auto_monitor=True # ) - operation = Cpt(EpicsSignalRO, "ACOAU-ACCU:OP-MODE.VAL", auto_monitor=True) - injection_mode = Cpt(EpicsSignalRO, "ALIRF-GUN:INJ-MODE", auto_monitor=True) + operation = Cpt(EpicsSignalRO, "ACOAU-ACCU:OP-MODE", auto_monitor=True, string=True) + injection_mode = Cpt(EpicsSignalRO, "ALIRF-GUN:INJ-MODE", auto_monitor=True, string=True) current_threshold = Cpt(EpicsSignalRO, "ALIRF-GUN:CUR-LOWLIM", auto_monitor=True) current_deadband = Cpt(EpicsSignalRO, "ALIRF-GUN:CUR-DBAND", auto_monitor=True) - filling_pattern = Cpt(EpicsSignalRO, "ACORF-FILL:PAT-SELECT", auto_monitor=True) + filling_pattern = Cpt(EpicsSignalRO, "ACORF-FILL:PAT-SELECT", auto_monitor=True, string=True) filling_life_time = Cpt(EpicsSignalRO, "ARIDI-PCT:TAU-HOUR", auto_monitor=True) - orbit_feedback_mode = Cpt(EpicsSignalRO, "ARIDI-BPM:OFB-MODE", auto_monitor=True) - fast_orbit_feedback = Cpt(EpicsSignalRO, "ARIDI-BPM:FOFBSTATUS-G", auto_monitor=True) + orbit_feedback_mode = Cpt(EpicsSignalRO, "ARIDI-BPM:OFB-MODE", auto_monitor=True, string=True) + fast_orbit_feedback = Cpt( + EpicsSignalRO, "ARIDI-BPM:FOFBSTATUS-G", auto_monitor=True, string=True + ) ring_current = Cpt(EpicsSignalRO, "ARIDI-PCT:CURRENT", auto_monitor=True) - machine_status = Cpt(EpicsSignalRO, "ACOAU-ACCU:OP-MODE", auto_monitor=True) - crane_usage = Cpt(EpicsSignalRO, "IBWKR-0101-QH10003:D01_H_D-WA", auto_monitor=True) + machine_status = Cpt(EpicsSignalRO, "ACOAU-ACCU:OP-MODE", auto_monitor=True, string=True) + crane_usage = Cpt( + EpicsSignalRO, "IBWKR-0101-QH10003:D01_H_D-WA", auto_monitor=True, string=True + ) From 08a8272ac03556c8091247a9a5f58753c43a2622 Mon Sep 17 00:00:00 2001 From: Wakonig Klaus Date: Thu, 17 Nov 2022 19:36:13 +0100 Subject: [PATCH 2/5] removed duplicated pv --- ophyd_devices/sls_devices/sls_devices.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ophyd_devices/sls_devices/sls_devices.py b/ophyd_devices/sls_devices/sls_devices.py index d48a5e9..00dbffe 100644 --- a/ophyd_devices/sls_devices/sls_devices.py +++ b/ophyd_devices/sls_devices/sls_devices.py @@ -19,7 +19,6 @@ class SLSInfo(Device): # eh_t02_temperature_t0205_axis_18 = Cpt( # EpicsSignalRO, "ILUUL-0200-EB105:TEMP", auto_monitor=True # ) - operation = Cpt(EpicsSignalRO, "ACOAU-ACCU:OP-MODE", auto_monitor=True, string=True) injection_mode = Cpt(EpicsSignalRO, "ALIRF-GUN:INJ-MODE", auto_monitor=True, string=True) current_threshold = Cpt(EpicsSignalRO, "ALIRF-GUN:CUR-LOWLIM", auto_monitor=True) current_deadband = Cpt(EpicsSignalRO, "ALIRF-GUN:CUR-DBAND", auto_monitor=True) From e0c04697958c3fd08e0d2f4f8e5c61bf034c51cc Mon Sep 17 00:00:00 2001 From: Klaus Wakonig Date: Thu, 17 Nov 2022 19:50:11 +0100 Subject: [PATCH 3/5] added auto_monitor forwarder to sls_info --- ophyd_devices/sls_devices/sls_devices.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ophyd_devices/sls_devices/sls_devices.py b/ophyd_devices/sls_devices/sls_devices.py index 00dbffe..dc528bb 100644 --- a/ophyd_devices/sls_devices/sls_devices.py +++ b/ophyd_devices/sls_devices/sls_devices.py @@ -1,5 +1,9 @@ -from ophyd import Component as Cpt, DynamicDeviceComponent as Dcpt -from ophyd import Device, EpicsSignalRO +import time + +from ophyd import Component as Cpt +from ophyd import Device +from ophyd import DynamicDeviceComponent as Dcpt +from ophyd import EpicsSignalRO class SLSOperatorMessages(Device): @@ -12,6 +16,8 @@ class SLSOperatorMessages(Device): class SLSInfo(Device): + SUB_VALUE = "value" + _default_sub = SUB_VALUE # eh_t02_avg_temperature = Cpt(EpicsSignalRO, "ILUUL-02AV:TEMP", auto_monitor=True) # eh_t02_temperature_t0204_axis_16 = Cpt( # EpicsSignalRO, "ILUUL-0200-EB104:TEMP", auto_monitor=True @@ -33,3 +39,12 @@ class SLSInfo(Device): crane_usage = Cpt( EpicsSignalRO, "IBWKR-0101-QH10003:D01_H_D-WA", auto_monitor=True, string=True ) + + def __init__(self, prefix="", *, name, **kwargs): + super().__init__(prefix, name=name, **kwargs) + self.ring_current.subscribe(self._emit_value) + + def _emit_value(self, **kwargs): + timestamp = kwargs.pop("timestamp", time.time()) + value = self.read() + self._run_subs(sub_type=self.SUB_VALUE, timestamp=timestamp, value=value, **kwargs) From 62054c56af02bf278ed999948b1d8140f2f812af Mon Sep 17 00:00:00 2001 From: Wakonig Klaus Date: Fri, 18 Nov 2022 09:59:49 +0100 Subject: [PATCH 4/5] bug fixes for sls devices --- ophyd_devices/sls_devices/sls_devices.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ophyd_devices/sls_devices/sls_devices.py b/ophyd_devices/sls_devices/sls_devices.py index dc528bb..221d70c 100644 --- a/ophyd_devices/sls_devices/sls_devices.py +++ b/ophyd_devices/sls_devices/sls_devices.py @@ -7,6 +7,8 @@ from ophyd import EpicsSignalRO class SLSOperatorMessages(Device): + SUB_VALUE = "value" + _default_sub = SUB_VALUE messages_info = { f"message{i}": (EpicsSignalRO, f"ACOAU-ACCU:OP-MSG{i}", {}) for i in range(1, 6) } @@ -14,6 +16,14 @@ class SLSOperatorMessages(Device): date_info = {f"message{i}": (EpicsSignalRO, f"ACOAU-ACCU:OP-DATE{i}", {}) for i in range(1, 6)} date = Dcpt(date_info) + def __init__(self, prefix="", *, name, **kwargs): + super().__init__(prefix, name=name, **kwargs) + self.messages.message1.subscribe(self._emit_value) + + def _emit_value(self, **kwargs): + timestamp = kwargs.pop("timestamp", time.time()) + self.wait_for_connection() + self._run_subs(sub_type=self.SUB_VALUE, timestamp=timestamp, obj=self) class SLSInfo(Device): SUB_VALUE = "value" @@ -46,5 +56,5 @@ class SLSInfo(Device): def _emit_value(self, **kwargs): timestamp = kwargs.pop("timestamp", time.time()) - value = self.read() - self._run_subs(sub_type=self.SUB_VALUE, timestamp=timestamp, value=value, **kwargs) + self.wait_for_connection() + self._run_subs(sub_type=self.SUB_VALUE, timestamp=timestamp, obj=self) From 7bd602c49c2a87ae465c5421b46438448f10305c Mon Sep 17 00:00:00 2001 From: Klaus Wakonig Date: Fri, 25 Nov 2022 19:06:04 +0100 Subject: [PATCH 5/5] refactor: cleanup --- ophyd_devices/sls_devices/sls_devices.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ophyd_devices/sls_devices/sls_devices.py b/ophyd_devices/sls_devices/sls_devices.py index 221d70c..d11f261 100644 --- a/ophyd_devices/sls_devices/sls_devices.py +++ b/ophyd_devices/sls_devices/sls_devices.py @@ -25,6 +25,7 @@ class SLSOperatorMessages(Device): self.wait_for_connection() self._run_subs(sub_type=self.SUB_VALUE, timestamp=timestamp, obj=self) + class SLSInfo(Device): SUB_VALUE = "value" _default_sub = SUB_VALUE