Skip to main content

ProcessAction

Enum ProcessAction 

Source
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§

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.

Fields

§link_field: &'static str

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.

Fields

§link_field: &'static str
§target_field: &'static str
§

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.

Fields

§command: &'static str

Trait Implementations§

Source§

impl Clone for ProcessAction

Source§

fn clone(&self) -> ProcessAction

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProcessAction

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ProcessAction

Source§

fn eq(&self, other: &ProcessAction) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ProcessAction

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.