More push pops again

This commit is contained in:
2022-03-05 22:58:57 +01:00
parent c0f911ce05
commit e4b8622fed
18 changed files with 220 additions and 138 deletions

View File

@ -103,7 +103,7 @@ set(headers
displays/menus/featureflagsmenu.h
displays/menus/feedbackdebugmenu.h
displays/menus/gametrakmodesettingsmenu.h
displays/menus/garagenmenu.h
displays/menus/garagemenu.h
displays/menus/graphsmenu.h
displays/menus/greenpassmenu.h
displays/menus/handbremssettingsmenu.h
@ -340,7 +340,7 @@ set(sources
displays/menus/featureflagsmenu.cpp
displays/menus/feedbackdebugmenu.cpp
displays/menus/gametrakmodesettingsmenu.cpp
displays/menus/garagenmenu.cpp
displays/menus/garagemenu.cpp
displays/menus/graphsmenu.cpp
displays/menus/greenpassmenu.cpp
displays/menus/handbremssettingsmenu.cpp

View File

@ -10,7 +10,6 @@
// local includes
#include "globals.h"
#include "utils.h"
#include "displays/menus/mainmenu.h"
#include "displays/potiscalibratedisplay.h"
#include "bobbybuttons.h"
@ -109,7 +108,7 @@ void Lockscreen::redraw()
if (!gas || !brems || *gas > 200.f || *brems > 200.f)
espgui::switchScreen<PotisCalibrateDisplay>(true);
else
espgui::switchScreen<MainMenu>();
espgui::popScreen();
#ifdef LOCKSCREEN_PLUGIN
#include LOCKSCREEN_PLUGIN
LOCKSCREEN_PLUGIN_FIXES_1

View File

@ -4,7 +4,8 @@
#include <menuitem.h>
#include <icons/back.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <changevaluedisplay.h>
#include <textwithvaluehelper.h>
#include <fmt/core.h>
@ -12,6 +13,11 @@
#include <tftinstance.h>
// Local includes
#include "utils.h"
#include "icons/settings.h"
#include "battery.h"
#include "displays/bobbychangevaluedisplay.h"
#include "displays/calibratevoltagedisplay.h"
#include "accessors/settingsaccessors.h"
#include "battery.h"
#include "displays/batterygraphdisplay.h"
@ -50,24 +56,24 @@ using BatteryCellSeriesChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_CELL_SERIES>,
BatterySeriesCellsAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BatteryMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BatteryMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using BatteryCellParallelChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_CELL_PARALLEL>,
BatteryParallelCellsAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BatteryMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BatteryMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using BatteryWHperKMChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint16_t>,
espgui::StaticText<TEXT_BATTERY_WHKM>,
BatteryWHperKMAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BatteryMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BatteryMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
} // namespace
@ -77,15 +83,15 @@ BatteryMenu::BatteryMenu()
{
constructMenuItem<makeComponent<MenuItem, CurrentBatteryStatusText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_SERIES, BatterySeriesCellsAccessor>, SwitchScreenAction<BatteryCellSeriesChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_PARALLEL, BatteryParallelCellsAccessor>, SwitchScreenAction<BatteryCellParallelChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_BATTERY_WHKM, BatteryWHperKMAccessor>, SwitchScreenAction<BatteryWHperKMChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_SERIES, BatterySeriesCellsAccessor>, PushScreenAction<BatteryCellSeriesChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_PARALLEL, BatteryParallelCellsAccessor>, PushScreenAction<BatteryCellParallelChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_BATTERY_WHKM, BatteryWHperKMAccessor>, PushScreenAction<BatteryWHperKMChangeScreen>>>();
constructMenuItem<PopScreenTypeSafeChangeMenuItem<BatteryCellType, TEXT_SELECT_CELL_TYPE>>(&configs.battery.cellType);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SHOW_BATTERY_GRAPH>, SwitchScreenAction<BatteryGraphDisplay>, StaticMenuItemIcon<&bobbyicons::graph>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SHOW_BATTERY_GRAPH>, PushScreenAction<BatteryGraphDisplay>, StaticMenuItemIcon<&bobbyicons::graph>>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WhStatisticsText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_CALIBRATE>, SwitchScreenAction<CalibrateVoltageDisplay>, StaticMenuItemIcon<&bobbyicons::settings>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_CALIBRATE>, PushScreenAction<CalibrateVoltageDisplay>, StaticMenuItemIcon<&bobbyicons::settings>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string BatteryMenu::text() const
@ -129,5 +135,5 @@ void BatteryMenu::redraw()
void BatteryMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}

View File

@ -10,10 +10,9 @@
#include "actions/bmsturnoffchargeaction.h"
#include "actions/bmsturnondischargeaction.h"
#include "actions/bmsturnoffdischargeaction.h"
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "bluetoothtexthelpers.h"
#include "icons/back.h"
#include "displays/menus/mainmenu.h"
using namespace espgui;
using namespace bluetoothtexthelpers;
@ -27,11 +26,11 @@ BmsMenu::BmsMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TURNOFFCHARGE>, BmsTurnOffChargeAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TURNONDISCHARGE>, BmsTurnOnDischargeAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TURNOFFDISCHARGE>, BmsTurnOffDischargeAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
void BmsMenu::back()
{
switchSreen<MainMenu>();
popSreen();
}
#endif

View File

@ -1,4 +1,4 @@
#include "garagenmenu.h"
#include "garagemenu.h"
// 3rd party libs
#include <icons/back.h>
@ -8,8 +8,7 @@
#include <menuitem.h>
// local includes
#include "actions/switchscreenaction.h"
#include "displays/menus/mainmenu.h"
#include "actions/popscreenaction.h"
#include "espnowfunctions.h"
#include "globals.h"
#include "newsettings.h"
@ -42,7 +41,7 @@ GarageMenu::GarageMenu()
menuitem.setTitle(wirelessDoor.doorId.value);
}
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string GarageMenu::text() const
@ -52,7 +51,7 @@ std::string GarageMenu::text() const
void GarageMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}
namespace {

View File

@ -1,7 +1,8 @@
#include "graphsmenu.h"
// 3rdparty lib includes
#include "actions/switchscreenaction.h"
#include "actions/pushscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
#include "graphdisplay.h"
#include "splitgraphdisplay.h"
@ -11,7 +12,6 @@
#include "displays/bobbysplitgraphdisplay.h"
#include "utils.h"
#include "statistics.h"
#include "displays/menus/mainmenu.h"
namespace {
constexpr char TEXT_GRAPHS[] = "Graphs";
@ -36,83 +36,83 @@ using GasGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_GAS>,
espgui::SingleGraphAccessor<GasStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using BremsGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_BREMS>,
espgui::SingleGraphAccessor<BremsStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using PotisGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<2>,
espgui::StaticText<TEXT_POTIS>,
espgui::DualGraphAccessor<GasStatistics, BremsStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using PotisSplitGraphDisplay = espgui::makeComponent<
BobbySplitGraphDisplay<1, 1>,
espgui::StaticText<TEXT_POTIS>,
espgui::SingleTopGraphAccessor<GasStatistics>,
espgui::SingleBottomGraphAccessor<BremsStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using AvgSpeedGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_AVGSPEED>,
espgui::SingleGraphAccessor<AvgSpeedStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using AvgSpeedKmhGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_AVGSPEEDKMH>,
espgui::SingleGraphAccessor<AvgSpeedKmhStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using SumCurrentGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_SUMCURRENT>,
espgui::SingleGraphAccessor<SumCurrentStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using FrontVoltageGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_FRONTVOLTAGE>,
espgui::SingleGraphAccessor<FrontVoltageStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using BackVoltageGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_BACKVOLTAGE>,
espgui::SingleGraphAccessor<BackVoltageStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using VoltagesGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<2>,
espgui::StaticText<TEXT_VOLTAGES>,
espgui::DualGraphAccessor<FrontVoltageStatistics, BackVoltageStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using VoltagesSplitGraphDisplay = espgui::makeComponent<
BobbySplitGraphDisplay<1, 1>,
espgui::StaticText<TEXT_VOLTAGES>,
espgui::SingleTopGraphAccessor<FrontVoltageStatistics>,
espgui::SingleBottomGraphAccessor<BackVoltageStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
#ifdef FEATURE_BMS
@ -120,29 +120,29 @@ using BmsVoltageGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_BMSVOLTAGE>,
espgui::SingleGraphAccessor<BmsVoltageStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using BmsCurrentGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_BMSCURRENT>,
espgui::SingleGraphAccessor<BmsCurrentStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using BmsPowerGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_BMSPOWER>,
espgui::SingleGraphAccessor<BmsPowerStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using SumCurrentsComparisonGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<2>,
espgui::StaticText<TEXT_SUMCURRENTSCOMPARISON>,
DualGraphAccessor<SumCurrentStatistics, BmsCurrentStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
#endif
@ -157,42 +157,42 @@ using MotorCurrentsGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<4>,
espgui::StaticText<TEXT_MOTORCURRENTS>,
MotorCurrentsStatistics,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using RssiGraphDisplay = espgui::makeComponent<
BobbyGraphDisplay<1>,
espgui::StaticText<TEXT_RSSI>,
espgui::SingleGraphAccessor<RssiStatistics>,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<GraphsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<GraphsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
} // namespace
GraphsMenu::GraphsMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GAS>, SwitchScreenAction<GasGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BREMS>, SwitchScreenAction<BremsGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_POTIS>, SwitchScreenAction<PotisGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_POTIS>, SwitchScreenAction<PotisSplitGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AVGSPEED>, SwitchScreenAction<AvgSpeedGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AVGSPEEDKMH>, SwitchScreenAction<AvgSpeedKmhGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SUMCURRENT>, SwitchScreenAction<SumCurrentGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTVOLTAGE>, SwitchScreenAction<FrontVoltageGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKVOLTAGE>, SwitchScreenAction<BackVoltageGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGES>, SwitchScreenAction<VoltagesGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGES>, SwitchScreenAction<VoltagesSplitGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GAS>, PushScreenAction<GasGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BREMS>, PushScreenAction<BremsGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_POTIS>, PushScreenAction<PotisGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_POTIS>, PushScreenAction<PotisSplitGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AVGSPEED>, PushScreenAction<AvgSpeedGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AVGSPEEDKMH>, PushScreenAction<AvgSpeedKmhGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SUMCURRENT>, PushScreenAction<SumCurrentGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTVOLTAGE>, PushScreenAction<FrontVoltageGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKVOLTAGE>, PushScreenAction<BackVoltageGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGES>, PushScreenAction<VoltagesGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGES>, PushScreenAction<VoltagesSplitGraphDisplay>>>();
#ifdef FEATURE_BMS
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BMSVOLTAGE>, SwitchScreenAction<BmsVoltageGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BMSCURRENT>, SwitchScreenAction<BmsCurrentGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BMSPOWER>, SwitchScreenAction<BmsPowerGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SUMCURRENTSCOMPARISON>, SwitchScreenAction<SumCurrentsComparisonGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BMSVOLTAGE>, PushScreenAction<BmsVoltageGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BMSCURRENT>, PushScreenAction<BmsCurrentGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BMSPOWER>, PushScreenAction<BmsPowerGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SUMCURRENTSCOMPARISON>, PushScreenAction<SumCurrentsComparisonGraphDisplay>>>();
#endif
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MOTORCURRENTS>, SwitchScreenAction<MotorCurrentsGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_RSSI>, SwitchScreenAction<RssiGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MOTORCURRENTS>, PushScreenAction<MotorCurrentsGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_RSSI>, PushScreenAction<RssiGraphDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string GraphsMenu::text() const
@ -202,5 +202,5 @@ std::string GraphsMenu::text() const
void GraphsMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}

