Source code for ophyd_async.fastcs.eiger._eiger_io
from ophyd_async.core import (
Device,
SignalR,
SignalRW,
SignalX,
StrictEnum,
)
from ophyd_async.fastcs.core import fastcs_connector
class EigerTriggerMode(StrictEnum):
INTERNAL = "ints"
EDGE = "exts"
GATE = "exte"
[docs]
class EigerMonitorIO(Device):
"""Driver for Eiger Monitor subsystem.
This mirrors the interface provided by https://media.dectris.com/SIMPLON_APIReference_v1p6.pdf#page=25
"""
pass
[docs]
class EigerStreamIO(Device):
"""Driver for Eiger Stream subsystem.
This mirrors the interface provided by https://media.dectris.com/SIMPLON_APIReference_v1p6.pdf#page=32
"""
pass
[docs]
class EigerDetectorIO(Device):
"""Driver for Eiger Detector subsystem.
This mirrors the interface provided by https://media.dectris.com/SIMPLON_APIReference_v1p6.pdf#page=17
"""
bit_depth_image: SignalR[int]
state: SignalR[str]
count_time: SignalRW[float]
frame_time: SignalRW[float]
nimages: SignalRW[int]
ntrigger: SignalRW[int]
nexpi: SignalRW[int] | None
trigger_mode: SignalRW[str]
roi_mode: SignalRW[str]
photon_energy: SignalRW[float]
beam_center_x: SignalRW[float]
beam_center_y: SignalRW[float]
detector_distance: SignalRW[float]
omega_start: SignalRW[float]
omega_increment: SignalRW[float]
arm: SignalX
disarm: SignalX
trigger: SignalX
[docs]
class EigerDriverIO(Device):
"""Contains signals for handling IO on the Eiger detector.
This mirrors the interface provided by
https://github.com/DiamondLightSource/fastcs-eiger/blob/main/src/fastcs_eiger/controllers/eiger_controller.py
"""
stale_parameters: SignalR[bool]
monitor: EigerMonitorIO
stream: EigerStreamIO
detector: EigerDetectorIO
def __init__(self, uri: str, name: str = ""):
super().__init__(name=name, connector=fastcs_connector(self, uri))