Added change screen for bluetooth mode
This commit is contained in:
@@ -136,6 +136,7 @@ void ChangeValueDisplay<Tvalue>::confirm()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#include "changevaluedisplay_bool.h"
|
#include "changevaluedisplay_bool.h"
|
||||||
|
#include "changevaluedisplay_bluetoothmode.h"
|
||||||
#include "changevaluedisplay_controlmode.h"
|
#include "changevaluedisplay_controlmode.h"
|
||||||
#include "changevaluedisplay_controltype.h"
|
#include "changevaluedisplay_controltype.h"
|
||||||
#include "changevaluedisplay_larsmmode_mode.h"
|
#include "changevaluedisplay_larsmmode_mode.h"
|
||||||
|
61
src/changevaluedisplay_bluetoothmode.h
Normal file
61
src/changevaluedisplay_bluetoothmode.h
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "changevaluedisplay.h"
|
||||||
|
#include "menudisplay.h"
|
||||||
|
#include "staticmenudefinition.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "actions/dummyaction.h"
|
||||||
|
#include "icons/back.h"
|
||||||
|
#include "texts.h"
|
||||||
|
#include "bluetoothmode.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
template<>
|
||||||
|
class ChangeValueDisplay<BluetoothMode> :
|
||||||
|
public MenuDisplay,
|
||||||
|
public StaticMenuDefinition<
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_OFF>, DummyAction>,
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_MASTER>, DummyAction>,
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_SLAVE>, DummyAction>,
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_BACK>, DummyAction, StaticMenuItemIcon<&icons::back>>
|
||||||
|
>,
|
||||||
|
public virtual AccessorInterface<BluetoothMode>,
|
||||||
|
public virtual ActionInterface
|
||||||
|
{
|
||||||
|
using Base = MenuDisplay;
|
||||||
|
|
||||||
|
public:
|
||||||
|
void start() override;
|
||||||
|
|
||||||
|
void itemPressed(int index) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
void ChangeValueDisplay<BluetoothMode>::start()
|
||||||
|
{
|
||||||
|
Base::start();
|
||||||
|
|
||||||
|
if (getValue() == BluetoothMode::Off)
|
||||||
|
setSelectedIndex(0);
|
||||||
|
else if (getValue() == BluetoothMode::Master)
|
||||||
|
setSelectedIndex(1);
|
||||||
|
else if (getValue() == BluetoothMode::Slave)
|
||||||
|
setSelectedIndex(2);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Serial.printf("Unknown BluetoothMode: %i", int(getValue()));
|
||||||
|
setSelectedIndex(4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ChangeValueDisplay<BluetoothMode>::itemPressed(int index)
|
||||||
|
{
|
||||||
|
switch (index)
|
||||||
|
{
|
||||||
|
case 0: setValue(BluetoothMode::Off); break;
|
||||||
|
case 1: setValue(BluetoothMode::Master); break;
|
||||||
|
case 2: setValue(BluetoothMode::Slave); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
triggered();
|
||||||
|
}
|
||||||
|
}
|
@@ -5,6 +5,7 @@
|
|||||||
#include "menudisplay.h"
|
#include "menudisplay.h"
|
||||||
#include "staticmenudefinition.h"
|
#include "staticmenudefinition.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "changevaluedisplay.h"
|
||||||
#include "actions/toggleboolaction.h"
|
#include "actions/toggleboolaction.h"
|
||||||
#include "actions/switchscreenaction.h"
|
#include "actions/switchscreenaction.h"
|
||||||
#include "checkboxicon.h"
|
#include "checkboxicon.h"
|
||||||
@@ -31,6 +32,15 @@ class MainMenu;
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
class SettingsMenu;
|
||||||
|
using BluetoothModeChangeDisplay = makeComponent<
|
||||||
|
ChangeValueDisplay<BluetoothMode>,
|
||||||
|
StaticText<TEXT_BLUETOOTHMODE>,
|
||||||
|
BluetoothModeAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<SettingsMenu>>,
|
||||||
|
SwitchScreenAction<SettingsMenu>
|
||||||
|
>;
|
||||||
|
|
||||||
struct FrontLedAccessor : public RefAccessor<bool> { bool &getRef() const override { return front.command.led; } };
|
struct FrontLedAccessor : public RefAccessor<bool> { bool &getRef() const override { return front.command.led; } };
|
||||||
struct BackLedAccessor : public RefAccessor<bool> { bool &getRef() const override { return back.command.led; } };
|
struct BackLedAccessor : public RefAccessor<bool> { bool &getRef() const override { return back.command.led; } };
|
||||||
|
|
||||||
@@ -45,6 +55,7 @@ class SettingsMenu :
|
|||||||
makeComponent<MenuItem, StaticText<TEXT_MODESSETTINGS>, SwitchScreenAction<ModesSettingsMenu>>,
|
makeComponent<MenuItem, StaticText<TEXT_MODESSETTINGS>, SwitchScreenAction<ModesSettingsMenu>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_CONTROLLERHARDWARESETTINGS>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::hardware>>,
|
makeComponent<MenuItem, StaticText<TEXT_CONTROLLERHARDWARESETTINGS>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::hardware>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::hardware>>,
|
makeComponent<MenuItem, StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::hardware>>,
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_BLUETOOTHMODE>, SwitchScreenAction<BluetoothModeChangeDisplay>>,
|
||||||
#ifdef FEATURE_BMS
|
#ifdef FEATURE_BMS
|
||||||
makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, ToggleBoolAction, CheckboxIcon, AutoConnectBmsAccessor>,
|
makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, ToggleBoolAction, CheckboxIcon, AutoConnectBmsAccessor>,
|
||||||
#endif
|
#endif
|
||||||
|
@@ -118,6 +118,8 @@ union X {
|
|||||||
UpdateDisplay updateDisplay;
|
UpdateDisplay updateDisplay;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
BluetoothModeChangeDisplay bluetoothModeChangeDisplay;
|
||||||
|
|
||||||
FrontFreqChangeScreen changeFrontFreq;
|
FrontFreqChangeScreen changeFrontFreq;
|
||||||
FrontPatternChangeScreen changeFrontPattern;
|
FrontPatternChangeScreen changeFrontPattern;
|
||||||
BackFreqChangeScreen changeBackFreq;
|
BackFreqChangeScreen changeBackFreq;
|
||||||
@@ -254,6 +256,8 @@ template<> decltype(displays.statusDisplay) &
|
|||||||
template<> decltype(displays.updateDisplay) &getRefByType<decltype(displays.updateDisplay)>() { return displays.updateDisplay; }
|
template<> decltype(displays.updateDisplay) &getRefByType<decltype(displays.updateDisplay)>() { return displays.updateDisplay; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
template<> decltype(displays.bluetoothModeChangeDisplay) &getRefByType<decltype(displays.bluetoothModeChangeDisplay)>() { return displays.bluetoothModeChangeDisplay; }
|
||||||
|
|
||||||
template<> decltype(displays.changeFrontFreq) &getRefByType<decltype(displays.changeFrontFreq)>() { return displays.changeFrontFreq; }
|
template<> decltype(displays.changeFrontFreq) &getRefByType<decltype(displays.changeFrontFreq)>() { return displays.changeFrontFreq; }
|
||||||
template<> decltype(displays.changeFrontPattern) &getRefByType<decltype(displays.changeFrontPattern)>() { return displays.changeFrontPattern; }
|
template<> decltype(displays.changeFrontPattern) &getRefByType<decltype(displays.changeFrontPattern)>() { return displays.changeFrontPattern; }
|
||||||
template<> decltype(displays.changeBackFreq) &getRefByType<decltype(displays.changeBackFreq)>() { return displays.changeBackFreq; }
|
template<> decltype(displays.changeBackFreq) &getRefByType<decltype(displays.changeBackFreq)>() { return displays.changeBackFreq; }
|
||||||
|
@@ -15,6 +15,7 @@ struct RefAccessorSaveSettings : public virtual RefAccessor<T>
|
|||||||
#ifdef FEATURE_BMS
|
#ifdef FEATURE_BMS
|
||||||
struct AutoConnectBmsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.autoConnectBms; } };
|
struct AutoConnectBmsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.autoConnectBms; } };
|
||||||
#endif
|
#endif
|
||||||
|
struct BluetoothModeAccessor : public RefAccessorSaveSettings<BluetoothMode> { BluetoothMode &getRef() const override { return settings.bluetoothMode; } };
|
||||||
struct ReverseBeepAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.reverseBeep; } };
|
struct ReverseBeepAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.reverseBeep; } };
|
||||||
struct ReverseBeepFreq0Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.reverseBeepFreq0; } };
|
struct ReverseBeepFreq0Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.reverseBeepFreq0; } };
|
||||||
struct ReverseBeepFreq1Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.reverseBeepFreq1; } };
|
struct ReverseBeepFreq1Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.reverseBeepFreq1; } };
|
||||||
|
@@ -68,6 +68,7 @@ constexpr char TEXT_WIFISETTINGS[] = "WiFi settings";
|
|||||||
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_BLUETOOTHMODE[] = "Bluetooth mode";
|
||||||
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";
|
||||||
@@ -260,6 +261,11 @@ constexpr char TEXT_LARSM[] = "Larsm";
|
|||||||
constexpr char TEXT_GAMETRAK[] = "Gametrak";
|
constexpr char TEXT_GAMETRAK[] = "Gametrak";
|
||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
|
//ChangeValueDisplay<BluetoothMode>
|
||||||
|
constexpr char TEXT_OFF[] = "Off";
|
||||||
|
constexpr char TEXT_MASTER[] = "Master";
|
||||||
|
constexpr char TEXT_SLAVE[] = "Slave";
|
||||||
|
|
||||||
//ChangeValueDisplay<bool>
|
//ChangeValueDisplay<bool>
|
||||||
constexpr char TEXT_TRUE[] = "true";
|
constexpr char TEXT_TRUE[] = "true";
|
||||||
constexpr char TEXT_FALSE[] = "false";
|
constexpr char TEXT_FALSE[] = "false";
|
||||||
|
Reference in New Issue
Block a user