rsiot/message/phy_quantity/quantities/
pressure.rs

1use super::super::{PhyQuantity, QuantityName};
2
3impl PhyQuantity {
4    /// Задать давление в \[Па\]
5    pub fn new_pressure_Pa(value: f64) -> Self {
6        Self {
7            value,
8            quantity_name: QuantityName::Pressure,
9        }
10    }
11
12    /// Получить давление в \[Па\]
13    pub fn pressure_Pa(&self) -> Result<f64, String> {
14        match self.quantity_name {
15            QuantityName::Pressure => {
16                let value = self.value;
17                Ok(value)
18            }
19            _ => {
20                let err = format!(
21                    "You exprect pressure, but current unit: {:?}",
22                    self.quantity_name
23                );
24                Err(err.to_string())
25            }
26        }
27    }
28
29    /// Получить давление в \[мм рт столба\]
30    pub fn pressure_mmHg(&self) -> Result<f64, String> {
31        match self.quantity_name {
32            QuantityName::Pressure => {
33                let value = self.value * 0.00750063755419211;
34                Ok(value)
35            }
36            _ => {
37                let err = format!(
38                    "You exprect pressure, but current unit: {:?}",
39                    self.quantity_name
40                );
41                Err(err.to_string())
42            }
43        }
44    }
45}