diff --git a/src/dodal/beamlines/i09.py b/src/dodal/beamlines/i09.py index 5b25aa1bbce..b7c989c4a18 100644 --- a/src/dodal/beamlines/i09.py +++ b/src/dodal/beamlines/i09.py @@ -1,10 +1,16 @@ -from ophyd_async.core import InOut +from ophyd_async.core import InOut, SignalRW +from ophyd_async.epics.core import epics_signal_rw from dodal.beamlines.i09_1_shared import devices as i09_1_shared_devices from dodal.beamlines.i09_2_shared import devices as i09_2_shared_devices from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline from dodal.device_manager import DeviceManager -from dodal.devices.beamlines.i09 import LensMode, PassEnergy, PsuMode +from dodal.devices.beamlines.i09 import ( + IntensityProtection, + LensMode, + PassEnergy, + PsuMode, +) from dodal.devices.common_dcm import DoubleCrystalMonochromatorWithDSpacing from dodal.devices.electron_analyser.base import DualEnergySource from dodal.devices.electron_analyser.vgscienta import VGScientaDetector @@ -126,3 +132,10 @@ def lakeshore() -> Lakeshore336: def smpm() -> XYZAzimuthPolarStage: """Sample Manipulator.""" return XYZAzimuthPolarStage(prefix=f"{I_PREFIX.beamline_prefix}-MO-SMPM-01:") + + +@devices.factory +def intensity_protection() -> SignalRW[IntensityProtection]: + return epics_signal_rw( + IntensityProtection, f"{I_PREFIX.beamline_prefix}-DI-EAN-01:PROT:ILK" + ) diff --git a/src/dodal/devices/beamlines/i09/__init__.py b/src/dodal/devices/beamlines/i09/__init__.py index cfb2a43d07d..7a06947c2e3 100644 --- a/src/dodal/devices/beamlines/i09/__init__.py +++ b/src/dodal/devices/beamlines/i09/__init__.py @@ -1,3 +1,3 @@ -from dodal.devices.beamlines.i09.enums import Grating, LensMode, PassEnergy, PsuMode +from .enums import Grating, IntensityProtection, LensMode, PassEnergy, PsuMode -__all__ = ["Grating", "LensMode", "PsuMode", "PassEnergy"] +__all__ = ["Grating", "IntensityProtection", "LensMode", "PsuMode", "PassEnergy"] diff --git a/src/dodal/devices/beamlines/i09/enums.py b/src/dodal/devices/beamlines/i09/enums.py index 6b0a368b10c..ce233485e30 100644 --- a/src/dodal/devices/beamlines/i09/enums.py +++ b/src/dodal/devices/beamlines/i09/enums.py @@ -29,3 +29,8 @@ class PassEnergy(StrictEnum): E100 = "100" E200 = "200" E500 = "500" + + +class IntensityProtection(StrictEnum): + CLEAR = "Clear" + TRIPPED = "Tripped"