Readout Priority¶
readoutPriority is a key part of the device configuration that controls when BEC reads a device during a scan. It is independent of the ophyd Kind attribute, which controls which signals are included in those device.read() or device.read_configuration() operations. Together they determine which data will be included in scan data, configuration data or excluded.
Readout Priority vs. ophyd Kind
Kindcontrols which signals are included inread()andread_configuration().readoutPrioritycontrols if a device'sread()is requested during a scan.
Readout Priority Options¶
BEC supports four readout priorities that can be assigned to devices in the configuration. The
most common ones are monitored and baseline, which are used for devices that should be read at
monitored scan read points and baseline points, respectively. The async priority is used for
devices that produce asynchronous data streams, while on_request is for devices that should only
be read when explicitly requested.
Modifications during Scans¶
If the user requests to scan a motor that is not configured as monitored, the scan typically promotes it to monitored for that scan request. This ensures that scan motors are always included in monitored data, even if their static configuration differs.
Practical guidance¶
- Choose
monitoredfor devices that should be monitored in scans. - Choose
baselinefor mostly static setup-state devices and motors. - Choose
on_requestfor devices that should only be read when explicitly requested. - Choose
asyncfor devices like large-area detectors that produce asynchronous data streams.
Keep readoutPriority separate from ophyd Kind
Kind controls which signals a device exposes through read() and
read_configuration(). readoutPriority controls when BEC asks that device for
those readings during a scan. In other words, Kind defines the contents of a
device readout, while readoutPriority defines when that readout participates in
acquisition. This separation lets you adjust scan behavior without changing the
device's underlying read interface.