Added debug information for current calibration (will be moved in the future)
This commit is contained in:
@@ -156,3 +156,14 @@ std::string getRemainingRangeString()
|
|||||||
{
|
{
|
||||||
return fmt::format("{:.1f} km", getRemainingWattHours() / settings.battery.watthoursPerKilometer);
|
return fmt::format("{:.1f} km", getRemainingWattHours() / settings.battery.watthoursPerKilometer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string getBatteryDebugString()
|
||||||
|
{
|
||||||
|
float avgVoltage = 0;
|
||||||
|
for (auto &controller : controllers)
|
||||||
|
{
|
||||||
|
avgVoltage += controller.getCalibratedVoltage();
|
||||||
|
}
|
||||||
|
avgVoltage = avgVoltage / controllers.size();
|
||||||
|
return fmt::format("{:.1f}V {}A", avgVoltage, sumCurrent);
|
||||||
|
}
|
||||||
|
@@ -27,3 +27,5 @@ std::string getBatteryRemainingWattHoursString();
|
|||||||
std::string getBatteryCellTypeString();
|
std::string getBatteryCellTypeString();
|
||||||
|
|
||||||
std::string getRemainingRangeString();
|
std::string getRemainingRangeString();
|
||||||
|
|
||||||
|
std::string getBatteryDebugString();
|
||||||
|
@@ -7,8 +7,26 @@
|
|||||||
#include "mainmenu.h"
|
#include "mainmenu.h"
|
||||||
#include "displays/calibratevoltagedisplay.h"
|
#include "displays/calibratevoltagedisplay.h"
|
||||||
#include "accessors/settingsaccessors.h"
|
#include "accessors/settingsaccessors.h"
|
||||||
|
#include "fmt/core.h"
|
||||||
|
|
||||||
class CurrentBatteryStatusText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryPercentageString(); } };
|
class CurrentBatteryStatusText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryPercentageString(); } };
|
||||||
|
class BatteryDebugText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryDebugString(); } };
|
||||||
|
class BatteryDebug2Text : public virtual espgui::TextInterface {
|
||||||
|
public: std::string text() const override {
|
||||||
|
float avgVoltage = 0;
|
||||||
|
for (auto &controller : controllers)
|
||||||
|
{
|
||||||
|
avgVoltage += controller.getCalibratedVoltage();
|
||||||
|
}
|
||||||
|
avgVoltage = avgVoltage / controllers.size();
|
||||||
|
|
||||||
|
auto watt = sumCurrent * avgVoltage;
|
||||||
|
auto w_per_kmh = watt / avgSpeedKmh;
|
||||||
|
return fmt::format("{:.1f} {:.2f}W/kmh", avgSpeedKmh, w_per_kmh);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class BatteryDebug3Text : public virtual espgui::TextInterface { public: std::string text() const override { return fmt::format("{}fA {}bA", fixCurrent(controllers.front.feedback.left.dcLink + controllers.front.feedback.right.dcLink), fixCurrent(controllers.back.feedback.left.dcLink + controllers.back.feedback.right.dcLink)); } };
|
||||||
|
|
||||||
using BatteryCellSeriesChangeScreen = espgui::makeComponent<
|
using BatteryCellSeriesChangeScreen = espgui::makeComponent<
|
||||||
espgui::ChangeValueDisplay<uint8_t>,
|
espgui::ChangeValueDisplay<uint8_t>,
|
||||||
@@ -39,6 +57,9 @@ using namespace espgui;
|
|||||||
BatteryMenu::BatteryMenu()
|
BatteryMenu::BatteryMenu()
|
||||||
{
|
{
|
||||||
constructMenuItem<makeComponent<MenuItem, CurrentBatteryStatusText, DisabledColor, DummyAction>>();
|
constructMenuItem<makeComponent<MenuItem, CurrentBatteryStatusText, DisabledColor, DummyAction>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, BatteryDebugText, DisabledColor, DummyAction>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, BatteryDebug2Text, DisabledColor, DummyAction>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, BatteryDebug3Text, DisabledColor, DummyAction>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
|
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_SERIES, BatterySeriesCellsAccessor>, SwitchScreenAction<BatteryCellSeriesChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_SERIES, BatterySeriesCellsAccessor>, SwitchScreenAction<BatteryCellSeriesChangeScreen>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_PARALLEL, BatteryParallelCellsAccessor>, SwitchScreenAction<BatteryCellParallelChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_PARALLEL, BatteryParallelCellsAccessor>, SwitchScreenAction<BatteryCellParallelChangeScreen>>>();
|
||||||
|
Reference in New Issue
Block a user