caproto.server.scan_wrapper(scan_function: Scan, period: float, *, subtract_elapsed: bool = True, stop_on_error: bool = False, failure_severity: AlarmSeverity = AlarmSeverity.MAJOR_ALARM, use_scan_field: bool = False)[source]

Wrap a function intended for pvproperty.scan with common logic to periodically call it.

scan_functionasync callable
The scan function to wrap, with expected signature:

(group, instance, async_library)


Wait period seconds between calls to the scanned function

subtract_elapsedbool, optional

Subtract the elapsed time of the previous call from the period for the subsequent iteration

stop_on_errorbool, optional

Fail (and stop scanning) when unhandled exceptions occur

use_scan_fieldbool, optional

Use the .SCAN field if this pvproperty is a mocked record. Raises ValueError if record is not used.


The wrapped scan function.