From f16552fd3d777b870f5663130d39a0d87afc74c9 Mon Sep 17 00:00:00 2001 From: Callum Forrester Date: Tue, 25 Jun 2024 14:54:04 +0100 Subject: [PATCH 1/2] Use enum on aravis driver --- .../epics/areadetector/drivers/aravis_driver.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py b/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py index a9b8e05601..6cc94e2998 100644 --- a/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py +++ b/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py @@ -22,6 +22,13 @@ class AravisTriggerMode(str, Enum): AravisTriggerSource = Literal["Freerun", "Line1", "Line2", "Line3", "Line4"] +class AravisTriggerSource(str, Enum): + Freerun = "Freerun" + Line1 = "Line1" + FixedRate = "FixedRate" + Software = "Software" + + class AravisDriver(ADBase): # If instantiating a new instance, ensure it is supported in the _deadtimes dict """Generic Driver supporting the Manta and Mako drivers. @@ -34,5 +41,5 @@ def __init__(self, prefix: str, name: str = "") -> None: self.trigger_mode = epics_signal_rw_rbv( AravisTriggerMode, prefix + "TriggerMode" ) - self.trigger_source = epics_signal_rw_rbv(str, prefix + "TriggerSource") + self.trigger_source = epics_signal_rw_rbv(AravisTriggerSource, prefix + "TriggerSource") super().__init__(prefix, name=name) From 2dabf284d8fdfd3139d01648079bae8179fd29c6 Mon Sep 17 00:00:00 2001 From: Callum Forrester Date: Tue, 25 Jun 2024 14:58:14 +0100 Subject: [PATCH 2/2] Update src/ophyd_async/epics/areadetector/drivers/aravis_driver.py Co-authored-by: Tom C (DLS) <101418278+coretl@users.noreply.github.com> --- .../epics/areadetector/drivers/aravis_driver.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py b/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py index 6cc94e2998..6c49c66fb1 100644 --- a/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py +++ b/src/ophyd_async/epics/areadetector/drivers/aravis_driver.py @@ -1,6 +1,6 @@ from enum import Enum -from typing import Literal +from ophyd_async.core import SubsetEnum from ophyd_async.epics.areadetector.drivers import ADBase from ophyd_async.epics.signal.signal import epics_signal_rw_rbv @@ -19,14 +19,7 @@ class AravisTriggerMode(str, Enum): To prevent requiring one Enum class per possible configuration, we set as this Enum but read from the underlying signal as a str. """ -AravisTriggerSource = Literal["Freerun", "Line1", "Line2", "Line3", "Line4"] - - -class AravisTriggerSource(str, Enum): - Freerun = "Freerun" - Line1 = "Line1" - FixedRate = "FixedRate" - Software = "Software" +AravisTriggerSource = SubsetEnum["Freerun", "Line1"] class AravisDriver(ADBase): @@ -41,5 +34,7 @@ def __init__(self, prefix: str, name: str = "") -> None: self.trigger_mode = epics_signal_rw_rbv( AravisTriggerMode, prefix + "TriggerMode" ) - self.trigger_source = epics_signal_rw_rbv(AravisTriggerSource, prefix + "TriggerSource") + self.trigger_source = epics_signal_rw_rbv( + AravisTriggerSource, prefix + "TriggerSource" + ) super().__init__(prefix, name=name)