victron_gx/
ac.rs

1use tracing::debug;
2
3use crate::traits::HandleFrame;
4
5#[derive(Debug, Clone, Default)]
6/// AC specifications (input or output)
7/// Voltage in V, Power in W, Frequency in Hz
8/// WARNING: Only single-phase (L1) is currently supported
9pub struct AcSpec {
10    pub voltage: Option<f64>,
11    pub power: Option<f64>,
12    pub frequency: Option<f64>,
13}
14
15impl HandleFrame for AcSpec {
16    fn handle_frame(&mut self, parts: &[&str], value: Option<f64>) {
17        match parts {
18            ["L1", "V"] => self.voltage = value,
19            ["L1", "P"] => self.power = value,
20            ["L1", "F"] => self.frequency = value,
21            _ => {
22                debug!("Unhandled AcSpec parts: {:?}, value: {:?}", parts, value);
23            }
24        }
25    }
26}