ophyd_async.epics.eiger#

Package Contents#

Classes#

Odin

Common base class for all Ophyd Async Devices.

OdinWriter

Logic for making detector write data to somewhere persistent (e.g. HDF5 file).

Writing

All members should exist in the Backend, and there will be no extras.

API#

class ophyd_async.epics.eiger.Odin(prefix: str, name: str = '')[source]#

Bases: ophyd_async.core.Device

Common base class for all Ophyd Async Devices.

Parameters:
  • name – Optional name of the Device

  • connector – Optional DeviceConnector instance to use at connect()

class ophyd_async.epics.eiger.OdinWriter(path_provider: PathProvider, odin_driver: Odin, eiger_bit_depth: SignalR[int])[source]#

Bases: ophyd_async.core.DetectorWriter

Logic for making detector write data to somewhere persistent (e.g. HDF5 file).

async open(name: str, exposures_per_event: int = 1) dict[str, DataKey][source]#

Open writer and wait for it to be ready for data.

Parameters:

exposures_per_event – Each StreamDatum index corresponds to this many written exposures

Returns:

Output for describe()

async observe_indices_written(timeout: float) AsyncGenerator[int, None][source]#
async get_indices_written() int[source]#

Get the number of indices written.

abstractmethod collect_stream_docs(name: str, indices_written: int) AsyncIterator[StreamAsset][source]#

Create Stream docs up to given number written.

async close() None[source]#

Close writer, blocks until I/O is complete.

class ophyd_async.epics.eiger.Writing[source]#

Bases: ophyd_async.core.StrictEnum

All members should exist in the Backend, and there will be no extras.

CAPTURE#

‘Capture’

DONE#

‘Done’