1#[cfg(feature = "uom")]
12use uom::si::f32::Pressure as UomPressure;
13#[cfg(feature = "uom")]
14use uom::si::f32::Ratio as UomHumidity;
15#[cfg(feature = "uom")]
16use uom::si::f32::ThermodynamicTemperature as UomTemperature;
17#[cfg(feature = "uom")]
18use uom::si::pressure::pascal;
19#[cfg(feature = "uom")]
20use uom::si::ratio::percent;
21#[cfg(feature = "uom")]
22use uom::si::thermodynamic_temperature::degree_celsius;
23
24#[cfg(feature = "uom")]
25pub type Temperature = UomTemperature;
27
28#[cfg(feature = "uom")]
29pub type Pressure = UomPressure;
31
32#[cfg(feature = "uom")]
33pub type Humidity = UomHumidity;
35
36#[cfg(feature = "uom")]
37pub(crate) fn temperature_from_celsius(raw: f32) -> Temperature {
39 Temperature::new::<degree_celsius>(raw)
40}
41
42#[cfg(feature = "uom")]
43pub(crate) fn pressure_from_pascal(raw: f32) -> Pressure {
45 Pressure::new::<pascal>(raw)
46}
47
48#[cfg(feature = "uom")]
49pub(crate) fn humidity_from_number(raw: f32) -> Humidity {
51 Humidity::new::<percent>(raw)
52}
53
54#[cfg(not(feature = "uom"))]
55pub type Pressure = f32;
57
58#[cfg(not(feature = "uom"))]
59pub type Temperature = f32;
61
62#[cfg(not(feature = "uom"))]
63pub type Humidity = f32;
65
66#[cfg(not(feature = "uom"))]
67pub(crate) fn temperature_from_celsius(raw: f32) -> Temperature {
69 raw
70}
71
72#[cfg(not(feature = "uom"))]
73pub(crate) fn pressure_from_pascal(raw: f32) -> Pressure {
75 raw
76}
77
78#[cfg(not(feature = "uom"))]
79pub(crate) fn humidity_from_number(raw: f32) -> Humidity {
81 raw
82}
83
84#[derive(Debug, Default)]
88pub struct Sample {
89 pub temperature: Option<Temperature>,
91
92 pub pressure: Option<Pressure>,
94
95 pub humidity: Option<Humidity>,
97}
98
99#[derive(Debug, Default)]
103#[allow(clippy::struct_field_names)]
104pub(crate) struct RawSample {
105 pub(crate) adc_t: Option<u32>,
107
108 pub(crate) adc_p: Option<u32>,
110
111 pub(crate) adc_h: Option<u16>,
113}