From d8c97d7f2024ec4b752646fb10fecd0f412e4a0a Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Tue, 11 Jan 2022 11:16:15 +0100 Subject: [PATCH] Added avg speed over time --- main/displays/menus/statisticsmenu.cpp | 7 +++++++ main/drivingstatistics.cpp | 5 +++++ main/drivingstatistics.h | 1 + 3 files changed, 13 insertions(+) diff --git a/main/displays/menus/statisticsmenu.cpp b/main/displays/menus/statisticsmenu.cpp index a58a139..a427589 100644 --- a/main/displays/menus/statisticsmenu.cpp +++ b/main/displays/menus/statisticsmenu.cpp @@ -126,6 +126,12 @@ class EfficiencyText : public virtual espgui::TextInterface { } }; +class AverageSpeedKmhOverTime : public virtual espgui::TextInterface { + public: std::string text() const override { + return fmt::format("Avg speed: {:.1f} km/h", getAvgKmh()); + } +}; + class EfficiencyTextColor : public virtual espgui::ColorInterface { public: int color() const override @@ -169,6 +175,7 @@ StatisticsMenu::StatisticsMenu() // constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); + constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); constructMenuItem, SaveKilometersAction, StaticMenuItemIcon<&bobbyicons::update>>>(); diff --git a/main/drivingstatistics.cpp b/main/drivingstatistics.cpp index df66b24..b5ef81f 100644 --- a/main/drivingstatistics.cpp +++ b/main/drivingstatistics.cpp @@ -19,6 +19,11 @@ float getAvgWhPerKm() return drivingStatistics.wh_used / (drivingStatistics.meters_driven / 1000.f); } +float getAvgKmh() +{ + return (drivingStatistics.meters_driven / 1000.) / (drivingStatistics.currentDrivingTime.count() / 1000 / 60 / 60); // (meter / 1000) / (ms / 1000 / 60 / 60) +} + std::string getEfficiencyClassString() { const float avgWhPerKm = getAvgWhPerKm(); diff --git a/main/drivingstatistics.h b/main/drivingstatistics.h index 4920e3b..546f7b3 100644 --- a/main/drivingstatistics.h +++ b/main/drivingstatistics.h @@ -19,5 +19,6 @@ extern DrivingStatistics drivingStatistics; void initStatistics(); void calculateStatistics(); float getAvgWhPerKm(); +float getAvgKmh(); std::string getEfficiencyClassString(); uint16_t getEfficiencyClassColor();