diff --git a/main/displays/menus/batterydebugmenu.cpp b/main/displays/menus/batterydebugmenu.cpp new file mode 100644 index 0000000..5256e0a --- /dev/null +++ b/main/displays/menus/batterydebugmenu.cpp @@ -0,0 +1,42 @@ +#include "batterydebugmenu.h" + +// local includes +#include "debugmenu.h" +#include "accessors/settingsaccessors.h" +#include "fmt/core.h" + +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("{:.0f} {:.0f}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 namespace espgui; + +BatteryDebugMenu::BatteryDebugMenu() +{ + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void BatteryDebugMenu::back() +{ + switchScreen(); +} diff --git a/main/displays/menus/batterydebugmenu.h b/main/displays/menus/batterydebugmenu.h new file mode 100644 index 0000000..8a1a705 --- /dev/null +++ b/main/displays/menus/batterydebugmenu.h @@ -0,0 +1,24 @@ +#pragma once + +// 3rdparty lib includes +#include +#include +#include +#include +#include + +// Local includes +#include "utils.h" +#include "icons/settings.h" +#include "texts.h" +#include "battery.h" + +class BatteryDebugMenu : + public espgui::MenuDisplay, + public espgui::StaticText +{ +public: + BatteryDebugMenu(); + + void back() override; +}; diff --git a/main/displays/menus/batterymenu.cpp b/main/displays/menus/batterymenu.cpp index 9e568bc..cf3e420 100644 --- a/main/displays/menus/batterymenu.cpp +++ b/main/displays/menus/batterymenu.cpp @@ -10,23 +10,6 @@ #include "fmt/core.h" 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< espgui::ChangeValueDisplay, @@ -57,9 +40,6 @@ using namespace espgui; BatteryMenu::BatteryMenu() { constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); constructMenuItem>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); diff --git a/main/displays/menus/debugmenu.cpp b/main/displays/menus/debugmenu.cpp index 8b065e6..6e3d6ad 100644 --- a/main/displays/menus/debugmenu.cpp +++ b/main/displays/menus/debugmenu.cpp @@ -14,6 +14,7 @@ #include "actions/savesettingsaction.h" #include "actions/erasenvsaction.h" #include "icons/lock.h" +#include "icons/battery.h" #include "debugcolorhelpers.h" #include "esptexthelpers.h" #include "displays/menus/commanddebugmenu.h" @@ -22,6 +23,7 @@ #include "displays/menus/motorfeedbackdebugmenu.h" #include "displays/menus/dynamicdebugmenu.h" #include "displays/menus/mainmenu.h" +#include "displays/menus/batterydebugmenu.h" using namespace espgui; @@ -50,6 +52,8 @@ DebugMenu::DebugMenu() constructMenuItem, SwitchScreenAction, BackFeedbackColor>>(); constructMenuItem>(); constructMenuItem, SwitchScreenAction>>(); + constructMenuItem>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::battery>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); }