Source code for ophyd_async.epics.areadetector.pilatus

from bluesky.protocols import Hints

from ophyd_async.core import DirectoryProvider
from ophyd_async.core.detector import StandardDetector
from ophyd_async.epics.areadetector.controllers.pilatus_controller import (
    PilatusController,
)
from ophyd_async.epics.areadetector.drivers.ad_base import ADBaseShapeProvider
from ophyd_async.epics.areadetector.drivers.pilatus_driver import PilatusDriver
from ophyd_async.epics.areadetector.writers.hdf_writer import HDFWriter
from ophyd_async.epics.areadetector.writers.nd_file_hdf import NDFileHDF


[docs] class PilatusDetector(StandardDetector): """A Pilatus StandardDetector writing HDF files""" _controller: PilatusController _writer: HDFWriter def __init__( self, prefix: str, directory_provider: DirectoryProvider, drv_suffix="cam1:", hdf_suffix="HDF1:", name="", ): self.drv = PilatusDriver(prefix + drv_suffix) self.hdf = NDFileHDF(prefix + hdf_suffix) super().__init__( PilatusController(self.drv), HDFWriter( self.hdf, directory_provider, lambda: self.name, ADBaseShapeProvider(self.drv), ), config_sigs=(self.drv.acquire_time,), name=name, ) @property def hints(self) -> Hints: return self._writer.hints