From ddcaa967fd6cc32c25a3a9294bd5cfff19c3036d Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 12 Oct 2023 08:42:51 +1100 Subject: [PATCH] Update battery mV even with the samd doesn't respond --- src/battery/battery.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/battery/battery.cpp b/src/battery/battery.cpp index aea99654..69ca9a7d 100644 --- a/src/battery/battery.cpp +++ b/src/battery/battery.cpp @@ -57,7 +57,7 @@ auto Battery::Update() -> void { std::lock_guard lock{state_mutex_}; auto charge_state = samd_.GetChargeStatus(); - if (!charge_state || *charge_state == ChargeStatus::kNoBattery) { + if (charge_state && *charge_state == ChargeStatus::kNoBattery) { if (state_) { EmitEvent(); } @@ -73,9 +73,14 @@ auto Battery::Update() -> void { (kFullChargeMilliVolts - kEmptyChargeMilliVolts) * 100.0, 100.0)); - bool is_charging = *charge_state == ChargeStatus::kChargingRegular || - *charge_state == ChargeStatus::kChargingFast || - *charge_state == ChargeStatus::kFullCharge; + bool is_charging; + if (!charge_state) { + is_charging = false; + } else { + is_charging = *charge_state == ChargeStatus::kChargingRegular || + *charge_state == ChargeStatus::kChargingFast || + *charge_state == ChargeStatus::kFullCharge; + } if (state_ && state_->is_charging == is_charging && state_->percent == percent) {