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, } }