Implemented settings in WifiSettingsMenu

This commit is contained in:
2020-06-07 19:39:55 +02:00
parent 86da64d500
commit 8249409339
4 changed files with 25 additions and 2 deletions

View File

@ -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>>,

View File

@ -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");

View File

@ -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; }

View File

@ -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";