From 1830df26fd16b8cf7b8b1b422007ebd97d585d56 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 20 Dec 2021 10:52:02 +0100 Subject: [PATCH] Moved display's update and redraw into task manager --- main/accessors/settingsaccessors.h | 2 -- main/displays/menus/timersmenu.cpp | 18 ------------------ main/main.cpp | 16 ---------------- main/presets.h | 2 -- main/screens.cpp | 1 + main/screens.h | 4 ---- main/settings.h | 4 ---- main/taskmanager.cpp | 5 +++++ main/texts.cpp | 2 -- main/texts.h | 2 -- 10 files changed, 6 insertions(+), 50 deletions(-) diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index b1fb6e1..de687be 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -126,8 +126,6 @@ struct GametrakDistMinAccessor : public RefAccessorSaveSettings { int16 struct GametrakDistMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakDistMax; } }; #endif struct StatsUpdateRateAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.statsUpdateRate; } }; -struct DisplayUpdateRateAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.displayUpdateRate; } }; -struct DisplayRedrawRateAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.displayRedrawRate; } }; // Cloud #ifdef FEATURE_CLOUD diff --git a/main/displays/menus/timersmenu.cpp b/main/displays/menus/timersmenu.cpp index 8c87fd3..47da55f 100644 --- a/main/displays/menus/timersmenu.cpp +++ b/main/displays/menus/timersmenu.cpp @@ -18,29 +18,11 @@ using StatsUpdateRateChangeDisplay = makeComponent< BackActionInterface>, SwitchScreenAction >; - -using DisplayUpdateRateChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DisplayUpdateRateAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -using DisplayRedrawRateChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DisplayRedrawRateAccessor, - BackActionInterface>, - SwitchScreenAction ->; } TimersMenu::TimersMenu() { constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/main.cpp b/main/main.cpp index 57c4765..bffd7b2 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -34,8 +34,6 @@ using namespace std::chrono_literals; namespace { espchrono::millis_clock::time_point lastStatsPush; std::optional lastStatsUpdate; -std::optional lastDisplayUpdate; -std::optional lastDisplayRedraw; } extern "C" void app_main() @@ -123,20 +121,6 @@ extern "C" void app_main() lastStatsUpdate = now; } - if (!lastDisplayUpdate || now - *lastDisplayUpdate >= 1000ms/settings.boardcomputerHardware.timersSettings.displayUpdateRate) - { - updateDisplay(); - - lastDisplayUpdate = now; - } - - if (!lastDisplayRedraw || now - *lastDisplayRedraw >= 1000ms/settings.boardcomputerHardware.timersSettings.displayRedrawRate) - { - redrawDisplay(); - - lastDisplayRedraw = now; - } - if (now - lastStatsPush >= 1s) { sched_pushStats(false); diff --git a/main/presets.h b/main/presets.h index 2477fd1..4a2318c 100644 --- a/main/presets.h +++ b/main/presets.h @@ -137,8 +137,6 @@ constexpr Settings::ControllerHardware spinnerControllerHardware { constexpr Settings::BoardcomputerHardware::TimersSettings defaultTimersSettings { .statsUpdateRate = 50, - .displayUpdateRate = 50, - .displayRedrawRate = 50, #ifdef FEATURE_CLOUD .cloudCollectRate = 100, .cloudSendRate = 1, diff --git a/main/screens.cpp b/main/screens.cpp index 19e6cec..37bb05d 100644 --- a/main/screens.cpp +++ b/main/screens.cpp @@ -2,6 +2,7 @@ // 3rdparty lib includes #include +#include // local includes #include "globals.h" diff --git a/main/screens.h b/main/screens.h index 43e8b25..f46cecb 100644 --- a/main/screens.h +++ b/main/screens.h @@ -1,11 +1,7 @@ #pragma once -// system includes -#include - // 3rdparty lib includes #include -#include extern espgui::Label bootLabel; diff --git a/main/settings.h b/main/settings.h index 0f9945b..7949a3c 100644 --- a/main/settings.h +++ b/main/settings.h @@ -104,8 +104,6 @@ struct Settings struct TimersSettings { int16_t statsUpdateRate; - int16_t displayUpdateRate; - int16_t displayRedrawRate; #ifdef FEATURE_CLOUD int16_t cloudCollectRate; int16_t cloudSendRate; @@ -303,8 +301,6 @@ void Settings::executeForEveryCommonSetting(T &&callable) #endif callable("statsUpdateRate", boardcomputerHardware.timersSettings.statsUpdateRate); - callable("displayUpdateRa", boardcomputerHardware.timersSettings.displayUpdateRate); - callable("displayRedrawRa", boardcomputerHardware.timersSettings.displayRedrawRate); #ifdef FEATURE_CLOUD callable("cloudCollectRat", boardcomputerHardware.timersSettings.cloudCollectRate); callable("cloudSendRate", boardcomputerHardware.timersSettings.cloudSendRate); diff --git a/main/taskmanager.cpp b/main/taskmanager.cpp index 151b380..07a9092 100644 --- a/main/taskmanager.cpp +++ b/main/taskmanager.cpp @@ -77,12 +77,15 @@ #ifdef FEATURE_DNS_NS #include "dnsannounce.h" #endif +#include "screens.h" using namespace std::chrono_literals; namespace { constexpr const char * const TAG = "TASKS"; +void not_needed() {} + espcpputils::SchedulerTask schedulerTasksArr[] { espcpputils::SchedulerTask { "wifi", wifi_begin, wifi_update, 100ms }, espcpputils::SchedulerTask { "input", InputDispatcher::init, InputDispatcher::update, 20ms }, @@ -151,6 +154,8 @@ espcpputils::SchedulerTask schedulerTasksArr[] { #ifdef FEATURE_DNS_NS espcpputils::SchedulerTask { "dnsannounce", init_dns_announce, handle_dns_announce, 100ms }, #endif + espcpputils::SchedulerTask { "updateDisp", not_needed, updateDisplay, 20ms }, + espcpputils::SchedulerTask { "redrawDisp", not_needed, redrawDisplay, 20ms }, }; } // namespace diff --git a/main/texts.cpp b/main/texts.cpp index a5c2e8f..1a297e1 100644 --- a/main/texts.cpp +++ b/main/texts.cpp @@ -431,8 +431,6 @@ char TEXT_MOTORTEST[] = "Motortest"; //TimersMenu //char TEXT_TIMERS[] = "Timers"; char TEXT_STATSUPDATERATE[] = "Stats update rate"; -char TEXT_DISPLAYUPDATERATE[] = "Display update rate"; -char TEXT_DISPLAYREDRAWRATE[] = "Display redraw rate"; //char TEXT_BACK[] = "Back"; //TimeSettingsMenu diff --git a/main/texts.h b/main/texts.h index 43765eb..899c3fa 100644 --- a/main/texts.h +++ b/main/texts.h @@ -431,8 +431,6 @@ extern char TEXT_MOTORTEST[]; //TimersMenu //extern char TEXT_TIMERS[]; extern char TEXT_STATSUPDATERATE[]; -extern char TEXT_DISPLAYUPDATERATE[]; -extern char TEXT_DISPLAYREDRAWRATE[]; //extern char TEXT_BACK[]; //TimeSettingsMenu