diff --git a/main/displays/batteryinfodisplay.cpp b/main/displays/batteryinfodisplay.cpp index c1b7b76..ad1c420 100644 --- a/main/displays/batteryinfodisplay.cpp +++ b/main/displays/batteryinfodisplay.cpp @@ -7,8 +7,8 @@ // local includes #include "battery.h" #include "displays/menus/mainmenu.h" +#include "displays/metersdisplay.h" #include "displays/speedinfodisplay.h" -#include "displays/statusdisplay.h" // display with big battery and ten bars (0-100%) @@ -68,7 +68,7 @@ void BatteryInfoDisplay::buttonPressed(espgui::Button button) espgui::pushScreen(); break; case Button::Up: - espgui::switchScreen(); + espgui::switchScreen(); break; case Button::Down: espgui::switchScreen(); diff --git a/main/displays/metersdisplay.cpp b/main/displays/metersdisplay.cpp index 499e39e..e71941f 100644 --- a/main/displays/metersdisplay.cpp +++ b/main/displays/metersdisplay.cpp @@ -5,10 +5,11 @@ #include // local includes -#include "globals.h" -#include "utils.h" +#include "displays/batteryinfodisplay.h" #include "displays/menus/mainmenu.h" #include "displays/statusdisplay.h" +#include "globals.h" +#include "utils.h" using namespace espgui; @@ -61,9 +62,11 @@ void MetersDisplay::buttonPressed(espgui::Button button) pushScreen(); break; case Button::Up: - case Button::Down: switchScreen(); break; + case Button::Down: + switchScreen(); + break; default:; } } diff --git a/main/displays/speedinfodisplay.cpp b/main/displays/speedinfodisplay.cpp index a60eee7..7e0c1b4 100644 --- a/main/displays/speedinfodisplay.cpp +++ b/main/displays/speedinfodisplay.cpp @@ -1,6 +1,7 @@ #include "speedinfodisplay.h" // 3rdparty lib includes +#include #include // local includes @@ -11,11 +12,30 @@ void SpeedInfoDisplay::initScreen() { Base::initScreen(); + + m_labelSpeed.start(); + + m_dischargingBar.start(); + m_chargingBar.start(); } void SpeedInfoDisplay::redraw() { + using namespace espgui; + Base::redraw(); + + tft.setTextColor(TFT_WHITE, TFT_BLACK); + tft.setTextFont(4); + + tft.setTextSize(3); + + m_labelSpeed.redraw(fmt::format(avgSpeedKmh < 10 ? "{:.3f}" : "{:.1f}", avgSpeedKmh)); + + tft.setTextSize(1); + + m_dischargingBar.redraw(sumCurrent<0.f?(-sumCurrent):0.f); + m_chargingBar.redraw(sumCurrent>0.f?sumCurrent:0.f); } void SpeedInfoDisplay::buttonPressed(espgui::Button button) diff --git a/main/displays/speedinfodisplay.h b/main/displays/speedinfodisplay.h index 0524a77..928136a 100644 --- a/main/displays/speedinfodisplay.h +++ b/main/displays/speedinfodisplay.h @@ -1,5 +1,11 @@ #pragma once +// 3rdparty lib includes +#include +#include +#include +#include + // local includes #include "bobbydisplay.h" @@ -12,4 +18,9 @@ public: void redraw() override; void buttonPressed(espgui::Button button) override; +private: + espgui::Label m_labelSpeed{28, 70}; + + espgui::ReverseProgressBar m_dischargingBar{10, 155, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_GREEN}; + espgui::ProgressBar m_chargingBar{espgui::tft.width()/2, 155, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_RED}; }; diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp index 4eb7cd6..4177938 100644 --- a/main/displays/statusdisplay.cpp +++ b/main/displays/statusdisplay.cpp @@ -245,7 +245,7 @@ void StatusDisplay::buttonPressed(espgui::Button button) case Button::Down: if (simplified) return; - switchScreen(); + switchScreen(); break; default:; }