View File

@ -6,13 +6,13 @@
// 3rdparty lib includes
#include <fmt/core.h>
#include "actions/switchscreenaction.h"
#include "actions/pushscreenaction.h"
#include "actions/popscreenaction.h"
#include "actions/dummyaction.h"
#include "icons/back.h"
// local includes
#include "actions/qraction.h"
#include "displays/menus/mainmenu.h"
#include "displays/qrdisplay.h"
#include "displays/qrimportdisplay.h"
#include "qrimport.h"
@ -49,11 +49,11 @@ public:
if (deleteMode)
{
qrimport::delete_qr_code(m_qrmenu.text);
espgui::switchScreen<GreenPassMenu>();
espgui::popScreen();
}
else
{
espgui::switchScreen<QrDisplay<GreenPassMenu>>(m_qrmenu.message);
espgui::pushScreen<QrDisplay<GreenPassMenu>>(m_qrmenu.message);
}
}
private:
@ -87,8 +87,9 @@ GreenPassMenu::GreenPassMenu()
constructMenuItem<makeComponentArgs<MenuItem, SwitchQrImportDisplayAction<GreenPassMenu>, StaticText<TEXT_ADDCERT>>>(std::move(nvs_key));
}
}
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DELCERT>, BobbyCheckbox, DeleteModeAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string GreenPassMenu::text() const
@ -98,5 +99,5 @@ std::string GreenPassMenu::text() const
void GreenPassMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}

