diff --git a/platformio.ini b/platformio.ini index 01a2b7d..55b3f2a 100644 --- a/platformio.ini +++ b/platformio.ini @@ -82,6 +82,7 @@ build_flags = ${peters_platine.build_flags} ${default_limits.build_flags} -DDEVICE_PREFIX=bobbyquad + -DAP_PASSWORD=Passwort_123 -DFEATURE_WEBSERVER -DFEATURE_DPAD_3WIRESW -DPINS_DPAD_3WIRESW_OUT=0 @@ -141,6 +142,7 @@ build_flags = ${peters_platine.build_flags} ${default_limits.build_flags} -DDEVICE_PREFIX=bobbycar + -DAP_PASSWORD=Passwort_123 -DFEATURE_WEBSERVER -DDEFAULT_GASMIN=400 -DDEFAULT_GASMAX=2000 @@ -197,6 +199,7 @@ build_flags = ${peters_platine.build_flags} ${default_limits.build_flags} -DDEVICE_PREFIX=bobbyquad + -DAP_PASSWORD=Passwort_123 -DFEATURE_WEBSERVER -DFEATURE_DPAD -DPINS_DPAD_UP=32 @@ -224,9 +227,10 @@ upload_speed = 921600 build_flags = ${common_env_data.build_flags} - -DDEVICE_PREFIX=bobbyquad - -DFEATURE_WEBSERVER ${default_limits.build_flags} + -DDEVICE_PREFIX=bobbyquad + -DAP_PASSWORD=Passwort_123 + -DFEATURE_WEBSERVER -DRPI_DISPLAY_TYPE -DILI9486_DRIVER ; TODO: TFT_MISO (touch MISO?) @@ -261,6 +265,7 @@ build_flags = ${peters_platine_reversed.build_flags} ${default_limits.build_flags} -DDEVICE_PREFIX=bobbycar + -DAP_PASSWORD=Passwort_123 -DFEATURE_WEBSERVER -DDEFAULT_GASMIN=1000 -DDEFAULT_GASMAX=4000 diff --git a/src/actions/wifisoftapaction.h b/src/actions/wifisoftapaction.h new file mode 100644 index 0000000..0ab471d --- /dev/null +++ b/src/actions/wifisoftapaction.h @@ -0,0 +1,23 @@ +#pragma once + +#include +#include + +#include "actioninterface.h" +#include "globals.h" +#include "utils.h" + +namespace { +class WifiSoftApAction : public virtual ActionInterface +{ +public: + void triggered() override + { + if (!WiFi.softAP(deviceName, STRING(AP_PASSWORD))) + { + 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";