Merge pull request #167 from bobbycar-graz/taskmanager_menu

Add taskmanager menu
This commit is contained in:
2021-12-19 20:44:36 +01:00
committed by GitHub
7 changed files with 71 additions and 0 deletions

View File

@ -114,6 +114,7 @@ set(headers
displays/menus/settingsmenu.h
displays/menus/stationwifisettingsmenu.h
displays/menus/statisticsmenu.h
displays/menus/taskmanagermenu.h
displays/menus/tempomatmodesettingsmenu.h
displays/menus/timersmenu.h
displays/menus/timesettingsmenu.h
@ -330,6 +331,7 @@ set(sources
displays/menus/settingsmenu.cpp
displays/menus/stationwifisettingsmenu.cpp
displays/menus/statisticsmenu.cpp
displays/menus/taskmanagermenu.cpp
displays/menus/tempomatmodesettingsmenu.cpp
displays/menus/timersmenu.cpp
displays/menus/timesettingsmenu.cpp

View File

@ -20,6 +20,7 @@
#include "debugcolorhelpers.h"
#include "esptexthelpers.h"
#include "displays/qrcodedebug.h"
#include "displays/menus/taskmanagermenu.h"
#include "displays/menus/commanddebugmenu.h"
#include "displays/menus/motorstatedebugmenu.h"
#include "displays/menus/feedbackdebugmenu.h"
@ -48,6 +49,7 @@ using namespace espgui;
DebugMenu::DebugMenu()
{
constructMenuItem<AlertAction>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TASKMANAGER>, SwitchScreenAction<TaskmanagerMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_QRCODE_DEBUG>, SwitchScreenAction<QrCodeDebugDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LOADSETTINGS>, LoadSettingsAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SAVESETTINGS>, SaveSettingsAction>>();

View File

@ -0,0 +1,44 @@
#include "taskmanagermenu.h"
// 3rdparty lib includes
#include <icons/back.h>
#include <actions/switchscreenaction.h>
#include <actions/dummyaction.h>
#include <schedulertask.h>
#include <fmt/core.h>
// local includes
#include "displays/menus/debugmenu.h"
#include "taskmanager.h"
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<makeComponentArgs<MenuItem, TaskText, DummyAction>>(task);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
}
void TaskmanagerMenu::back()
{
switchScreen<DebugMenu>();
}

View File

@ -0,0 +1,14 @@
#pragma once
// local includes
#include "menudisplay.h"
#include "texts.h"
class TaskmanagerMenu :
public espgui::MenuDisplay,
public espgui::StaticText<TEXT_TASKMANAGER>
{
public:
TaskmanagerMenu();
void back() override;
};

View File

@ -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;

View File

@ -541,8 +541,12 @@ char TEXT_REENABLE_MENUITEMS[] = "Show advanced";
char TEXT_SELECT_BRANCH[] = "Select Branch";
char TEXT_SELECT_BRANCH_CLEAR[] = "Clear Branch";
//QrCodeDebug
char TEXT_QRCODE_DEBUG[] = "QR Debug";
// TaskmanagerMenu
char TEXT_TASKMANAGER[] = "Taskmanager";
//GreenPassMenu
char TEXT_GREENPASS[] = "Green Pass";
char TEXT_ADDCERT[] = "Add cert";

View File

@ -543,6 +543,9 @@ extern char TEXT_SELECT_BRANCH_CLEAR[];
//QrCodeDebug
extern char TEXT_QRCODE_DEBUG[];
// TaskmanagerMenu
extern char TEXT_TASKMANAGER[];
//GreenPassMenu
extern char TEXT_GREENPASS[];
extern char TEXT_ADDCERT[];