ibex_bluesky_core.devices.dae

Utilities for the DAE device - mostly XML helpers.

Members

Dae

Device representing the ISIS data acquisition electronics.

DaeCheckingSignal

Device that wraps a signal and checks the result of a set.

RunstateEnum

The run state.

class ibex_bluesky_core.devices.dae.BeginRunEx(dae_prefix: str, name: str = '')[source]

Bases: StandardReadable, Movable[BeginRunExBits]

Subdevice for the BEGINRUNEX signal to begin a run.

Set up write-only signal for BEGINRUNEX.

set(value: BeginRunExBits) None[source]

Start a run with the specified bits - See BeginRunExBits.

class ibex_bluesky_core.devices.dae.BeginRunExBits(value)[source]

Bases: IntFlag

Bits for BEGINRUNEX.

class ibex_bluesky_core.devices.dae.Dae(prefix: str, name: str = 'DAE')[source]

Bases: StandardReadable

Device representing the ISIS data acquisition electronics.

Create a new Dae ophyd-async device.

class ibex_bluesky_core.devices.dae.DaeCheckingSignal(datatype: type[T], prefix: str)[source]

Bases: StandardReadable, Movable[T], Generic[T]

Device that wraps a signal and checks the result of a set.

Device that wraps a signal and checks the result of a set.

Parameters:
  • datatype – The datatype of the signal.

  • prefix – The PV address of the signal.

set(value: T) None[source]

Check a signal when it is set. Raises if not set.

Parameters:

value – the value to set.

class ibex_bluesky_core.devices.dae.DaeControls(dae_prefix: str, name: str = '')[source]

Bases: StandardReadable

Subdevice for the DAE run controls.

Set up write-only signals for DAE controls.

class ibex_bluesky_core.devices.dae.DaeEventMode(dae_prefix: str, name: str = '')[source]

Bases: StandardReadable

Subdevice for event mode statistics.

Set up signals for DAE event mode statistics.

class ibex_bluesky_core.devices.dae.DaeMonitor(dae_prefix: str, name: str = '')[source]

Bases: StandardReadable

Subdevice for the current monitor.

Set up signals for the current DAE monitor.

class ibex_bluesky_core.devices.dae.DaePeriod(dae_prefix: str, name: str = '')[source]

Bases: StandardReadable

Subdevice for the current DAE period.

Set up signals for the current DAE period.

class ibex_bluesky_core.devices.dae.DaePeriodSettings(dae_prefix: str, name: str = '')[source]

Bases: Device, Locatable[DaePeriodSettingsData], Movable[DaePeriodSettingsData]

Subdevice for the DAE hardware period settings.

Set up signal for the DAE period settings.

See DaePeriodSettingsData for options.

async locate() Location[DaePeriodSettingsData][source]

Retrieve and convert the current XML to DaePeriodSettingsData.

set(value: DaePeriodSettingsData) None[source]

Set any changes in the period settings to the XML.

class ibex_bluesky_core.devices.dae.DaePeriodSettingsData(*, periods_settings: list[SinglePeriodSettings] | None = None, periods_soft_num: int | None = None, periods_type: PeriodType | None = None, periods_src: PeriodSource | None = None, periods_file: str | None = None, periods_seq: int | None = None, periods_delay: int | None = None)[source]

Bases: object

Dataclass for the hardware period settings.

class ibex_bluesky_core.devices.dae.DaeSettings(dae_prefix: str, name: str = '')[source]

Bases: StandardReadable, Locatable[DaeSettingsData], Movable[DaeSettingsData]

Subdevice for the DAE general settings.

Set up signals for the DAE general settings.

See DaeSettingsData for options.

async locate() Location[DaeSettingsData][source]

Retrieve and convert the current XML to DaeSettingsData.

set(value: DaeSettingsData) None[source]

Set any changes in the DAE settings to the XML.

