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;