ophyd_async.epics.admerlin#

Support for the ADMerlin areaDetector driver.

https://github.com/areaDetector/ADMerlin.

Module Contents#

Classes#

MerlinDetector

Create an ADMerlin AreaDetector instance.

MerlinDriverIO

Driver for merlin model:DU897_BV as deployed on p99.

MerlinTriggerLogic

Trigger logic for MerlinDriverIO.

MerlinTriggerMode

Trigger modes for ADMerlin detector.

API#

class ophyd_async.epics.admerlin.MerlinDetector(prefix: str, path_provider: PathProvider | None = None, driver_suffix='cam1:', writer_type: ADWriterType | None = ADWriterType.HDF, writer_suffix: str | None = None, plugins: dict[str, NDPluginBaseIO] | None = None, config_sigs: Sequence[SignalR] = (), name: str = '')[source]#

Bases: ophyd_async.epics.adcore.AreaDetector[ophyd_async.epics.admerlin.MerlinDriverIO]

Create an ADMerlin AreaDetector instance.

Parameters:
  • prefix – EPICS PV prefix for the detector

  • path_provider – Provider for file paths during acquisition

  • driver_suffix – Suffix for the driver PV, defaults to “cam1:”

  • writer_type – Type of file writer (HDF or TIFF)

  • writer_suffix – Suffix for the writer PV

  • plugins – Additional areaDetector plugins to include

  • config_sigs – Additional signals to include in configuration

  • name – Name for the detector device

class ophyd_async.epics.admerlin.MerlinDriverIO(prefix: str, with_pvi: bool = False, name: str = '')[source]#

Bases: ophyd_async.epics.adcore.ADBaseIO

Driver for merlin model:DU897_BV as deployed on p99.

This mirrors the interface provided by ADMerlin/db/merlin.template. https://github.com/areaDetector/ADMerlin/blob/master/merlinApp/Db/merlin.template

trigger_mode: Annotated[SignalRW[MerlinTriggerMode], ophyd_async.epics.core.PvSuffix.rbv('TriggerMode')]#

None

class ophyd_async.epics.admerlin.MerlinTriggerLogic(driver: MerlinDriverIO)[source]#

Bases: ophyd_async.core.DetectorTriggerLogic

Trigger logic for MerlinDriverIO.

get_deadtime(config_values: SignalDict) float[source]#

Return the deadtime in seconds for the detector.

Parameters:

config_values – the value of each signal in config_sigs

async prepare_internal(num: int, livetime: float, deadtime: float)[source]#

Prepare the detector to take internally triggered exposures.

Parameters:
  • num – the number of exposures to take

  • livetime – how long the exposure should be, 0 means what is currently set

  • deadtime – how long between exposures, 0 means the shortest possible

async prepare_edge(num: int, livetime: float)[source]#

Prepare the detector to take external edge triggered exposures.

Parameters:
  • num – the number of exposures to take

  • livetime – how long the exposure should be, 0 means what is currently set

class ophyd_async.epics.admerlin.MerlinTriggerMode[source]#

Bases: ophyd_async.core.StrictEnum

Trigger modes for ADMerlin detector.

INTERNAL#

‘Internal’

TRIGGER_ENABLE#

‘Trigger Enable’

TRIGGER_START_RISING#

‘Trigger start rising’

TRIGGER_START_FALLING#

‘Trigger start falling’

TRIGGER_BOTH_RISING#

‘Trigger both rising’

LVDS_TRIG_ENABLE#

‘LVDS Trig Enable’

LVDS_TRIG_START_RISING#

‘LVDS Trig start rising’

LVDS_TRIG_START_FALLING#

‘LVDS Trig start falling’

LVDS_TRIG_BOTH_RISING#

‘LVDS Trig both rising’

SOFTWARE#

‘Software’