Plan wrappers

Plan wrappers that temporarily modify DAE (Data Acquisition Electronics) settings during a plan, automatically restoring the original values afterwards. This ensures that your experiments don’t permanently change instrument configuration.

Available Wrappers

~dae_table_wrapper

A function that wraps a plan to temporarily modify the DAE wiring/detector/spectra tables.

RE(with_dae_tables(bps.null(), dae=dae, new_settings=modified_settings))
def plan():
    yield from with_dae_tables(scan(...), dae=dae, new_settings=modified_settings)

(where modified_settings is a dataset in the form DaeSettingsData)

with_num_periods

A function that wraps a plan to temporarily modify the number of DAE software periods.

RE(with_num_periods(bps.null(), dae=dae, number_of_periods=1000))
def plan():
    yield from with_num_periods(scan(...), dae=dae, number_of_periods=1000)

with_time_channels

A function that wraps a plan to temporarily modify the DAE time channel boundaries.

RE(with_time_channels(bps.null(), dae=dae, new_settings=modified_settings))
def plan():
    yield from with_time_channels(scan(...), dae=dae, new_settings=modified_settings)

(where modified_settings is a dataset in the form DaeTCBSettingsData)

Usage

To use these wrappers, pass a user plan as the first argument to the wrappers in this module:

from ibex_bluesky_core.plan_stubs import with_num_periods
from ibex_bluesky_core.devices.simpledae import SimpleDae

dae = SimpleDae()  # Give your DAE options here


def plan():
    yield from with_num_periods(scan(...), dae=dae, number_of_periods=1000)

the plan with the modified DAE settings, restoring the original settings after the scan completes (whether successfully or not).