diff --git a/src/actions/wifisoftapaction.h b/src/actions/wifisoftapaction.h new file mode 100644 index 0000000..7fa90c3 --- /dev/null +++ b/src/actions/wifisoftapaction.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include + +#include "actioninterface.h" +#include "globals.h" + +namespace { +class WifiSoftApAction : public virtual ActionInterface +{ +public: + void triggered() override + { + if (!WiFi.softAP(deviceName, "Passwort_123")) + { + Serial.println("Could not softAP WiFi"); + // TODO: better error handling + } + } +}; +} diff --git a/src/actions/wifisoftapdisconnectaction.h b/src/actions/wifisoftapdisconnectaction.h new file mode 100644 index 0000000..8fa3811 --- /dev/null +++ b/src/actions/wifisoftapdisconnectaction.h @@ -0,0 +1,21 @@ +#pragma once + +#include +#include + +#include "actioninterface.h" + +namespace { +class WifiSoftApDisconnectAction : public virtual ActionInterface +{ +public: + void triggered() override + { + if (!WiFi.softAPdisconnect()) + { + Serial.println("Could not softAPdisconnect WiFi"); + // TODO: better error handling + } + } +}; +} diff --git a/src/actions/wifisoftapdisconnectwifioffaction.h b/src/actions/wifisoftapdisconnectwifioffaction.h new file mode 100644 index 0000000..6e3889e --- /dev/null +++ b/src/actions/wifisoftapdisconnectwifioffaction.h @@ -0,0 +1,21 @@ +#pragma once + +#include +#include + +#include "actioninterface.h" + +namespace { +class WifiSoftApDisconnectWifioffAction : public virtual ActionInterface +{ +public: + void triggered() override + { + if (!WiFi.softAPdisconnect(true)) + { + Serial.println("Could not softAPdisconnect wifioff WiFi"); + // TODO: better error handling + } + } +}; +} diff --git a/src/displays/menus/accesspointwifisettingsmenu.h b/src/displays/menus/accesspointwifisettingsmenu.h index 362219f..26853ac 100644 --- a/src/displays/menus/accesspointwifisettingsmenu.h +++ b/src/displays/menus/accesspointwifisettingsmenu.h @@ -4,6 +4,9 @@ #include "staticmenudefinition.h" #include "menuitem.h" #include "actions/dummyaction.h" +#include "actions/wifisoftapaction.h" +#include "actions/wifisoftapdisconnectaction.h" +#include "actions/wifisoftapdisconnectwifioffaction.h" #include "actions/wifisoftapenableipv6action.h" #include "actions/switchscreenaction.h" #include "icons/back.h" @@ -20,16 +23,19 @@ class AccessPointWifiSettingsMenu : public StaticText, public BackActionInterface>, public StaticMenuDefinition< - makeComponent, DisabledColor, DummyAction>, - makeComponent, DisabledColor, DummyAction>, - makeComponent, DisabledColor, DummyAction>, - makeComponent, DisabledColor, DummyAction>, - makeComponent, DisabledColor, DummyAction>, - makeComponent, WifiSoftApEnableIpV6Action>, - makeComponent, DisabledColor, DummyAction>, - makeComponent, DisabledColor, DummyAction>, - makeComponent, DisabledColor, DummyAction>, - makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::back>> + makeComponent, WifiSoftApAction>, + makeComponent, WifiSoftApDisconnectAction>, + makeComponent, WifiSoftApDisconnectWifioffAction>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, WifiSoftApEnableIpV6Action>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, DisabledColor, DummyAction>, + makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::back>> > {}; } diff --git a/src/main.cpp b/src/main.cpp index 7a71a9e..138c12f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,6 +18,7 @@ #include "ota.h" #include "presets.h" #include "statistics.h" +#include "actions/wifisoftapaction.h" #include "actions/bluetoothbeginaction.h" #include "actions/bluetoothbeginmasteraction.h" #include "actions/bluetoothconnectbmsaction.h" @@ -90,8 +91,7 @@ void setup() if (!WiFi.mode(WIFI_AP_STA)) Serial.println("Could not set mode to WIFI_AP_STA"); - if (!WiFi.softAP(deviceName, "Passwort_123")) - Serial.println("Could not softAP"); + WifiSoftApAction{}.triggered(); if (!WiFi.begin("realraum", "r3alraum")) Serial.println("Could not begin WiFi"); diff --git a/src/texts.h b/src/texts.h index 5942ea1..37ce2cd 100644 --- a/src/texts.h +++ b/src/texts.h @@ -7,6 +7,9 @@ constexpr char TEXT_BACK[] = "Back"; //AccessPointWifiSettingsMenu constexpr char TEXT_ACCESSPOINTWIFISETTINGS[] = "Access Point WiFi settings"; +constexpr char TEXT_WIFISOFTAP[] = "softAP()"; +constexpr char TEXT_WIFISOFTAPDISCONNECT[] = "softAPdisconnect()"; +constexpr char TEXT_WIFISOFTAPDISCONNECTWIFIOFF[] = "softAPdisconnect() wifioff"; constexpr char TEXT_WIFISOFTAPENABLEIPV6[] = "softAPenableIpV6()"; //constexpr char TEXT_BACK[] = "Back";