View File

@ -22,7 +22,7 @@
#include "displays/menus/demosmenu.h"
#include "displays/menus/greenpassmenu.h"
#include "displays/lockscreen.h"
#include "displays/menus/garagenmenu.h"
#include "displays/menus/garagemenu.h"
#include "displays/menus/otamenu.h"
#include "displays/poweroffdisplay.h"
#include "displays/menus/statisticsmenu.h"

View File

@ -3,11 +3,10 @@
#ifdef FEATURE_MOSFETS
// 3rdparty lib includes
#include "accessorinterface.h"
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
// local includes
#include "displays/menus/mainmenu.h"
#include "bobbycheckbox.h"
#include "types.h"
@ -37,7 +36,7 @@ MosfetsMenu::MosfetsMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MOSFET0>, BobbyCheckbox, Mosfet0Accessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MOSFET1>, BobbyCheckbox, Mosfet1Accessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MOSFET2>, BobbyCheckbox, Mosfet2Accessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string MosfetsMenu::text() const
@ -47,7 +46,7 @@ std::string MosfetsMenu::text() const
void MosfetsMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}
#endif

View File

@ -3,7 +3,8 @@
// 3rdparty lib includes
#include "actioninterface.h"
#include "actions/dummyaction.h"
#include "actions/switchscreenaction.h"
#include "actions/pushscreenaction.h"
#include "actions/popscreenaction.h"
// local includes
#include "icons/back.h"
@ -12,7 +13,6 @@
#include "displays/menus/selectotabuildmenu.h"
#include "displays/menus/selectbuildserverbranch.h"
#include "displays/menus/selectbuildservermenu.h"
#include "displays/menus/mainmenu.h"
#include "displays/updatedisplay.h"
namespace {
@ -27,11 +27,11 @@ constexpr char TEXT_BACK[] = "Back";
OtaMenu::OtaMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECTBUILD>, SwitchScreenAction<SelectBuildMenu>, StaticMenuItemIcon<&bobbyicons::presets>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECT_BRANCH>, SwitchScreenAction<SelectBuildserverBranchMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_UPDATENOW>, SwitchScreenAction<UpdateDisplay>, StaticMenuItemIcon<&bobbyicons::update>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECTBUILDSERVERMENU>, SwitchScreenAction<SelectBuildServerMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECTBUILD>, PushScreenAction<SelectBuildMenu>, StaticMenuItemIcon<&bobbyicons::presets>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECT_BRANCH>, PushScreenAction<SelectBuildserverBranchMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_UPDATENOW>, PushScreenAction<UpdateDisplay>, StaticMenuItemIcon<&bobbyicons::update>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECTBUILDSERVERMENU>, PushScreenAction<SelectBuildServerMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string OtaMenu::text() const
@ -41,5 +41,5 @@ std::string OtaMenu::text() const
void OtaMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}

