pub enum ProcessAction {
WriteDbLink {
link_field: &'static str,
value: EpicsValue,
},
ReadDbLink {
link_field: &'static str,
target_field: &'static str,
},
ReprocessAfter(Duration),
DeviceCommand {
command: &'static str,
args: Vec<EpicsValue>,
},
}Expand description
Side-effect actions that a record requests from the processing framework.
Records return these from process() via ProcessOutcome::actions.
The framework executes them at the appropriate point in the processing
cycle, keeping records as pure state machines without direct DB access.
Variants§
WriteDbLink
Write a value to a DB link. The framework reads link_field from the
record to get the target PV name, then writes value to that PV.
Executed after alarm/snapshot, before FLNK. Example: scaler writes CNT to COUT/COUTP links.
ReadDbLink
Read a value from a DB link into a record field. The framework reads
link_field from the record to get the source PV name, reads that PV,
and writes the result into target_field via an internal put that
bypasses read-only checks.
Pre-process action: executed BEFORE the next process() cycle so
the value is immediately available. This matches C EPICS dbGetLink()
which is synchronous/immediate.
Example: throttle reads SINP into VAL when SYNC is triggered.
ReprocessAfter(Duration)
Schedule a re-process of this record after the given duration.
The framework spawns tokio::spawn(sleep(d) + process_record(name)).
The current cycle’s OUT/FLNK/notify proceed normally.
Equivalent to C EPICS callbackRequestDelayed() + scanOnce().
DeviceCommand
Send a named command to the device support driver.
The framework calls DeviceSupport::handle_command() with this data.
Used by scaler to request reset/arm/write_preset operations
without the record holding a direct driver reference.
Trait Implementations§
Source§impl Clone for ProcessAction
impl Clone for ProcessAction
Source§fn clone(&self) -> ProcessAction
fn clone(&self) -> ProcessAction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more