rsiot/message/phy_quantity/quantities/
temperature.rs1use super::super::{PhyQuantity, QuantityName};
2
3const C_TO_K: f64 = 273.15;
4
5impl PhyQuantity {
6 pub fn new_temperature_C(value: f64) -> Self {
8 Self {
9 value: value + C_TO_K,
10 quantity_name: QuantityName::Temperature,
11 }
12 }
13
14 pub fn temperature_C(&self) -> Result<f64, String> {
16 match self.quantity_name {
17 QuantityName::Temperature => {
18 let value = self.value - C_TO_K;
19 Ok(value)
20 }
21 _ => {
22 let err = format!(
23 "You exprect temperature, but current unit: {:?}; value: {:?}",
24 self.quantity_name, self
25 );
26 Err(err.to_string())
27 }
28 }
29 }
30}