View File

@ -0,0 +1,71 @@
#include "selectbatterytypemenu.h"
// 3rdparty lib includes
#include <menuitem.h>
#include <icons/back.h>
#include <actions/popscreenaction.h>
#include <actioninterface.h>
#include <actions/dummyaction.h>
// local includes
#include "battery.h"
#include "newsettings.h"
#include "utils.h"
#include "displays/menus/batterymenu.h"
#include "batterymenu.h"
#include "displays/menus/mainmenu.h"
namespace {
constexpr char TEXT_CELL_SERIES[] = "Cells (Series)";
constexpr char TEXT_CELL_PARALLEL[] = "Cells (Parallel)";
constexpr char TEXT_SELECT_CELL_TYPE[] = "Select Cell Type";
constexpr char TEXT_CELL_TYPE[] = "Cell Type";
constexpr char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages";
constexpr char TEXT_BATTERY_TYPE_22P[] = "22P cells";
constexpr char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells";
constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells";
constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells";
constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells";
constexpr char TEXT_BATTERY_WHKM[] = "Wh per km";
constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration";
constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration";
constexpr char TEXT_BACK[] = "Back";
class CurrentBatteryTypeText : public virtual espgui::TextInterface
{
public:
std::string text() const override
{
return getBatteryCellTypeString();
}
};
template<BatteryCellType T>
class BatterySelectTypeAction : public virtual espgui::ActionInterface
{
public:
void triggered() override { configs.write_config(configs.battery.cellType, uint8_t(T)); }
};
} // namespace
BatteryTypeMenu::BatteryTypeMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, CurrentBatteryTypeText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_22P>, BatterySelectTypeAction<BatteryCellType::_22P>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_HG2>, BatterySelectTypeAction<BatteryCellType::HG2>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_MH1>, BatterySelectTypeAction<BatteryCellType::MH1>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_VTC5>, BatterySelectTypeAction<BatteryCellType::VTC5>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_BAK_25R>, BatterySelectTypeAction<BatteryCellType::BAK_25R>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string BatteryTypeMenu::text() const
{
return TEXT_SELECT_CELL_TYPE;
}
void BatteryTypeMenu::back()
{
espgui::popScreen();
}

