Source code for dodal.devices.i24.dcm
from ophyd_async.epics.core import epics_signal_r
from dodal.devices.common_dcm import (
BaseDCM,
PitchAndRollCrystal,
RollCrystal,
)
[docs]
class DCM(BaseDCM[RollCrystal, PitchAndRollCrystal]):
"""
A double crystal monocromator device, used to select the beam energy.
"""
def __init__(self, prefix: str, motion_prefix: str, name: str = "") -> None:
with self.add_children_as_readables():
# Temperatures
self.xtal1_temp = epics_signal_r(float, prefix + "PT100-1")
self.xtal1_heater_temp = epics_signal_r(float, prefix + "PT100-2")
self.xtal2_temp = epics_signal_r(float, prefix + "PT100-4")
self.xtal2_heater_temp = epics_signal_r(float, prefix + "PT100-5")
self.roll_plate_temp = epics_signal_r(float, prefix + "PT100-3")
self.pitch_plate_temp = epics_signal_r(float, prefix + "PT100-6")
self.backplate_temp = epics_signal_r(float, prefix + "PT100-7")
self.b1_plate_temp = epics_signal_r(float, prefix + "PT100-7")
self.gap_temp = epics_signal_r(float, prefix + "TC-1")
super().__init__(motion_prefix, RollCrystal, PitchAndRollCrystal, name)