Added featureflags menu

This commit is contained in:
CommanderRedYT
2022-01-17 15:38:04 +01:00
parent 1a5df4e877
commit fa4aeac27d
4 changed files with 72 additions and 0 deletions

View File

@ -97,6 +97,7 @@ set(headers
displays/menus/espnowmenu.h
displays/menus/espnowsettingsmenu.h
displays/menus/extrabuttoncalibratemenu.h
displays/menus/featureflagsmenu.h
displays/menus/feedbackdebugmenu.h
displays/menus/gametrakmodesettingsmenu.h
displays/menus/garagenmenu.h
@ -326,6 +327,7 @@ set(sources
displays/menus/espnowmenu.cpp
displays/menus/espnowsettingsmenu.cpp
displays/menus/extrabuttoncalibratemenu.cpp
displays/menus/featureflagsmenu.cpp
displays/menus/feedbackdebugmenu.cpp
displays/menus/gametrakmodesettingsmenu.cpp
displays/menus/garagenmenu.cpp

View File

@ -0,0 +1,53 @@
#include "featureflagsmenu.h"
constexpr const char * const TAG = "FEATUREFLAGSMENU";
// 3rdparty lib includes
#include <fmt/core.h>
#include <actions/switchscreenaction.h>
#include <icons/back.h>
// local includes
#include "displays/menus/settingsmenu.h"
#include "bobbycheckbox.h"
#include "newsettings.h"
using namespace espgui;
namespace {
constexpr char TEXT_FEATUREFLAGS[] = "Feature Flags";
constexpr char TEXT_BACK[] = "Back";
class FeatureFlagMenuItem : public MenuItem {
public:
FeatureFlagMenuItem(ConfigWrapper<bool> *config) : m_config{*config} {}
std::string text() const override { return m_config.nvsName(); }
void triggered() override
{
ESP_LOGI(TAG, "changed value of %s", m_config.nvsName());
}
private:
ConfigWrapper<bool> &m_config;
};
} // namespace
FeatureFlagsMenu::FeatureFlagsMenu()
{
configs.callForEveryFeature([&](ConfigWrapper<bool> &feature){
constructMenuItem<FeatureFlagMenuItem>(&feature);
});
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>>>();
}
std::string FeatureFlagsMenu::text() const
{
return TEXT_FEATUREFLAGS;
}
void FeatureFlagsMenu::back()
{
switchScreen<SettingsMenu>();
}

View File

@ -0,0 +1,14 @@
#pragma once
// local includes
#include "displays/menudisplaywithtime.h"
class FeatureFlagsMenu : public bobbygui::MenuDisplayWithTime
{
public:
FeatureFlagsMenu();
std::string text() const override;
void back() override;
};

View File

@ -41,6 +41,7 @@
#include "displays/menus/crashmenu.h"
#include "displays/menus/aboutmenu.h"
#include "displays/menus/mainmenu.h"
#include "displays/menus/featureflagsmenu.h"
#include "bobbycheckbox.h"
namespace {
@ -58,6 +59,7 @@ constexpr char TEXT_TIME[] = "Time";
constexpr char TEXT_MODESSETTINGS[] = "Modes settings";
constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings";
constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings";
constexpr char TEXT_FEATUREFLAGS[] = "Feature flags";
constexpr char TEXT_AUTOCONNECTBMS[] = "Auto connect BMS";
constexpr char TEXT_BUZZER[] = "Buzzer";
constexpr char TEXT_FRONTLED[] = "Front LED";
@ -110,6 +112,7 @@ SettingsMenu::SettingsMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODESSETTINGS>, SwitchScreenAction<ModesSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CONTROLLERHARDWARESETTINGS>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FEATUREFLAGS>, SwitchScreenAction<FeatureFlagsMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
//#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS)
// constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, BobbyCheckbox, AutoConnectBmsAccessor>>();
//#endif