From 4fcfeb073d0b3e6df7b7fd4d66bfe34e72080a1b Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 17 May 2025 03:01:29 +0300 Subject: [PATCH] daemon: clamp battery discharge rate to a maximum of 100%/hour --- src/daemon.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/daemon.rs b/src/daemon.rs index a8486d3..693d905 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -191,13 +191,17 @@ impl SystemHistory { (self.last_battery_percentage, self.last_battery_timestamp) { let elapsed_hours = last_timestamp.elapsed().as_secs_f32() / 3600.0; - if elapsed_hours > 0.0 && !battery.ac_connected { + // Only calculate discharge rate if at least 30 seconds have passed + // and we're not on AC power + if elapsed_hours > 0.0083 && !battery.ac_connected { // 0.0083 hours = 30 seconds // Calculate discharge rate in percent per hour let percent_change = last_percentage - current_percent; if percent_change > 0.0 { // Only if battery is discharging let hourly_rate = percent_change / elapsed_hours; - self.battery_discharge_rate = Some(hourly_rate); + // Clamp the discharge rate to a reasonable maximum value (100%/hour) + let clamped_rate = hourly_rate.min(100.0); + self.battery_discharge_rate = Some(clamped_rate); } } }