diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp index 8b787db..1301a58 100644 --- a/main/displays/statusdisplay.cpp +++ b/main/displays/statusdisplay.cpp @@ -16,6 +16,7 @@ #include "udpcloud.h" #include "modes/defaultmode.h" +using namespace std::chrono_literals; using namespace espgui; namespace { @@ -70,6 +71,14 @@ void StatusDisplay::initScreen() void StatusDisplay::redraw() { Base::redraw(); + + { + const auto now = espchrono::millis_clock::now(); + if (now - lastRedraw < 50ms) + return; + lastRedraw = now; + } + if (settings.handbremse.enable && settings.handbremse.visualize && handbremse::angezogen) tft.fillRect(0, tft.height()-6, tft.width(), 6, TFT_RED); else if (settings.handbremse.enable && settings.handbremse.visualize && handbremse::stateWish == handbremse::StateWish::brake) diff --git a/main/displays/statusdisplay.h b/main/displays/statusdisplay.h index 4aa8c61..7b43ce7 100644 --- a/main/displays/statusdisplay.h +++ b/main/displays/statusdisplay.h @@ -8,6 +8,7 @@ #include #include #include +#include // local includes #include "modeinterface.h" @@ -69,6 +70,8 @@ private: MotorStatus m_rightMotor; }; + espchrono::millis_clock::time_point lastRedraw; + espgui::Label m_labelRawGas{45, 0}; // 40, 15 espgui::Label m_labelGas{90, 0}; // 60, 15 espgui::ProgressBar m_progressBarGas{150, 0, 90, 15, 0, 1000};