#[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct SensorData {
pub mass_concentration_pm1p0: f32,
pub mass_concentration_pm2p5: f32,
pub mass_concentration_pm4p0: f32,
pub mass_concentration_pm10p0: f32,
pub ambient_humidity: f32,
pub ambient_temperature: f32,
pub voc_index: f32,
pub nox_index: f32,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct RawSensorData {
pub mass_concentration_pm1p0: u16,
pub mass_concentration_pm2p5: u16,
pub mass_concentration_pm4p0: u16,
pub mass_concentration_pm10p0: u16,
pub ambient_humidity: i16,
pub ambient_temperature: i16,
pub voc_index: i16,
pub nox_index: i16,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct RawMeasurementValues {
pub raw_humidity: i16,
pub raw_temperature: i16,
pub raw_voc: u16,
pub raw_nox: u16,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct PmValues {
pub mass_pm1p0: f32,
pub mass_pm2p5: f32,
pub mass_pm4p0: f32,
pub mass_pm10p0: f32,
pub number_pm0p5: f32,
pub number_pm1p0: f32,
pub number_pm2p5: f32,
pub number_pm4p0: f32,
pub number_pm10p0: f32,
pub typical_particle_size: f32,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct TemperatureOffsetParameters {
pub offset: i16,
pub slope: i16,
pub time_constant: u16,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct AlgorithmTuningParameters {
pub index_offset: i16,
pub learning_time_offset_hours: i16,
pub learning_time_gain_hours: i16,
pub gating_max_duration_minutes: i16,
pub std_initial: i16,
pub gain_factor: i16,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct VersionInfo {
pub firmware_major: u8,
pub firmware_minor: u8,
pub firmware_debug: bool,
pub hardware_major: u8,
pub hardware_minor: u8,
pub protocol_major: u8,
pub protocol_minor: u8,
}