pub struct TimestampRecord {
pub val: String,
pub oval: String,
pub rval: i32,
pub tst: i16,
}Expand description
Timestamp record — generates formatted timestamp strings.
Ported from EPICS std module timestampRecord.c.
Fields§
§val: StringCurrent formatted timestamp string (VAL).
oval: StringPrevious value for change detection (OVAL).
rval: i32Seconds past EPICS epoch (RVAL).
tst: i16Timestamp format selector 0–10 (TST).
Trait Implementations§
Source§impl Default for TimestampRecord
impl Default for TimestampRecord
Source§impl Record for TimestampRecord
impl Record for TimestampRecord
Source§fn record_type(&self) -> &'static str
fn record_type(&self) -> &'static str
Return the record type name (e.g., “ai”, “ao”, “bi”).
Source§fn process(&mut self) -> CaResult<ProcessOutcome>
fn process(&mut self) -> CaResult<ProcessOutcome>
Process the record (scan/compute cycle). Read more
Source§fn put_field(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
fn put_field(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
Set a field value by name.
Source§fn field_list(&self) -> &'static [FieldDesc]
fn field_list(&self) -> &'static [FieldDesc]
Return the list of field descriptors.
Source§fn clears_udf(&self) -> bool
fn clears_udf(&self) -> bool
Whether processing this record should clear UDF.
Override to return false for record types that don’t produce a valid value every cycle.
Source§fn took_metadata_change(&mut self) -> bool
fn took_metadata_change(&mut self) -> bool
Optional: report whether this record’s last
process() call
mutated a metadata-class field (EGU/PREC/HOPR/LOPR/HLM/LLM/
alarm limits / DRVH/DRVL / state strings). Read moreSource§fn validate_put(&self, _field: &str, _value: &EpicsValue) -> Result<(), CaError>
fn validate_put(&self, _field: &str, _value: &EpicsValue) -> Result<(), CaError>
Validate a put before it is applied. Return Err to reject.
Source§fn primary_field(&self) -> &'static str
fn primary_field(&self) -> &'static str
Primary field name (default “VAL”). Override for waveform etc.
Source§fn val(&self) -> Option<EpicsValue>
fn val(&self) -> Option<EpicsValue>
Get the primary value.
Source§fn set_val(&mut self, value: EpicsValue) -> Result<(), CaError>
fn set_val(&mut self, value: EpicsValue) -> Result<(), CaError>
Set the primary value. Read more
Source§fn can_device_write(&self) -> bool
fn can_device_write(&self) -> bool
Whether this record type supports device write (output records only).
Source§fn is_put_complete(&self) -> bool
fn is_put_complete(&self) -> bool
Whether async processing has completed and put_notify can respond.
Records that return AsyncPendingNotify should return false while
async work is in progress, and true when done.
Default: true (synchronous records are always complete).
Source§fn should_fire_forward_link(&self) -> bool
fn should_fire_forward_link(&self) -> bool
Whether this record should fire its forward link after processing.
Source§fn should_output(&self) -> bool
fn should_output(&self) -> bool
Whether this record’s OUT link should be written after processing.
Defaults to true. Override in calcout to implement OOPT conditional output.
Source§fn uses_monitor_deadband(&self) -> bool
fn uses_monitor_deadband(&self) -> bool
Whether this record uses MDEL/ADEL deadband for monitor posting.
Binary records (bi, bo, busy, mbbi, mbbo) return false because
C EPICS always posts monitors for these record types regardless
of whether the value changed.
Source§fn init_record(&mut self, _pass: u8) -> Result<(), CaError>
fn init_record(&mut self, _pass: u8) -> Result<(), CaError>
Initialize record (pass 0: field defaults; pass 1: dependent init).
Source§fn special(&mut self, _field: &str, _after: bool) -> Result<(), CaError>
fn special(&mut self, _field: &str, _after: bool) -> Result<(), CaError>
Called before/after a field put for side-effect processing.
Source§fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>
fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>
Downcast to concrete type for device support init injection.
Override in record types that need device support to inject state (e.g., MotorRecord).
Source§fn multi_input_links(&self) -> &[(&'static str, &'static str)]
fn multi_input_links(&self) -> &[(&'static str, &'static str)]
Return multi-input link field pairs: (link_field, value_field).
Override in calc, calcout, sel, sub to return INPA..INPL → A..L mappings.
Source§fn multi_output_links(&self) -> &[(&'static str, &'static str)]
fn multi_output_links(&self) -> &[(&'static str, &'static str)]
Return multi-output link field pairs: (link_field, value_field).
Override in transform to return OUTA..OUTP → A..P mappings.
Source§fn put_field_internal(
&mut self,
name: &str,
value: EpicsValue,
) -> Result<(), CaError>
fn put_field_internal( &mut self, name: &str, value: EpicsValue, ) -> Result<(), CaError>
Internal field write that bypasses read-only checks.
Used by the framework to write values from ReadDbLink actions
into fields that are normally read-only (e.g., epid.CVAL).
Default implementation delegates to put_field().
Source§fn pre_process_actions(&mut self) -> Vec<ProcessAction>
fn pre_process_actions(&mut self) -> Vec<ProcessAction>
Return pre-process actions (ReadDbLink) that the framework should
execute BEFORE calling process(). This is called once per cycle.
Default returns empty. Override in records that need link reads
to be available during process().
Source§fn set_device_did_compute(&mut self, _did_compute: bool)
fn set_device_did_compute(&mut self, _did_compute: bool)
Called by the framework before process() to indicate whether device
support’s read() already performed the record’s compute step.
Override in records that have a built-in compute (e.g., epid PID)
to skip it when device support already ran it.
Default: ignore.
Auto Trait Implementations§
impl Freeze for TimestampRecord
impl RefUnwindSafe for TimestampRecord
impl Send for TimestampRecord
impl Sync for TimestampRecord
impl Unpin for TimestampRecord
impl UnsafeUnpin for TimestampRecord
impl UnwindSafe for TimestampRecord
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more