Added featureflags menu
This commit is contained in:
@ -97,6 +97,7 @@ set(headers
|
|||||||
displays/menus/espnowmenu.h
|
displays/menus/espnowmenu.h
|
||||||
displays/menus/espnowsettingsmenu.h
|
displays/menus/espnowsettingsmenu.h
|
||||||
displays/menus/extrabuttoncalibratemenu.h
|
displays/menus/extrabuttoncalibratemenu.h
|
||||||
|
displays/menus/featureflagsmenu.h
|
||||||
displays/menus/feedbackdebugmenu.h
|
displays/menus/feedbackdebugmenu.h
|
||||||
displays/menus/gametrakmodesettingsmenu.h
|
displays/menus/gametrakmodesettingsmenu.h
|
||||||
displays/menus/garagenmenu.h
|
displays/menus/garagenmenu.h
|
||||||
@ -326,6 +327,7 @@ set(sources
|
|||||||
displays/menus/espnowmenu.cpp
|
displays/menus/espnowmenu.cpp
|
||||||
displays/menus/espnowsettingsmenu.cpp
|
displays/menus/espnowsettingsmenu.cpp
|
||||||
displays/menus/extrabuttoncalibratemenu.cpp
|
displays/menus/extrabuttoncalibratemenu.cpp
|
||||||
|
displays/menus/featureflagsmenu.cpp
|
||||||
displays/menus/feedbackdebugmenu.cpp
|
displays/menus/feedbackdebugmenu.cpp
|
||||||
displays/menus/gametrakmodesettingsmenu.cpp
|
displays/menus/gametrakmodesettingsmenu.cpp
|
||||||
displays/menus/garagenmenu.cpp
|
displays/menus/garagenmenu.cpp
|
||||||
|
53
main/displays/menus/featureflagsmenu.cpp
Normal file
53
main/displays/menus/featureflagsmenu.cpp
Normal 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>();
|
||||||
|
}
|
14
main/displays/menus/featureflagsmenu.h
Normal file
14
main/displays/menus/featureflagsmenu.h
Normal 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;
|
||||||
|
};
|
@ -41,6 +41,7 @@
|
|||||||
#include "displays/menus/crashmenu.h"
|
#include "displays/menus/crashmenu.h"
|
||||||
#include "displays/menus/aboutmenu.h"
|
#include "displays/menus/aboutmenu.h"
|
||||||
#include "displays/menus/mainmenu.h"
|
#include "displays/menus/mainmenu.h"
|
||||||
|
#include "displays/menus/featureflagsmenu.h"
|
||||||
#include "bobbycheckbox.h"
|
#include "bobbycheckbox.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@ -58,6 +59,7 @@ constexpr char TEXT_TIME[] = "Time";
|
|||||||
constexpr char TEXT_MODESSETTINGS[] = "Modes settings";
|
constexpr char TEXT_MODESSETTINGS[] = "Modes settings";
|
||||||
constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings";
|
constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings";
|
||||||
constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer 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_AUTOCONNECTBMS[] = "Auto connect BMS";
|
||||||
constexpr char TEXT_BUZZER[] = "Buzzer";
|
constexpr char TEXT_BUZZER[] = "Buzzer";
|
||||||
constexpr char TEXT_FRONTLED[] = "Front LED";
|
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_MODESSETTINGS>, SwitchScreenAction<ModesSettingsMenu>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CONTROLLERHARDWARESETTINGS>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
|
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_BOARDCOMPUTERHARDWARESETTINGS>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FEATUREFLAGS>, SwitchScreenAction<FeatureFlagsMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
|
||||||
//#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS)
|
//#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS)
|
||||||
// constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, BobbyCheckbox, AutoConnectBmsAccessor>>();
|
// constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, BobbyCheckbox, AutoConnectBmsAccessor>>();
|
||||||
//#endif
|
//#endif
|
||||||
|
Reference in New Issue
Block a user