diff --git a/main/displays/menus/statisticsmenu.cpp b/main/displays/menus/statisticsmenu.cpp index 37a984f..479fba5 100644 --- a/main/displays/menus/statisticsmenu.cpp +++ b/main/displays/menus/statisticsmenu.cpp @@ -9,6 +9,7 @@ #include "icons/time.h" #include "icons/reboot.h" #include "icons/update.h" +#include "drivingstatistics.h" using namespace espgui; @@ -35,7 +36,7 @@ class UptimeText : public virtual espgui::TextInterface { class CurrentKilometersText : public virtual espgui::TextInterface { public: std::string text() const override { - return fmt::format("curr: {:.2f}m", drivingStatistics.meters_driven); + return fmt::format("Curr: {:.2f}m", drivingStatistics.meters_driven); } }; @@ -63,6 +64,32 @@ class SavedTotalCentimetersText : public virtual espgui::TextInterface { } }; +class CurrentWhUsedText : public virtual espgui::TextInterface { + public: std::string text() const override { + return fmt::format("Curr: {:.2f}Wh", drivingStatistics.wh_used ); + } +}; + +class AverageWhUsedText : public virtual espgui::TextInterface { + public: std::string text() const override { + return fmt::format("Avg: {:.1f}Wh/km", drivingStatistics.wh_used / (drivingStatistics.meters_driven / 1000.f) ); + } +}; + +class EfficiencyText : public virtual espgui::TextInterface { + public: std::string text() const override { + return fmt::format("Efficiency: {}", getEfficiencyClassString()); + } +}; + +class EfficiencyTextColor : public virtual espgui::ColorInterface { +public: + int color() const override + { + return getEfficiencyClassColor(); + } +}; + class SaveKilometersAction : public virtual ActionInterface { public: void triggered() override { @@ -77,6 +104,8 @@ public: void triggered() override { drivingStatistics.meters_driven = 0.; drivingStatistics.currentDrivingTime = 0; + drivingStatistics.wh_used = 0; + drivingStatistics.batteryWhEstimate = 0; } }; @@ -89,6 +118,9 @@ StatisticsMenu::StatisticsMenu() constructMenuItem>(); constructMenuItem>(); // constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); constructMenuItem>(); constructMenuItem, SaveKilometersAction, StaticMenuItemIcon<&bobbyicons::update>>>(); constructMenuItem, ClearCurrentStatsAction, StaticMenuItemIcon<&bobbyicons::reboot>>>();