Source code for dodal.devices.pgm
from ophyd_async.core import (
StandardReadable,
StandardReadableFormat,
StrictEnum,
)
from ophyd_async.epics.core import epics_signal_rw
from ophyd_async.epics.motor import Motor
[docs]
class PGM(StandardReadable):
"""
Plane grating monochromator, it is use in soft x-ray beamline to generate monochromic beam.
"""
def __init__(
self,
prefix: str,
grating: type[StrictEnum],
gratingPv: str,
name: str = "",
) -> None:
"""
Parameters
----------
prefix:
Beamline specific part of the PV
grating:
The Enum for the grating table.
gratingPv:
The suffix pv part of grating Pv
name:
Name of the device
"""
with self.add_children_as_readables():
self.energy = Motor(prefix + "ENERGY")
with self.add_children_as_readables(StandardReadableFormat.CONFIG_SIGNAL):
self.grating = epics_signal_rw(grating, prefix + gratingPv)
self.cff = epics_signal_rw(float, prefix + "CFF")
super().__init__(name=name)