class ibex_bluesky_core.devices.dae.DaeSettingsData(*, wiring_filepath: str | None = None, detector_filepath: str | None = None, spectra_filepath: str | None = None, mon_spect: int | None = None, mon_from: int | None = None, mon_to: int | None = None, timing_source: DaeTimingSource | None = None, smp_veto: bool | None = None, ts2_veto: bool | None = None, hz50_veto: bool | None = None, ext0_veto: bool | None = None, ext1_veto: bool | None = None, ext2_veto: bool | None = None, ext3_veto: bool | None = None, fermi_veto: bool | None = None, fermi_delay: int | None = None, fermi_width: int | None = None, muon_ms_mode: bool | None = None, muon_cherenkov_pulse: int | None = None, veto_0_name: str | None = None, veto_1_name: str | None = None, veto_2_name: str | None = None, veto_3_name: str | None = None)[source]

Bases: object

Dataclass for the general DAE settings.

class ibex_bluesky_core.devices.dae.DaeSpectra(dae_prefix: str, *, spectra: int, period: int, name: str = '')[source]

Bases: StandardReadable

Subdevice for a single DAE spectra.

Set up signals for a single DAE spectra.

async read_counts() ndarray[tuple[int, ...], dtype[float32]][source]

Read a correctly-sized array of counts.

async read_counts_per_time() ndarray[tuple[int, ...], dtype[float32]][source]

Read a correctly-sized array of counts divided by bin width.

async read_spectrum_dataarray() DataArray[source]

Get a scipp DataArray containing the current data from this spectrum.

Variances are set to the counts - i.e. the standard deviation is sqrt(N), which is typical for counts data.

Data is returned along dimension “tof”, which has bin-edge coordinates and units set from the units of the underlying PVs.

async read_tof() ndarray[tuple[int, ...], dtype[float32]][source]

Read a correctly-sized time-of-flight (x) array representing bin centres.

async read_tof_edges() ndarray[tuple[int, ...], dtype[float32]][source]

Read a correctly-sized time-of-flight (x) array representing bin edges.

class ibex_bluesky_core.devices.dae.DaeTCBSettings(dae_prefix: str, name: str = '')[source]

Bases: Device, Locatable[DaeTCBSettingsData], Movable[DaeTCBSettingsData]

Subdevice for the DAE time channel settings.

Set up signal for the DAE time channel settings.

See DaeTCBSettingsData for options.

async locate() Location[DaeTCBSettingsData][source]

Retrieve and convert the current XML to DaeTCBSettingsData.

set(value: DaeTCBSettingsData) None[source]

Set any changes in the tcb settings to the XML.

class ibex_bluesky_core.devices.dae.DaeTCBSettingsData(*, tcb_tables: dict[int, TimeRegime] | None = None, tcb_file: str | None = None, time_unit: TCBTimeUnit | None = None, tcb_calculation_method: TCBCalculationMethod | None = None)[source]

Bases: object

Dataclass for the DAE TCB settings.

class ibex_bluesky_core.devices.dae.DaeTimingSource(value)[source]

Bases: Enum

The DAE timing source.

class ibex_bluesky_core.devices.dae.PeriodSource(value)[source]

Bases: Enum

The period setup source, whether to use parameters or file.

class ibex_bluesky_core.devices.dae.PeriodType(value)[source]

Bases: Enum

General period type.

class ibex_bluesky_core.devices.dae.RunstateEnum(value)[source]

Bases: StrictEnum

The run state.

class ibex_bluesky_core.devices.dae.SinglePeriodSettings(*, type: int | None = None, frames: int | None = None, output: int | None = None, label: str | None = None)[source]

Bases: object

Dataclass for the settings on a single period.

class ibex_bluesky_core.devices.dae.TCBCalculationMethod(value)[source]

Bases: Enum

Calculation method for DAE TCB settings.

class ibex_bluesky_core.devices.dae.TCBTimeUnit(value)[source]

Bases: Enum

Time unit for DAE TCB settings.

class ibex_bluesky_core.devices.dae.TimeRegime(rows: dict[int, TimeRegimeRow])[source]

Bases: object

Time regime - contains a dict(rows) which is row_number:TimeRegimeRow.

class ibex_bluesky_core.devices.dae.TimeRegimeMode(value)[source]

Bases: Enum

Time Regime Mode options for a single row.

class ibex_bluesky_core.devices.dae.TimeRegimeRow(*, from_: float | None = None, to: float | None = None, steps: float | None = None, mode: TimeRegimeMode | None = None)[source]

Bases: object

A single time regime row.