summaryrefslogtreecommitdiff
path: root/src/components/battery/BatteryController.cpp
diff options
context:
space:
mode:
authorpanky-codes <pankaj.sarathy1992@gmail.com>2021-01-14 20:22:36 (GMT)
committerpanky-codes <pankaj.sarathy1992@gmail.com>2021-01-14 20:22:36 (GMT)
commitb8f943e73c84e368ebe6a380a7ca231e2a81f428 (patch)
tree9f9326dd7aa143324f3e6894d8927db287bb2c3b /src/components/battery/BatteryController.cpp
parentf1e7d0b46971c49ea293505425447a8e41547ff3 (diff)
Implemented a circular buffer and added an average alg for batter remaining percentage.
Diffstat (limited to 'src/components/battery/BatteryController.cpp')
-rw-r--r--src/components/battery/BatteryController.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp
index 3e3d65b..e0042f5 100644
--- a/src/components/battery/BatteryController.cpp
+++ b/src/components/battery/BatteryController.cpp
@@ -34,10 +34,12 @@ void Battery::Update() {
// see https://forum.pine64.org/showthread.php?tid=8147
voltage = (value * 2.0f) / (1024/3.0f);
- percentRemaining = ((voltage - 3.55f)*100.0f)*3.9f;
+ float percentRemaining = ((voltage - 3.55f)*100.0f)*3.9f;
percentRemaining = std::max(percentRemaining, 0.0f);
percentRemaining = std::min(percentRemaining, 100.0f);
+ percentRemainingBuffer.insert(percentRemaining);
+
// NRF_LOG_INFO("BATTERY " NRF_LOG_FLOAT_MARKER " %% - " NRF_LOG_FLOAT_MARKER " v", NRF_LOG_FLOAT(percentRemaining), NRF_LOG_FLOAT(voltage));
// NRF_LOG_INFO("POWER Charging : %d - Power : %d", isCharging, isPowerPresent);
}