#[cfg(feature = "uom")]
use uom::si::f32::Pressure as UomPressure;
#[cfg(feature = "uom")]
use uom::si::f32::Ratio as UomHumidity;
#[cfg(feature = "uom")]
use uom::si::f32::ThermodynamicTemperature as UomTemperature;
#[cfg(feature = "uom")]
use uom::si::pressure::pascal;
#[cfg(feature = "uom")]
use uom::si::ratio::percent;
#[cfg(feature = "uom")]
use uom::si::thermodynamic_temperature::degree_celsius;
#[cfg(feature = "uom")]
pub type Temperature = UomTemperature;
#[cfg(feature = "uom")]
pub type Pressure = UomPressure;
#[cfg(feature = "uom")]
pub type Humidity = UomHumidity;
#[cfg(feature = "uom")]
pub(crate) fn temperature_from_celsius(raw: f32) -> Temperature {
Temperature::new::<degree_celsius>(raw)
}
#[cfg(feature = "uom")]
pub(crate) fn pressure_from_pascal(raw: f32) -> Pressure {
Pressure::new::<pascal>(raw)
}
#[cfg(feature = "uom")]
pub(crate) fn humidity_from_number(raw: f32) -> Humidity {
Humidity::new::<percent>(raw)
}
#[cfg(not(feature = "uom"))]
pub type Pressure = f32;
#[cfg(not(feature = "uom"))]
pub type Temperature = f32;
#[cfg(not(feature = "uom"))]
pub type Humidity = f32;
#[cfg(not(feature = "uom"))]
pub(crate) fn temperature_from_celsius(raw: f32) -> Temperature {
raw
}
#[cfg(not(feature = "uom"))]
pub(crate) fn pressure_from_pascal(raw: f32) -> Pressure {
raw
}
#[cfg(not(feature = "uom"))]
pub(crate) fn humidity_from_number(raw: f32) -> Humidity {
raw
}
#[derive(Clone, Copy, Debug, Default)]
pub struct Sample {
pub temperature: Option<Temperature>,
pub pressure: Option<Pressure>,
pub humidity: Option<Humidity>,
}
#[derive(Clone, Copy, Debug, Default)]
#[allow(clippy::struct_field_names)]
pub(crate) struct RawSample {
pub(crate) adc_t: Option<u32>,
pub(crate) adc_p: Option<u32>,
pub(crate) adc_h: Option<u16>,
}