pub struct ThrottleRecord {Show 21 fields
pub val: f64,
pub oval: f64,
pub sent: f64,
pub osent: f64,
pub wait: i16,
pub hopr: f64,
pub lopr: f64,
pub drvlh: f64,
pub drvll: f64,
pub drvls: i16,
pub drvlc: i16,
pub ver: String,
pub sts: i16,
pub prec: i16,
pub dprec: i16,
pub dly: f64,
pub out: String,
pub ov: i16,
pub sinp: String,
pub siv: i16,
pub sync: i16,
/* private fields */
}Expand description
Throttle record — rate-limits value changes to prevent device damage.
Ported from EPICS std module throttleRecord.c.
When VAL is written, the record checks drive limits, optionally clips the value, sets WAIT=True, then writes SENT to the OUT link only after the minimum delay (DLY) has elapsed since the last output. If a new value arrives during the delay, it queues the latest value and sends it when the delay expires.
Fields§
§val: f64Set value (VAL)
oval: f64Previous set value (OVAL), read-only
sent: f64Last sent value (SENT), read-only
osent: f64Previous sent value (OSENT), read-only
wait: i16Busy flag (WAIT): 0=False, 1=True, read-only
hopr: f64High operating range (HOPR)
lopr: f64Low operating range (LOPR)
drvlh: f64High drive limit (DRVLH)
drvll: f64Low drive limit (DRVLL)
drvls: i16Limit status: 0=Normal, 1=Low, 2=High (DRVLS), read-only
drvlc: i16Limit clipping: 0=Off, 1=On (DRVLC)
ver: StringCode version string (VER), read-only
sts: i16Record status: 0=Unknown, 1=Error, 2=Success (STS), read-only
prec: i16Display precision (PREC)
dprec: i16Delay display precision (DPREC)
dly: f64Delay between outputs in seconds (DLY)
out: StringOutput link (OUT)
ov: i16Output link valid: 0=ExtNC, 1=Ext, 2=Local, 3=Constant (OV), read-only
sinp: StringSync input link (SINP)
siv: i16Sync input link valid (SIV), read-only
sync: i16Sync trigger: 0=Idle, 1=Process (SYNC)
Trait Implementations§
Source§impl Default for ThrottleRecord
impl Default for ThrottleRecord
Source§impl Record for ThrottleRecord
impl Record for ThrottleRecord
Source§fn record_type(&self) -> &'static str
fn record_type(&self) -> &'static str
Source§fn pre_process_actions(&mut self) -> Vec<ProcessAction>
fn pre_process_actions(&mut self) -> Vec<ProcessAction>
Source§fn process(&mut self) -> CaResult<ProcessOutcome>
fn process(&mut self) -> CaResult<ProcessOutcome>
Source§fn can_device_write(&self) -> bool
fn can_device_write(&self) -> bool
Source§fn special(&mut self, field: &str, after: bool) -> CaResult<()>
fn special(&mut self, field: &str, after: bool) -> CaResult<()>
Source§fn put_field(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
fn put_field(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
Source§fn field_list(&self) -> &'static [FieldDesc]
fn field_list(&self) -> &'static [FieldDesc]
Source§fn init_record(&mut self, pass: u8) -> CaResult<()>
fn init_record(&mut self, pass: u8) -> CaResult<()>
Source§fn took_metadata_change(&mut self) -> bool
fn took_metadata_change(&mut self) -> bool
process() call
mutated a metadata-class field (EGU/PREC/HOPR/LOPR/HLM/LLM/
alarm limits / DRVH/DRVL / state strings). Read more