Taskmanager menu show elapsed times
This commit is contained in:
@@ -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>>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user