From eb55b20511fc8cef9f686093f9ae03568012241b Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 19 Dec 2021 20:32:37 +0100 Subject: [PATCH] Taskmanager menu show elapsed times --- main/displays/menus/taskmanagermenu.cpp | 21 ++++++++++++++++++++- main/main.cpp | 2 ++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/main/displays/menus/taskmanagermenu.cpp b/main/displays/menus/taskmanagermenu.cpp index 8cdf08b..5d44948 100644 --- a/main/displays/menus/taskmanagermenu.cpp +++ b/main/displays/menus/taskmanagermenu.cpp @@ -5,6 +5,7 @@ #include #include #include +#include // local includes #include "displays/menus/debugmenu.h" @@ -12,10 +13,28 @@ using namespace espgui; +namespace { + +class TaskText : public virtual espgui::TextInterface +{ +public: + TaskText(const espcpputils::SchedulerTask &task) : m_task{task} {} + + std::string text() const override + { + const std::string_view name{m_task.name()}; + return fmt::format("{}{}&f &2{} &1{}ms", name.size() > 6 ? "&s" : "", name, m_task.callCount(), m_task.maxElapsed().count()); + } + +private: + const espcpputils::SchedulerTask &m_task; +}; +} // namespace + TaskmanagerMenu::TaskmanagerMenu() { for (const auto &task : schedulerTasks) - constructMenuItem>(std::string{task.name()}); + constructMenuItem>(task); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/main.cpp b/main/main.cpp index 9111943..91922d3 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -165,6 +165,8 @@ extern "C" void app_main() if (now - performance.lastTime >= 1000ms) { + sched_pushStats(false); + performance.last = performance.current; performance.current = 0; performance.lastTime = now;