ophyd_async.fastcs.eiger#

Package Contents#

Classes#

EigerDetector

Ophyd-async implementation of an Eiger Detector.

EigerController

Detector logic for arming and disarming the detector.

EigerDriverIO

Contains signals for handling IO on the Eiger detector.

EigerDetectorIO

Driver for Eiger Detector subsystem.

EigerMonitorIO

Driver for Eiger Monitor subsystem.

EigerStreamIO

Driver for Eiger Stream subsystem.

API#

class ophyd_async.fastcs.eiger.EigerDetector(prefix: str, path_provider: PathProvider, drv_suffix='-EA-EIGER-01:', hdf_suffix='-EA-EIGER-01:OD:', odin_nodes: int = 4, name='')[source]#

Bases: ophyd_async.core.StandardDetector

Ophyd-async implementation of an Eiger Detector.

async prepare(value: TriggerInfo) None[source]#

Arm detector.

Prepare the detector with trigger information. This is determined at and passed in from the plan level.

Parameters:

value – TriggerInfo describing how to trigger the detector

class ophyd_async.fastcs.eiger.EigerController(driver: EigerDriverIO)[source]#

Bases: ophyd_async.core.DetectorController

Detector logic for arming and disarming the detector.

get_deadtime(exposure: float | None) float[source]#

Get state-independent deadtime.

For a given exposure, what is the safest minimum time between exposures that can be determined without reading signals.

async set_energy(energy: float, tolerance: float = 0.1)[source]#

Set photon energy.

async prepare(trigger_info: TriggerInfo)[source]#

Do all necessary steps to prepare the detector for triggers.

Parameters:

trigger_info – The sort of triggers to expect.

async arm()[source]#

Arm the detector.

async wait_for_idle()[source]#

Wait on the internal _arm_status and wait for it to get disarmed/idle.

async disarm()[source]#

Disarm the detector, return detector to an idle state.

class ophyd_async.fastcs.eiger.EigerDriverIO(uri: str, name: str = '')[source]#

Bases: ophyd_async.core.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]#

None

monitor: EigerMonitorIO#

None

stream: EigerStreamIO#

None

detector: EigerDetectorIO#

None

class ophyd_async.fastcs.eiger.EigerDetectorIO(name: str = '', connector: DeviceConnector | None = None)[source]#

Bases: ophyd_async.core.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]#

None

state: SignalR[str]#

None

count_time: SignalRW[float]#

None

frame_time: SignalRW[float]#

None

nimages: SignalRW[int]#

None

ntrigger: SignalRW[int]#

None

nexpi: SignalRW[int] | None#

None

trigger_mode: SignalRW[str]#

None

roi_mode: SignalRW[str]#

None

photon_energy: SignalRW[float]#

None

beam_center_x: SignalRW[float]#

None

beam_center_y: SignalRW[float]#

None

detector_distance: SignalRW[float]#

None

omega_start: SignalRW[float]#

None

omega_increment: SignalRW[float]#

None

arm: SignalX#

None

disarm: SignalX#

None

trigger: SignalX#

None

class ophyd_async.fastcs.eiger.EigerMonitorIO(name: str = '', connector: DeviceConnector | None = None)[source]#

Bases: ophyd_async.core.Device

Driver for Eiger Monitor subsystem.

This mirrors the interface provided by https://media.dectris.com/SIMPLON_APIReference_v1p6.pdf#page=25

class ophyd_async.fastcs.eiger.EigerStreamIO(name: str = '', connector: DeviceConnector | None = None)[source]#

Bases: ophyd_async.core.Device

Driver for Eiger Stream subsystem.

This mirrors the interface provided by https://media.dectris.com/SIMPLON_APIReference_v1p6.pdf#page=32