Source code for dodal.devices.backlight

from enum import Enum

from ophyd_async.core import AsyncStatus, StandardReadable
from ophyd_async.epics.signal import epics_signal_rw


[docs] class BacklightPower(str, Enum): ON = "On" OFF = "Off"
[docs] class BacklightPosition(str, Enum): IN = "In" OUT = "Out"
[docs] class Backlight(StandardReadable): """Simple device to trigger the pneumatic in/out.""" def __init__(self, prefix: str, name: str = "") -> None: with self.add_children_as_readables(): self.power = epics_signal_rw(BacklightPower, prefix + "-EA-BLIT-01:TOGGLE") self.position = epics_signal_rw( BacklightPosition, prefix + "-EA-BL-01:CTRL" ) super().__init__(name)
[docs] @AsyncStatus.wrap async def set(self, position: BacklightPosition): """This setter will turn the backlight on when we move it in to the beam and off when we move it out.""" await self.position.set(position) if position == BacklightPosition.OUT: await self.power.set(BacklightPower.OFF) else: await self.power.set(BacklightPower.ON)