21 lines
657 B
Rust
21 lines
657 B
Rust
pub use plc_platform_core::control::{command, runtime};
|
|
|
|
pub mod engine;
|
|
pub mod simulate;
|
|
pub mod validator;
|
|
|
|
use crate::telemetry::{DataValue, PointMonitorInfo};
|
|
|
|
pub(crate) fn monitor_value_as_bool(monitor: &PointMonitorInfo) -> bool {
|
|
match monitor.value.as_ref() {
|
|
Some(DataValue::Bool(value)) => *value,
|
|
Some(DataValue::Int(value)) => *value != 0,
|
|
Some(DataValue::UInt(value)) => *value != 0,
|
|
Some(DataValue::Float(value)) => *value != 0.0,
|
|
Some(DataValue::Text(value)) => {
|
|
matches!(value.trim().to_ascii_lowercase().as_str(), "1" | "true" | "on" | "yes")
|
|
}
|
|
_ => false,
|
|
}
|
|
}
|