From c846287f1fb5918fb637e30a0ff783a95b758cb7 Mon Sep 17 00:00:00 2001 From: Zoheb Shaikh Date: Thu, 23 May 2024 15:35:41 +0100 Subject: [PATCH] Move plugins from child classes to parent classes (#309) Co-authored-by: Tom C (DLS) <101418278+coretl@users.noreply.github.com> --- src/ophyd_async/epics/areadetector/drivers/ad_base.py | 8 +------- .../epics/areadetector/writers/nd_file_hdf.py | 2 -- src/ophyd_async/epics/areadetector/writers/nd_plugin.py | 9 +++++++++ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/ophyd_async/epics/areadetector/drivers/ad_base.py b/src/ophyd_async/epics/areadetector/drivers/ad_base.py index 6c0f17433d..1c97970d7d 100644 --- a/src/ophyd_async/epics/areadetector/drivers/ad_base.py +++ b/src/ophyd_async/epics/areadetector/drivers/ad_base.py @@ -9,7 +9,7 @@ set_and_wait_for_value, ) -from ...signal.signal import epics_signal_r, epics_signal_rw, epics_signal_rw_rbv +from ...signal.signal import epics_signal_r, epics_signal_rw_rbv from ..utils import ImageMode from ..writers.nd_plugin import NDArrayBase @@ -43,18 +43,12 @@ class DetectorState(str, Enum): class ADBase(NDArrayBase): def __init__(self, prefix: str, name: str = "") -> None: # Define some signals - self.acquire = epics_signal_rw_rbv(bool, prefix + "Acquire") self.acquire_time = epics_signal_rw_rbv(float, prefix + "AcquireTime") self.num_images = epics_signal_rw_rbv(int, prefix + "NumImages") self.image_mode = epics_signal_rw_rbv(ImageMode, prefix + "ImageMode") - self.array_counter = epics_signal_rw_rbv(int, prefix + "ArrayCounter") - self.array_size_x = epics_signal_r(int, prefix + "ArraySizeX_RBV") - self.array_size_y = epics_signal_r(int, prefix + "ArraySizeY_RBV") self.detector_state = epics_signal_r( DetectorState, prefix + "DetectorState_RBV" ) - # There is no _RBV for this one - self.wait_for_plugins = epics_signal_rw(bool, prefix + "WaitForPlugins") super().__init__(prefix, name=name) diff --git a/src/ophyd_async/epics/areadetector/writers/nd_file_hdf.py b/src/ophyd_async/epics/areadetector/writers/nd_file_hdf.py index 77598985ee..5697796d9f 100644 --- a/src/ophyd_async/epics/areadetector/writers/nd_file_hdf.py +++ b/src/ophyd_async/epics/areadetector/writers/nd_file_hdf.py @@ -36,7 +36,5 @@ def __init__(self, prefix: str, name="") -> None: self.lazy_open = epics_signal_rw_rbv(bool, prefix + "LazyOpen") self.capture = epics_signal_rw_rbv(bool, prefix + "Capture") self.flush_now = epics_signal_rw(bool, prefix + "FlushNow") - self.array_size0 = epics_signal_r(int, prefix + "ArraySize0_RBV") - self.array_size1 = epics_signal_r(int, prefix + "ArraySize1_RBV") self.xml_file_name = epics_signal_rw_rbv(str, prefix + "XMLFileName") super().__init__(prefix, name) diff --git a/src/ophyd_async/epics/areadetector/writers/nd_plugin.py b/src/ophyd_async/epics/areadetector/writers/nd_plugin.py index fcb71e4c2a..0428473a07 100644 --- a/src/ophyd_async/epics/areadetector/writers/nd_plugin.py +++ b/src/ophyd_async/epics/areadetector/writers/nd_plugin.py @@ -14,6 +14,13 @@ class NDArrayBase(Device): def __init__(self, prefix: str, name: str = "") -> None: self.unique_id = epics_signal_r(int, prefix + "UniqueId_RBV") self.nd_attributes_file = epics_signal_rw(str, prefix + "NDAttributesFile") + self.acquire = epics_signal_rw_rbv(bool, prefix + "Acquire") + self.array_size_x = epics_signal_r(int, prefix + "ArraySizeX_RBV") + self.array_size_y = epics_signal_r(int, prefix + "ArraySizeY_RBV") + self.array_counter = epics_signal_rw_rbv(int, prefix + "ArrayCounter") + # There is no _RBV for this one + self.wait_for_plugins = epics_signal_rw(bool, prefix + "WaitForPlugins") + super().__init__(name=name) @@ -22,6 +29,8 @@ def __init__(self, prefix: str, name: str = "") -> None: self.nd_array_port = epics_signal_rw_rbv(str, prefix + "NDArrayPort") self.enable_callback = epics_signal_rw_rbv(Callback, prefix + "EnableCallbacks") self.nd_array_address = epics_signal_rw_rbv(int, prefix + "NDArrayAddress") + self.array_size0 = epics_signal_r(int, prefix + "ArraySize0_RBV") + self.array_size1 = epics_signal_r(int, prefix + "ArraySize1_RBV") super().__init__(prefix, name)