pub struct SecPastEpochDeviceSupport { /* private fields */ }Expand description
“Sec Past Epoch” device support for ai records.
Reads the current time as seconds past the EPICS epoch (1990-01-01). If PHAS field is nonzero, includes fractional seconds.
Ported from devTimeOfDay.c (devAiTodSeconds).
Implementations§
Trait Implementations§
Source§impl Default for SecPastEpochDeviceSupport
impl Default for SecPastEpochDeviceSupport
Source§impl DeviceSupport for SecPastEpochDeviceSupport
impl DeviceSupport for SecPastEpochDeviceSupport
fn dtyp(&self) -> &str
Source§fn set_process_context(&mut self, ctx: &ProcessContext)
fn set_process_context(&mut self, ctx: &ProcessContext)
Called by the framework immediately before
read()
to push a read-only snapshot of framework-owned CommonFields
state (crate::server::record::ProcessContext) that the device
support needs. Read moreSource§fn read(&mut self, record: &mut dyn Record) -> CaResult<DeviceReadOutcome>
fn read(&mut self, record: &mut dyn Record) -> CaResult<DeviceReadOutcome>
Read from hardware into the record. Read more
fn write(&mut self, _record: &mut dyn Record) -> CaResult<()>
fn init(&mut self, _record: &mut (dyn Record + 'static)) -> Result<(), CaError>
Source§fn last_alarm(&self) -> Option<(u16, u16)>
fn last_alarm(&self) -> Option<(u16, u16)>
Return the last alarm (status, severity) from the driver.
None means the driver does not override alarms.
Source§fn last_timestamp(&self) -> Option<SystemTime>
fn last_timestamp(&self) -> Option<SystemTime>
Return the last timestamp from the driver.
None means the driver does not override timestamps.
Source§fn last_utag(&self) -> Option<u64>
fn last_utag(&self) -> Option<u64>
Return the userTag the driver attached to its reading, as the
64-bit
epicsUTag. None means the driver provides no userTag
and common.utag is left untouched. Read moreSource§fn set_record_info(&mut self, _name: &str, _scan: ScanType)
fn set_record_info(&mut self, _name: &str, _scan: ScanType)
Called after init() with the record name and scan type.
Source§fn apply_record_info(&mut self, _info: &HashMap<String, String>)
fn apply_record_info(&mut self, _info: &HashMap<String, String>)
Forward parsed
info("key", "value") directives from the .db
file to the device support. Default is a no-op; drivers that
react to specific tags (asyn asyn:READBACK, EtherCAT terminal
hints, etc.) override this. Called once after set_record_info
during builder wiring; not called again at runtime.Source§fn io_intr_receiver(&mut self) -> Option<Receiver<()>>
fn io_intr_receiver(&mut self) -> Option<Receiver<()>>
Return a receiver for I/O Intr scan notifications.
Called for records with
SCAN="I/O Intr", and for any device that
reports io_intr_scan_independent.Source§fn property_post_receiver(
&mut self,
) -> Option<Receiver<Vec<(String, EpicsValue)>>>
fn property_post_receiver( &mut self, ) -> Option<Receiver<Vec<(String, EpicsValue)>>>
Return a receiver of out-of-band PROPERTY-class field posts. Read more
Source§fn io_intr_scan_independent(&self) -> bool
fn io_intr_scan_independent(&self) -> bool
Whether this device drives record processing from its own callback
channel independently of the runtime
SCAN menu. Read moreSource§fn arm_readback_callback(&mut self)
fn arm_readback_callback(&mut self)
Arm an output driver-callback (
asyn:READBACK) cycle. Read moreSource§fn reconcile_readback_callback(&mut self)
fn reconcile_readback_callback(&mut self)
Reconcile an armed output driver-callback cycle after processing. Read more
Source§fn output_callback_readback(&self) -> bool
fn output_callback_readback(&self) -> bool
Whether a driver-callback (
asyn:READBACK) processing cycle replaces
this device’s output stage with a value readback. Read moreSource§fn write_begin(
&mut self,
_record: &mut (dyn Record + 'static),
) -> Result<Option<Box<dyn WriteCompletion>>, CaError>
fn write_begin( &mut self, _record: &mut (dyn Record + 'static), ) -> Result<Option<Box<dyn WriteCompletion>>, CaError>
Begin an asynchronous write (submit only, no blocking).
Returns
Some(handle) if the write was submitted to a worker queue —
the caller should wait on the handle outside any record lock.
Returns None to fall back to synchronous write().Source§fn handle_command(
&mut self,
_record: &mut (dyn Record + 'static),
_command: &str,
_args: &[EpicsValue],
) -> Result<Vec<&'static str>, CaError>
fn handle_command( &mut self, _record: &mut (dyn Record + 'static), _command: &str, _args: &[EpicsValue], ) -> Result<Vec<&'static str>, CaError>
Handle a named command from the record’s process() via
ProcessAction::DeviceCommand. This allows records to request
driver operations (e.g., scaler reset/arm/write_preset) without
holding a direct driver reference. Read moreAuto Trait Implementations§
impl Freeze for SecPastEpochDeviceSupport
impl RefUnwindSafe for SecPastEpochDeviceSupport
impl Send for SecPastEpochDeviceSupport
impl Sync for SecPastEpochDeviceSupport
impl Unpin for SecPastEpochDeviceSupport
impl UnsafeUnpin for SecPastEpochDeviceSupport
impl UnwindSafe for SecPastEpochDeviceSupport
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