Source code for dodal.devices.i13_1.merlin
from ophyd_async.core import PathProvider, StandardDetector
from ophyd_async.epics import adcore
from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
from dodal.devices.i13_1.merlin_controller import MerlinController
from dodal.devices.i13_1.merlin_io import MerlinDriverIO
[docs]
class Merlin(StandardDetector):
_controller: MerlinController
_writer: adcore.ADHDFWriter
def __init__(
self,
prefix: str,
path_provider: PathProvider,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
name: str = "",
):
self.drv = MerlinDriverIO(prefix + drv_suffix)
self.hdf = adcore.NDFileHDFIO(prefix + fileio_suffix)
super().__init__(
MerlinController(self.drv),
adcore.ADHDFWriter(
self.hdf,
path_provider,
lambda: self.name,
adcore.ADBaseDatasetDescriber(self.drv),
),
config_sigs=(self.drv.acquire_period, self.drv.acquire_time),
name=name,
)