View File

@ -2,6 +2,9 @@
// 3rd party includes
#include <espwifistack.h>
#include "actions/dummyaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
// local includes
#include "actions/dummyaction.h"
@ -10,6 +13,8 @@
#include "buildserver.h"
#include "displays/menus/otamenu.h"
#include "icons/back.h"
#include "buildserver.h"
#include "globals.h"
#include "icons/reboot.h"
#include "newsettings.h"
@ -85,7 +90,7 @@ SelectBuildserverBranchMenu::SelectBuildserverBranchMenu()
#define ERR_MESSAGE(text) \
constructMenuItem<makeComponent<MenuItem, StaticText<text>, DefaultFont, StaticColor<TFT_RED>, DummyAction>>(); \
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>(); \
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); \
return;
if (count_available_buildserver() < 1)
@ -144,12 +149,12 @@ void SelectBuildserverBranchMenu::update()
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECT_BRANCH_CLEAR>, ClearBranchAction, StaticMenuItemIcon<&bobbyicons::reboot>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
Base::update();
}
void SelectBuildserverBranchMenu::back()
{
espgui::switchScreen<OtaMenu>();
espgui::popScreen();
}

View File

@ -4,14 +4,13 @@
#include <esp_log.h>
// 3rdparty lib includes
#include <actions/switchscreenaction.h>
#include <actions/popscreenaction.h>
#include <fmt/core.h>
#include <icons/back.h>
#include <actions/dummyaction.h>
// local includes
#include "buildserver.h"
#include "displays/menus/otamenu.h"
#include "utils.h"
#include "newsettings.h"
@ -69,7 +68,7 @@ SelectBuildServerMenu::SelectBuildServerMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NOBUILDSERVERCONFIGURED>, DefaultFont, StaticColor<TFT_RED>, DummyAction>>();
}
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string SelectBuildServerMenu::text() const
@ -79,5 +78,5 @@ std::string SelectBuildServerMenu::text() const
void SelectBuildServerMenu::back()
{
espgui::switchScreen<OtaMenu>();
espgui::popScreen();
}

