pub struct OutOfRangeDetector {
pub high_limit: f32,
pub low_limit: f32,
pub deadband: f32,
pub limit_enable: LimitEnable,
pub notification_class: u32,
pub notify_type: u32,
pub event_enable: u8,
pub time_delay: u32,
pub event_state: EventState,
pub acked_transitions: u8,
}Expand description
OUT_OF_RANGE event detector for analog objects.
Implements the event state machine per Clause 13.3.2:
- NORMAL → HIGH_LIMIT when
present_value > high_limit(if high_limit enabled) - NORMAL → LOW_LIMIT when
present_value < low_limit(if low_limit enabled) - HIGH_LIMIT → NORMAL when
present_value < high_limit - deadband - LOW_LIMIT → NORMAL when
present_value > low_limit + deadband - HIGH_LIMIT → LOW_LIMIT when
present_value < low_limit - LOW_LIMIT → HIGH_LIMIT when
present_value > high_limit
Fields§
§high_limit: f32§low_limit: f32§deadband: f32§limit_enable: LimitEnable§notification_class: u32§notify_type: u32§event_enable: u8§time_delay: u32§event_state: EventState§acked_transitions: u8Acknowledged-transitions bitfield (3 bits: TO_OFFNORMAL, TO_FAULT, TO_NORMAL). A set bit means the corresponding transition has been acknowledged.
Implementations§
Source§impl OutOfRangeDetector
impl OutOfRangeDetector
Sourcepub fn evaluate(&mut self, present_value: f32) -> Option<EventStateChange>
pub fn evaluate(&mut self, present_value: f32) -> Option<EventStateChange>
Evaluate the present value against configured limits.
Returns Some(EventStateChange) if the event state changed and
the corresponding event_enable bit is set (Clause 13.1.4).
Internal state always updates regardless of event_enable.
Note: This implementation uses instant transitions (ignores time_delay).
Trait Implementations§
Source§impl Clone for OutOfRangeDetector
impl Clone for OutOfRangeDetector
Source§fn clone(&self) -> OutOfRangeDetector
fn clone(&self) -> OutOfRangeDetector
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OutOfRangeDetector
impl Debug for OutOfRangeDetector
Auto Trait Implementations§
impl Freeze for OutOfRangeDetector
impl RefUnwindSafe for OutOfRangeDetector
impl Send for OutOfRangeDetector
impl Sync for OutOfRangeDetector
impl Unpin for OutOfRangeDetector
impl UnsafeUnpin for OutOfRangeDetector
impl UnwindSafe for OutOfRangeDetector
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