Taskmanager menu show elapsed times

This commit is contained in:
2021-12-19 20:32:37 +01:00
parent cad8ce5d3c
commit eb55b20511
2 changed files with 22 additions and 1 deletions

View File

@@ -5,6 +5,7 @@
#include <actions/switchscreenaction.h> #include <actions/switchscreenaction.h>
#include <actions/dummyaction.h> #include <actions/dummyaction.h>
#include <schedulertask.h> #include <schedulertask.h>
#include <fmt/core.h>
// local includes // local includes
#include "displays/menus/debugmenu.h" #include "displays/menus/debugmenu.h"
@@ -12,10 +13,28 @@
using namespace espgui; 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() TaskmanagerMenu::TaskmanagerMenu()
{ {
for (const auto &task : schedulerTasks) for (const auto &task : schedulerTasks)
constructMenuItem<makeComponentArgs<MenuItem, ChangeableText, DummyAction>>(std::string{task.name()}); constructMenuItem<makeComponentArgs<MenuItem, TaskText, DummyAction>>(task);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
} }

View File

@@ -165,6 +165,8 @@ extern "C" void app_main()
if (now - performance.lastTime >= 1000ms) if (now - performance.lastTime >= 1000ms)
{ {
sched_pushStats(false);
performance.last = performance.current; performance.last = performance.current;
performance.current = 0; performance.current = 0;
performance.lastTime = now; performance.lastTime = now;