From eba04b7d4d3691ed973720dce79e5a4e8fa749dc Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 1 Nov 2021 22:45:45 +0100 Subject: [PATCH] Enable/Disable AP --- components/espwifistack | 2 +- main/accessors/settingsaccessors.h | 3 ++- main/displays/menus/accesspointwifisettingsmenu.h | 4 ++++ main/displays/menus/stationwifisettingsmenu.h | 2 +- main/presets.h | 3 ++- main/settings.h | 6 ++++-- main/texts.h | 3 ++- main/wifi_bobbycar.cpp | 5 ++++- 8 files changed, 20 insertions(+), 8 deletions(-) diff --git a/components/espwifistack b/components/espwifistack index 6eb911c..f56f2f4 160000 --- a/components/espwifistack +++ b/components/espwifistack @@ -1 +1 @@ -Subproject commit 6eb911c8eac2d50f5aa7e3cc35e4f691e59832a9 +Subproject commit f56f2f4fe59a46e2d3dd8d23f622b402d4d4f6e9 diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index 44a5504..7280cbe 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -34,7 +34,8 @@ struct NMotMaxRpmAccessor : public RefAccessorSaveSettings { int16_t &g struct FieldWeakMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.limits.fieldWeakMax; } }; struct PhaseAdvMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.limits.phaseAdvMax; } }; -struct WifiEnabledAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.wifiSettings.wifiEnabled; } }; +struct WifiStaEnabledAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.wifiSettings.wifiStaEnabled; } }; +struct WifiApEnabledAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.wifiSettings.wifiApEnabled; } }; #ifdef FEATURE_BLUETOOTH struct AutoBluetoothModeAccessor : public RefAccessorSaveSettings { BluetoothMode &getRef() const override { return settings.bluetoothSettings.autoBluetoothMode; } }; diff --git a/main/displays/menus/accesspointwifisettingsmenu.h b/main/displays/menus/accesspointwifisettingsmenu.h index 36657fd..71b4a2a 100644 --- a/main/displays/menus/accesspointwifisettingsmenu.h +++ b/main/displays/menus/accesspointwifisettingsmenu.h @@ -5,8 +5,11 @@ #include "menuitem.h" #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" +#include "actions/toggleboolaction.h" +#include "checkboxicon.h" #include "icons/back.h" #include "wifitexthelpers.h" +#include "accessors/settingsaccessors.h" #include "texts.h" // forward declares @@ -25,6 +28,7 @@ class AccessPointWifiSettingsMenu : public: AccessPointWifiSettingsMenu() { + constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiApEnabledAccessor>>(); constructMenuItem, DisabledColor, DummyAction>>(); constructMenuItem, DisabledColor, DummyAction>>(); constructMenuItem, DisabledColor, DummyAction>>(); diff --git a/main/displays/menus/stationwifisettingsmenu.h b/main/displays/menus/stationwifisettingsmenu.h index acd5266..8046255 100644 --- a/main/displays/menus/stationwifisettingsmenu.h +++ b/main/displays/menus/stationwifisettingsmenu.h @@ -33,7 +33,7 @@ class StationWifiSettingsMenu : public: StationWifiSettingsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiEnabledAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiStaEnabledAccessor>>(); constructMenuItem, WifiScanAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::scan>>>(); constructMenuItem, DisabledColor, DummyAction>>(); diff --git a/main/presets.h b/main/presets.h index 1b4a037..aeaa019 100644 --- a/main/presets.h +++ b/main/presets.h @@ -96,7 +96,8 @@ constexpr Settings::ControllerHardware mosfetsOffControllerHardware { }; constexpr Settings::WifiSettings defaultWifiSettings { - .wifiEnabled = true + .wifiStaEnabled = true, + .wifiApEnabled = true }; #ifdef FEATURE_BLUETOOTH diff --git a/main/settings.h b/main/settings.h index 0f714d4..2a3d1b0 100644 --- a/main/settings.h +++ b/main/settings.h @@ -46,7 +46,8 @@ struct Settings } limits; struct WifiSettings { - bool wifiEnabled; + bool wifiStaEnabled; + bool wifiApEnabled; } wifiSettings; #ifdef FEATURE_BLUETOOTH @@ -216,7 +217,8 @@ void Settings::executeForEveryCommonSetting(T &&callable) callable("revBeepDur0", buzzer.reverseBeepDuration0); callable("revBeepDur1", buzzer.reverseBeepDuration1); - callable("wifiEnabled", wifiSettings.wifiEnabled); + callable("wifiStaEnabled", wifiSettings.wifiStaEnabled); + callable("wifiApEnabled", wifiSettings.wifiApEnabled); #ifdef FEATURE_BLUETOOTH callable("autoBluetoothMo", bluetoothSettings.autoBluetoothMode); diff --git a/main/texts.h b/main/texts.h index fd7d226..7caa47a 100644 --- a/main/texts.h +++ b/main/texts.h @@ -7,6 +7,7 @@ constexpr char TEXT_BACK[] = "Back"; //AccessPointWifiSettingsMenu constexpr char TEXT_ACCESSPOINTWIFISETTINGS[] = "Access Point WiFi settings"; +constexpr char TEXT_WIFIAPENABLED[] = "AP enabled"; //constexpr char TEXT_BACK[] = "Back"; #ifdef TEXTS_PLUGIN @@ -151,7 +152,7 @@ constexpr char TEXT_CANRECEIVETIMEOUT[] = "CanReceiveTimeout"; //StationWifiSettingsMenu constexpr char TEXT_STATIONWIFISETTINGS[] = "Station WiFi settings"; -constexpr char TEXT_WIFIENABLED[] = "WiFi enabled"; +constexpr char TEXT_WIFISTAENABLED[] = "STA enabled"; constexpr char TEXT_WIFITRIGGERSCAN[] = "Trigger Scan"; constexpr char TEXT_WIFISCANRESULTS[] = "WiFi scan results"; //constexpr char TEXT_BACK[] = "Back"; diff --git a/main/wifi_bobbycar.cpp b/main/wifi_bobbycar.cpp index 54d67bb..0086c24 100644 --- a/main/wifi_bobbycar.cpp +++ b/main/wifi_bobbycar.cpp @@ -57,7 +57,7 @@ wifi_stack::config wifi_create_config() std::optional wifi_create_sta_config() { - if (!settings.wifiSettings.wifiEnabled) + if (!settings.wifiSettings.wifiStaEnabled) return std::nullopt; return wifi_stack::sta_config { @@ -80,6 +80,9 @@ std::optional wifi_create_sta_config() std::optional wifi_create_ap_config() { + if (!settings.wifiSettings.wifiApEnabled) + return std::nullopt; + return wifi_stack::ap_config { .hostname = deviceName, .ssid = deviceName,