diff --git a/esp32/lib/ESP32-sveltekit/BatteryService.cpp b/esp32/lib/ESP32-sveltekit/BatteryService.cpp index 1428131..838b286 100644 --- a/esp32/lib/ESP32-sveltekit/BatteryService.cpp +++ b/esp32/lib/ESP32-sveltekit/BatteryService.cpp @@ -6,6 +6,7 @@ * https://github.com/theelims/ESP32-sveltekit * * Copyright (C) 2023 theelims + * Copyright (C) 2024 runeharlyk * * All Rights Reserved. This software may be modified and distributed under * the terms of the LGPL v3 license. See the LICENSE file for details. @@ -24,9 +25,9 @@ void BatteryService::begin() void BatteryService::batteryEvent() { JsonDocument doc; - char message[32]; - doc["soc"] = _lastSOC; - doc["charging"] = _isCharging; + char message[64]; + doc["voltage"] = _voltage; + doc["current"] = _current; serializeJson(doc, message); _socket->emit(EVENT_BATTERY, message); } diff --git a/esp32/lib/ESP32-sveltekit/BatteryService.h b/esp32/lib/ESP32-sveltekit/BatteryService.h index 2496a2a..94d6772 100644 --- a/esp32/lib/ESP32-sveltekit/BatteryService.h +++ b/esp32/lib/ESP32-sveltekit/BatteryService.h @@ -8,6 +8,7 @@ * https://github.com/theelims/ESP32-sveltekit * * Copyright (C) 2023 theelims + * Copyright (C) 2024 runeharlyk * * All Rights Reserved. This software may be modified and distributed under * the terms of the LGPL v3 license. See the LICENSE file for details. @@ -25,21 +26,39 @@ public: void begin(); - void updateSOC(float stateOfCharge) - { - _lastSOC = (int)round(stateOfCharge); - batteryEvent(); + void loop() { + unsigned long currentMillis = millis(); + + if (!_lastUpdate || (currentMillis - _lastUpdate) >= BATTERY_CHECK_INTERVAL) + { + _lastUpdate = currentMillis; + updateBattery(); + } + if(!_lastEmit || (currentMillis - _lastEmit) >= BATTERY_INTERVAL) + { + _lastEmit = currentMillis; + batteryEvent(); + } } - void setCharging(boolean isCharging) + void updateBattery() { - _isCharging = isCharging; - batteryEvent(); + } + + float getVoltage() { + return _voltage; + } + + float getCurrent() { + return _current; } private: void batteryEvent(); EventSocket *_socket; - int _lastSOC = 100; - boolean _isCharging = false; + + unsigned long _lastUpdate; + unsigned long _lastEmit; + float _voltage = 0; + float _current = 0; };