Detectors

C400

Type: AreaDetector

class sophys.common.devices.c400.C400(*args, name, write_path=None, **kwargs)[source]

Bases: SingleTrigger, C400Detector

This is a C400 (Four-channel Pulse Counting Detector Controller) device using an AreaDetector-based IOC.

C400Cam([prefix, kind, read_attrs, ...])

__init__(*args, name, write_path=None, **kwargs)[source]
class sophys.common.devices.c400.C400ROIs(*args, **kwargs)[source]

Bases: Device

Old C400 (Deprecated)

Type: Standalone

class sophys.common.devices.c400.OldC400(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

Bases: Device

class OldC400(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)

Attributes

acquire

EpicsSignal --- Suffix = ACQUIRE | Kind.omitted

exposure_time

EpicsSignal --- Suffix = PERIOD | Kind.config

reading

EpicsSignal --- Suffix = COUNT_ch1 | Kind.normal


Mobipix

Type: AreaDetector

class sophys.common.devices.mobipix.Mobipix(name, prefix, *, save_hdf_file=True, enable_num_images=False, **kwargs)[source]

Bases: SingleTrigger, MobipixDetector

This is a Mobipix device using an AreaDetector-based IOC.

Parameters:
  • name (str) – The human-readable device’s name. It will be used by visualization tools and similar.

  • prefix (str) – The PV prefix for the detector. It needs a trailing separator, usually ‘:’.

  • save_hdf_file (bool, optional) – Whether to setup the NDFileHDF5 plugin to save images from the detector. Defaults to True.

  • enable_num_images (bool, optional) –

    Whether to enable the NumImages field or not. Defaults to False.

    Note that enabling this option is mostly a performance optimization, and shouldn’t be very useful at low framerates. Due to some issues with the IOC, keeping it disabled is the safest option.

acquisition_time

Time taken to acquire a single image (disconsidering control overheads).

Type:

Signal

num_images

Total number of images to take.

Type:

Signal

num_exposures

Number of images to take for each trigger signal.

Type:

int

hdf_file_name

Name of the HDF5 to save. It will be formatted into ‘hdf_file_template’. Defaults to the UUID of the run.

Type:

str, optional

hdf_file_path

Path to save the HDF5 file to. Defaults to ‘/tmp’.

Type:

str, optional

hdf_file_template

Value of the FileTemplate PV in the HDF5 plugin. Defaults to ‘%s%s_%3.3d.h5’.

Type:

str, optional

__init__(name, prefix, *, save_hdf_file=True, enable_num_images=False, **kwargs)[source]

This is a Mobipix device using an AreaDetector-based IOC.

Parameters:
  • name (str) – The human-readable device’s name. It will be used by visualization tools and similar.

  • prefix (str) – The PV prefix for the detector. It needs a trailing separator, usually ‘:’.

  • save_hdf_file (bool, optional) – Whether to setup the NDFileHDF5 plugin to save images from the detector. Defaults to True.

  • enable_num_images (bool, optional) –

    Whether to enable the NumImages field or not. Defaults to False.

    Note that enabling this option is mostly a performance optimization, and shouldn’t be very useful at low framerates. Due to some issues with the IOC, keeping it disabled is the safest option.

acquisition_time

Time taken to acquire a single image (disconsidering control overheads).

Type:

Signal

num_images

Total number of images to take.

Type:

Signal

num_exposures

Number of images to take for each trigger signal.

Type:

int

hdf_file_name

Name of the HDF5 to save. It will be formatted into ‘hdf_file_template’. Defaults to the UUID of the run.

Type:

str, optional

hdf_file_path

Path to save the HDF5 file to. Defaults to ‘/tmp’.

Type:

str, optional

hdf_file_template

Value of the FileTemplate PV in the HDF5 plugin. Defaults to ‘%s%s_%3.3d.h5’.

Type:

str, optional

class sophys.common.devices.mobipix.MobipixEnergyThresholdSetter(mobipix: Mobipix)[source]

Bases: Device

nrg

InternalSignal — Suffix = None | Kind.hinted

property low_threshold_adjust
property high_threshold_adjust
__init__(mobipix: Mobipix)[source]
read() OrderedDictType[str, Dict[str, Any]]

Read data from the device.

This method is expected to be as instantaneous as possible, with any substantial acquisition time taken care of in trigger().

The OrderedDict returned by this method must have identical keys (in the same order) as the OrderedDict returned by describe().

By convention, the first key in the return is the ‘primary’ key and maybe used by heuristics in bluesky.

The values in the ordered dictionary must be dict (-likes) with the keys {'value', 'timestamp'}. The 'value' may have any type, the timestamp must be a float UNIX epoch timestamp in UTC.

Returns:

data – The keys must be strings and the values must be dict-like with the keys {'value', 'timestamp'}

Return type:

OrderedDict

class sophys.common.devices.mobipix.MobipixBackend(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

Bases: Device

acquire

EpicsSignal — Suffix = acquire | Kind.normal

It is an error to set the signal without first activating ‘cam.Acquire’, as that creates the connection between the driver and the backend.

read_matrix

EpicsSignalWithCustomReadoutRBV — Suffix = read_matrix | Kind.normal

stage()[source]

Stage the device for data collection.

This method is expected to put the device into a state where repeated calls to trigger() and read() will ‘do the right thing’.

Staging not idempotent and should raise RedundantStaging if staged twice without an intermediate unstage().

This method should be as fast as is feasible as it does not return a status object.

The return value of this is a list of all of the (sub) devices stage, including it’s self. This is used to ensure devices are not staged twice by the RunEngine.

This is an optional method, if the device does not need staging behavior it should not implement stage (or unstage).

Returns:

devices – list including self and all child devices staged

Return type:

list

class sophys.common.devices.mobipix.MobipixCam(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

Bases: CamBase_V33

class sophys.common.devices.mobipix.MobipixDetector(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

Bases: DetectorBase

exception sophys.common.devices.mobipix.MobipixError[source]

Bases: Exception

exception sophys.common.devices.mobipix.MobipixMissingConfigurationError[source]

Bases: MobipixError


Pilatus 300K

Type: AreaDetector

class sophys.common.devices.pilatus_300k.Pilatus(*args, write_path=None, **kwargs)[source]

Bases: PilatusWithoutHDF5

class sophys.common.devices.pilatus_300k.Pilatus6ROIs(*args, **kwargs)[source]

Bases: Device

class sophys.common.devices.pilatus_300k.PilatusWithoutHDF5(*args, image_name=None, **kwargs)[source]

Bases: SingleTrigger, PilatusDetector


Pimega

Type: AreaDetector

class sophys.common.devices.pimega.Pimega(name, prefix, **kwargs)[source]

Bases: SingleTrigger, PimegaDetector

PimegaCam(prefix, name, **kwargs)

__init__(name, prefix, **kwargs)[source]

Vortex

Type: AreaDetector

class sophys.common.devices.vortex.Vortex(*args, write_path=None, **kwargs)[source]

Bases: SingleTrigger, DetectorBase