From bc340a33194028890854c543d324204be3747532 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Mon, 17 Jan 2022 10:10:08 +0100 Subject: [PATCH] Implemented remaining estimate km left --- main/displays/menus/statisticsmenu.cpp | 6 ++++++ main/drivingstatistics.cpp | 11 +++++++++++ main/drivingstatistics.h | 2 ++ 3 files changed, 19 insertions(+) diff --git a/main/displays/menus/statisticsmenu.cpp b/main/displays/menus/statisticsmenu.cpp index a427589..b81e72b 100644 --- a/main/displays/menus/statisticsmenu.cpp +++ b/main/displays/menus/statisticsmenu.cpp @@ -132,6 +132,12 @@ class AverageSpeedKmhOverTime : public virtual espgui::TextInterface { } }; +class EstimatedKmLeft : public virtual espgui::TextInterface { + public: std::string text() const override { + return fmt::format("est km:{}", getRemainingEstimateRangeString()); + } +}; + class EfficiencyTextColor : public virtual espgui::ColorInterface { public: int color() const override diff --git a/main/drivingstatistics.cpp b/main/drivingstatistics.cpp index b5ef81f..ed0efc6 100644 --- a/main/drivingstatistics.cpp +++ b/main/drivingstatistics.cpp @@ -24,6 +24,11 @@ float getAvgKmh() return (drivingStatistics.meters_driven / 1000.) / (drivingStatistics.currentDrivingTime.count() / 1000 / 60 / 60); // (meter / 1000) / (ms / 1000 / 60 / 60) } +float getEstimatedKmLeft() +{ + return (getRemainingWattHours() / getAvgWhPerKm()); +} + std::string getEfficiencyClassString() { const float avgWhPerKm = getAvgWhPerKm(); @@ -54,6 +59,12 @@ uint16_t getEfficiencyClassColor() else return 0xF800; } +std::string getRemainingEstimateRangeString() +{ + return fmt::format("{:.1f} km", getEstimatedKmLeft()); +} + + void initStatistics() { diff --git a/main/drivingstatistics.h b/main/drivingstatistics.h index 546f7b3..1ec2eed 100644 --- a/main/drivingstatistics.h +++ b/main/drivingstatistics.h @@ -20,5 +20,7 @@ void initStatistics(); void calculateStatistics(); float getAvgWhPerKm(); float getAvgKmh(); +float getEstimatedKmLeft(); std::string getEfficiencyClassString(); +std::string getRemainingEstimateRangeString(); uint16_t getEfficiencyClassColor();