diff --git a/src/command_handler.rs b/src/command_handler.rs index 5726c93..3ea27e5 100644 --- a/src/command_handler.rs +++ b/src/command_handler.rs @@ -39,7 +39,7 @@ use uom::{ electric_current::ampere, electric_potential::volt, electrical_resistance::ohm, - thermodynamic_temperature::degree_celsius, + thermodynamic_temperature::{degree_celsius, kelvin}, }, }; @@ -244,7 +244,7 @@ impl Handler { use super::command_parser::ShParameter::*; match parameter { T0 => sh.t0 = ThermodynamicTemperature::new::(value), - B => sh.b = value, + B => sh.b = ThermodynamicTemperature::new::(value), R0 => sh.r0 = ElectricalResistance::new::(value), } send_line(socket, b"{}"); diff --git a/src/steinhart_hart.rs b/src/steinhart_hart.rs index 87149df..7b96996 100644 --- a/src/steinhart_hart.rs +++ b/src/steinhart_hart.rs @@ -15,16 +15,16 @@ use serde::{Deserialize, Serialize}; pub struct Parameters { /// Base temperature pub t0: ThermodynamicTemperature, - /// Base resistance + /// Resistance at base temperature pub r0: ElectricalResistance, /// Beta - pub b: f64, + pub b: ThermodynamicTemperature, } impl Parameters { /// Perform the voltage to temperature conversion. pub fn get_temperature(&self, r: ElectricalResistance) -> ThermodynamicTemperature { - let inv_temp = 1.0 / self.t0.get::() + (r / self.r0).get::().ln() / self.b; + let inv_temp = 1.0 / self.t0.get::() + (r / self.r0).get::().ln() / self.b.get::(); ThermodynamicTemperature::new::(1.0 / inv_temp) } } @@ -34,7 +34,7 @@ impl Default for Parameters { Parameters { t0: ThermodynamicTemperature::new::(25.0), r0: ElectricalResistance::new::(10_000.0), - b: 3800.0, + b: ThermodynamicTemperature::new::(3800.0), } } }