View File

@ -4,6 +4,9 @@
#include <TFT_eSPI.h>
#include "esp_log.h"
#include "fmt/core.h"
#include "actions/popscreenaction.h"
#include "actions/dummyaction.h"
#include "icons/back.h"
// local includes
#include "actions/dummyaction.h"
@ -12,6 +15,9 @@
#include "buildserver.h"
#include "displays/menus/otamenu.h"
#include "icons/back.h"
#include "buildserver.h"
#include "utils.h"
#include "globals.h"
#include "newsettings.h"
#define MESSAGE(text) constructMenuItem<makeComponent<MenuItem, StaticText<text>, DefaultFont, StaticColor<TFT_RED>, DummyAction>>()
@ -58,12 +64,12 @@ SelectBuildMenu::SelectBuildMenu()
if (buildserver::count_available_buildserver() < 1)
{
MESSAGE(TEXT_OTA_NOBUILDSERVERAVAILABLE);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
else if (configs.otaServerUrl.value.empty())
{
MESSAGE(TEXT_OTA_NOBUILDSERVERSELECTED);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
else
{
@ -71,7 +77,7 @@ SelectBuildMenu::SelectBuildMenu()
if (staStatus != wifi_stack::WiFiStaStatus::CONNECTED)
{
MESSAGE(TEXT_OTA_NOCONNECTION);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
else
{
@ -84,7 +90,7 @@ SelectBuildMenu::SelectBuildMenu()
auto hash = filename.substr(0, filename.length() - 4);
menuitem.setHash(hash);
menuitem.setUrl(serverUrl);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
else
{
@ -135,10 +141,10 @@ void SelectBuildMenu::buildMenuFromJson()
menuitem.setHash(hash);
menuitem.setUrl(fmt::format(url_for_hashes, hash));
}
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<OtaMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
void SelectBuildMenu::back()
{
switchScreen<OtaMenu>();
popScreen();
}

View File

@ -4,7 +4,8 @@
#include <Arduino.h>
// 3rdparty lib includes
#include "actions/switchscreenaction.h"
#include "actions/pushscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
// local includes
@ -81,39 +82,39 @@ SettingsMenu::SettingsMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKLIGHT>, BobbyCheckbox, BacklightAccessor>>();
#endif
if (!simplified)
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LIMITSSETTINGS>, SwitchScreenAction<LimitsSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LIMITSSETTINGS>, PushScreenAction<LimitsSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NETWORKSETTINGS>, SwitchScreenAction<NetworkSettingsMenu>, StaticMenuItemIcon<&bobbyicons::wifi>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NETWORKSETTINGS>, PushScreenAction<NetworkSettingsMenu>, StaticMenuItemIcon<&bobbyicons::wifi>>>();
if (configs.feature.esp_now.isEnabled.value)
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ESPNOW>, SwitchScreenAction<EspNowMenu>, StaticMenuItemIcon<&bobbyicons::wifi>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ESPNOW>, PushScreenAction<EspNowMenu>, StaticMenuItemIcon<&bobbyicons::wifi>>>();
#ifdef FEATURE_BLUETOOTH
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BLUETOOTHSETTINGS>, SwitchScreenAction<BluetoothSettingsMenu>, StaticMenuItemIcon<&bobbyicons::bluetooth>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BLUETOOTHSETTINGS>, PushScreenAction<BluetoothSettingsMenu>, StaticMenuItemIcon<&bobbyicons::bluetooth>>>();
#endif
if (configs.feature.ble.isEnabled.value)
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BLESETTINGS>, SwitchScreenAction<BleSettingsMenu>, StaticMenuItemIcon<&bobbyicons::bluetooth>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BLESETTINGS>, PushScreenAction<BleSettingsMenu>, StaticMenuItemIcon<&bobbyicons::bluetooth>>>();
if (configs.feature.cloud.isEnabled.value)
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDSETTINGS>, SwitchScreenAction<CloudSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDSETTINGS>, PushScreenAction<CloudSettingsMenu>>>();
if (configs.feature.udpcloud.isEnabled.value)
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_UDPCLOUDSETTINGS>, SwitchScreenAction<UdpCloudSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_UDPCLOUDSETTINGS>, PushScreenAction<UdpCloudSettingsMenu>>>();
if (configs.feature.ota.isEnabled.value)
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECTBUILDSERVERMENU>, SwitchScreenAction<SelectBuildServerMenu>, StaticMenuItemIcon<&bobbyicons::update>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TIME>, SwitchScreenAction<TimeSettingsMenu>, StaticMenuItemIcon<&bobbyicons::time>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SELECTBUILDSERVERMENU>, PushScreenAction<SelectBuildServerMenu>, StaticMenuItemIcon<&bobbyicons::update>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TIME>, PushScreenAction<TimeSettingsMenu>, StaticMenuItemIcon<&bobbyicons::time>>>();
if (!simplified)
{
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_MODESSETTINGS>, PushScreenAction<ModesSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CONTROLLERHARDWARESETTINGS>, PushScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>, PushScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
}
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FEATUREFLAGS>, SwitchScreenAction<FeatureFlagsMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FEATUREFLAGS>, PushScreenAction<FeatureFlagsMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
//#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS)
// constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, BobbyCheckbox, AutoConnectBmsAccessor>>();
//#endif
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BUZZER>, SwitchScreenAction<BuzzerMenu>, StaticMenuItemIcon<&bobbyicons::buzzer>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BUZZER>, PushScreenAction<BuzzerMenu>, StaticMenuItemIcon<&bobbyicons::buzzer>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTLED>, BobbyCheckbox, FrontLedAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKLED>, BobbyCheckbox, BackLedAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CRASHMENU>, SwitchScreenAction<CrashMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ABOUT>, SwitchScreenAction<AboutMenu>, StaticMenuItemIcon<&bobbyicons::info>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CRASHMENU>, PushScreenAction<CrashMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ABOUT>, PushScreenAction<AboutMenu>, StaticMenuItemIcon<&bobbyicons::info>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string SettingsMenu::text() const
@ -123,5 +124,5 @@ std::string SettingsMenu::text() const
void SettingsMenu::back()
{
switchScreen<MainMenu>();
popScreen();
}

View File

@ -3,11 +3,9 @@
// 3rdparty lib includes
#include <tftinstance.h>
#include <screenmanager.h>
#include "actions/switchscreenaction.h"
// local includes
#include "globals.h"
#include "displays/menus/mainmenu.h"
#if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY)
void PowerSupplyDisplay::initScreen()
@ -42,7 +40,7 @@ void PowerSupplyDisplay::buttonPressed(espgui::Button button)
using espgui::Button;
case Button::Left:
case Button::Right:
espgui::switchScreen<MainMenu>();
espgui::popScreen();
break;
default:;
}

View File

@ -16,7 +16,6 @@
// local includes
#include "globals.h"
#include "ota.h"
#include "displays/menus/otamenu.h"
#include "newsettings.h"
void UpdateDisplay::initScreen()
@ -106,7 +105,7 @@ void UpdateDisplay::buttonPressed(espgui::Button button)
{
using espgui::Button;
case Button::Left:
espgui::switchScreen<OtaMenu>();
espgui::popScreen();
break;
case Button::Right:
if (const auto result = triggerOta(configs.otaUrl.value); !result)