summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorminacode <minamoto9@web.de>2022-11-21 00:03:09 +0100
committerJF <JF002@users.noreply.github.com>2022-12-27 12:13:52 +0100
commit557a328409b9a4d4617606c8b04679ebee885b1f (patch)
treed5c90bdde090aee84fb9be9b13246d3f7b87fbe1
parent51d818b7742a0224abdbc9f55885ada9c353d6df (diff)
changed to bool
-rw-r--r--src/components/battery/BatteryController.cpp9
-rw-r--r--src/components/battery/BatteryController.h2
2 files changed, 8 insertions, 3 deletions
diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp
index 79829360..cdcc766a 100644
--- a/src/components/battery/BatteryController.cpp
+++ b/src/components/battery/BatteryController.cpp
@@ -86,15 +86,20 @@ void Battery::SaadcEventHandler(nrfx_saadc_evt_t const* p_event) {
newPercent = std::min(aprox.GetValue(voltage), isCharging ? uint8_t {99} : uint8_t {100});
}
+ if (isPowerPresent) {
+ batteryLowNotified = false;
+ }
+
if ((isPowerPresent && newPercent > percentRemaining) || (!isPowerPresent && newPercent < percentRemaining) || firstMeasurement) {
firstMeasurement = false;
- lastPercentRemaining = percentRemaining;
percentRemaining = newPercent;
systemTask->PushMessage(System::Messages::BatteryPercentageUpdated);
+
// warn about low battery when not charging and below threshold
- if (!isPowerPresent && BatteryIsLow() && lastPercentRemaining > lowBatteryThreshold) {
+ if (BatteryIsLow() && !isPowerPresent && !batteryLowNotified) {
systemTask->PushMessage(System::Messages::LowBattery);
+ batteryLowNotified = true;
}
}
diff --git a/src/components/battery/BatteryController.h b/src/components/battery/BatteryController.h
index 3a7d73ce..627ca7d4 100644
--- a/src/components/battery/BatteryController.h
+++ b/src/components/battery/BatteryController.h
@@ -42,7 +42,7 @@ namespace Pinetime {
static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7;
uint16_t voltage = 0;
uint8_t percentRemaining = 0;
- uint8_t lastPercentRemaining = 0;
+ bool batteryLowNotified = false;
bool isFull = false;
bool isCharging = false;