diff --git a/include/BatteryStats.h b/include/BatteryStats.h index e4bf4144e..c11f45f95 100644 --- a/include/BatteryStats.h +++ b/include/BatteryStats.h @@ -15,7 +15,7 @@ class BatteryStats { // the last time *any* datum was updated uint32_t getAgeSeconds() const { return (millis() - _lastUpdate) / 1000; } - bool updateAvailable(uint32_t since) const { return _lastUpdate > since; } + bool updateAvailable(uint32_t since) const; uint8_t getSoC() const { return _soc; } uint32_t getSoCAgeSeconds() const { return (millis() - _lastUpdateSoC) / 1000; } diff --git a/src/BatteryStats.cpp b/src/BatteryStats.cpp index 807f1a4c2..48d089165 100644 --- a/src/BatteryStats.cpp +++ b/src/BatteryStats.cpp @@ -51,6 +51,12 @@ static void addLiveViewAlarm(JsonVariant& root, std::string const& name, root["issues"][name] = 2; } +bool BatteryStats::updateAvailable(uint32_t since) const +{ + auto constexpr halfOfAllMillis = std::numeric_limits::max() / 2; + return (_lastUpdate - since) < halfOfAllMillis; +} + void BatteryStats::getLiveViewData(JsonVariant& root) const { root[F("manufacturer")] = _manufacturer;