🔋 Updates battery service with voltage and current
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user