Source code for ophyd_async.fastcs.eiger._eiger
from ophyd_async.core import (
AsyncStatus,
PathProvider,
StandardDetector,
TriggerInfo,
)
from ophyd_async.epics.eiger import Odin, OdinWriter
from ._eiger_controller import EigerController
from ._eiger_io import EigerDriverIO
[docs]
class EigerDetector(StandardDetector):
"""Ophyd-async implementation of an Eiger Detector."""
_controller: EigerController
_writer: OdinWriter
def __init__(
self,
prefix: str,
path_provider: PathProvider,
drv_suffix="-EA-EIGER-01:",
hdf_suffix="-EA-EIGER-01:OD:",
odin_nodes: int = 4,
name="",
):
self.drv = EigerDriverIO(prefix + drv_suffix)
self.odin = Odin(prefix + hdf_suffix, nodes=odin_nodes)
super().__init__(
EigerController(self.drv),
OdinWriter(
path_provider,
self.odin,
self.drv.detector.bit_depth_readout,
),
name=name,
)
[docs]
@AsyncStatus.wrap
async def prepare(self, value: TriggerInfo) -> None:
await super().prepare(value)