From bbf486c8ff4f05ce4bd0b3485f42e06cf3c51c33 Mon Sep 17 00:00:00 2001 From: Ben Cochran Date: Fri, 8 Dec 2023 22:49:16 -0800 Subject: [PATCH] Fix charge_rate when discharging MAX17048 & MAX17049 report negative values when discharging, so interpret it as i16 instead of u16 before converting to f32. Resolves #1 --- src/max170x8_x9.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/max170x8_x9.rs b/src/max170x8_x9.rs index 6e955e7..402bffa 100644 --- a/src/max170x8_x9.rs +++ b/src/max170x8_x9.rs @@ -100,7 +100,7 @@ macro_rules! impl_common_48_49 { /// Get the approximate charge or discharge rate of the battery /// in percentage / hour pub fn charge_rate(&mut self) -> Result> { - let rate = self.read_register(Register::CRATE)?; + let rate = self.read_register(Register::CRATE)? as i16; Ok(f32::from(rate) * 0.208) } }