Implemented settings in WifiSettingsMenu
This commit is contained in:
@ -1,12 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menudisplay.h"
|
||||
#include "staticmenudefinition.h"
|
||||
#include "utils.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "icons/scan.h"
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
#include "settingsaccessors.h"
|
||||
|
||||
namespace {
|
||||
class GenericWifiSettingsMenu;
|
||||
@ -17,11 +21,23 @@ class SettingsMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
class WifiSettingsMenu;
|
||||
|
||||
using AutoWifiModeChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<wifi_mode_t>,
|
||||
StaticText<TEXT_AUTOWIFIMODE>,
|
||||
AutoWifiModeAccessor,
|
||||
BackActionInterface<SwitchScreenAction<WifiSettingsMenu>>,
|
||||
SwitchScreenAction<WifiSettingsMenu>
|
||||
>;
|
||||
|
||||
class WifiSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_WIFISETTINGS>,
|
||||
public BackActionInterface<SwitchScreenAction<SettingsMenu>>,
|
||||
public StaticMenuDefinition<
|
||||
makeComponent<MenuItem, StaticText<TEXT_AUTOWIFIMODE>, SwitchScreenAction<AutoWifiModeChangeDisplay>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_AUTOENABLEAP>, ToggleBoolAction, CheckboxIcon, AutoEnableApAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_GENERICWIFISETTINGS>, SwitchScreenAction<GenericWifiSettingsMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_STATIONWIFISETTINGS>, SwitchScreenAction<StationWifiSettingsMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_WIFISCAN>, SwitchScreenAction<WifiScanMenu>, StaticMenuItemIcon<&icons::scan>>,
|
||||
|
@ -90,10 +90,11 @@ void setup()
|
||||
if (!WiFi.softAPsetHostname(deviceName))
|
||||
Serial.println("Could not softAPsetHostname");
|
||||
|
||||
if (!WiFi.mode(WIFI_AP_STA))
|
||||
if (!WiFi.mode(settings.wifiSettings.autoWifiMode))
|
||||
Serial.println("Could not set mode to WIFI_AP_STA");
|
||||
|
||||
WifiSoftApAction{}.triggered();
|
||||
if (settings.wifiSettings.autoEnableAp)
|
||||
WifiSoftApAction{}.triggered();
|
||||
|
||||
if (!WiFi.begin("realraum", "r3alraum"))
|
||||
Serial.println("Could not begin WiFi");
|
||||
|
@ -122,6 +122,8 @@ union X {
|
||||
UpdateDisplay updateDisplay;
|
||||
#endif
|
||||
|
||||
AutoWifiModeChangeDisplay autoWifiModeChangeDisplay;
|
||||
|
||||
AutoBluetoothModeChangeDisplay autoBluetoothModeChangeDisplay;
|
||||
|
||||
FrontFreqChangeScreen changeFrontFreq;
|
||||
@ -265,6 +267,8 @@ template<> decltype(displays.statusDisplay) &
|
||||
template<> decltype(displays.updateDisplay) &getRefByType<decltype(displays.updateDisplay)>() { return displays.updateDisplay; }
|
||||
#endif
|
||||
|
||||
template<> decltype(displays.autoWifiModeChangeDisplay) &getRefByType<decltype(displays.autoWifiModeChangeDisplay)>() { return displays.autoWifiModeChangeDisplay; }
|
||||
|
||||
template<> decltype(displays.autoBluetoothModeChangeDisplay) &getRefByType<decltype(displays.autoBluetoothModeChangeDisplay)>() { return displays.autoBluetoothModeChangeDisplay; }
|
||||
|
||||
template<> decltype(displays.changeFrontFreq) &getRefByType<decltype(displays.changeFrontFreq)>() { return displays.changeFrontFreq; }
|
||||
|
@ -92,6 +92,8 @@ constexpr char TEXT_SWAPFRONTBACK[] = "Swap front/back";
|
||||
|
||||
//StationWifiSettingsMenu
|
||||
constexpr char TEXT_STATIONWIFISETTINGS[] = "Station WiFi settings";
|
||||
constexpr char TEXT_AUTOWIFIMODE[] = "Auto wifi mode";
|
||||
constexpr char TEXT_AUTOENABLEAP[] = "Auto enable AP";
|
||||
constexpr char TEXT_WIFIRECONNECT[] = "reconnect()";
|
||||
constexpr char TEXT_WIFIDISCONNECT[] = "disconnect()";
|
||||
constexpr char TEXT_WIFICHANGEAUTOCONNECT[] = "Change auto connect";
|
||||
|
Reference in New Issue
Block a user