diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-10-12 08:42:51 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-10-12 08:42:51 +1100 |
| commit | ddcaa967fd6cc32c25a3a9294bd5cfff19c3036d (patch) | |
| tree | 5ce1ac277d08d1f792567318d9f6ad15cb0e5788 | |
| parent | b0d85fc0d6ede34e4310d7d4fa69b8b94b8571b1 (diff) | |
| download | tangara-fw-ddcaa967fd6cc32c25a3a9294bd5cfff19c3036d.tar.gz | |
Update battery mV even with the samd doesn't respond
| -rw-r--r-- | src/battery/battery.cpp | 13 |
1 files 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<std::mutex> 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) { |
