diff --git a/src/displays/menus/accesspointwifisettingsmenu.h b/src/displays/menus/accesspointwifisettingsmenu.h index 183f322..362219f 100644 --- a/src/displays/menus/accesspointwifisettingsmenu.h +++ b/src/displays/menus/accesspointwifisettingsmenu.h @@ -7,6 +7,7 @@ #include "actions/wifisoftapenableipv6action.h" #include "actions/switchscreenaction.h" #include "icons/back.h" +#include "wifitexthelpers.h" #include "texts.h" namespace { @@ -14,39 +15,6 @@ class WifiSettingsMenu; } namespace { -class WifiSoftApGetStationNumText : public virtual TextInterface { -public: - String text() const override { return String{"softAPgetStationNum: "} + WiFi.softAPgetStationNum(); } -}; -class WifiSoftApIpText : public virtual TextInterface { -public: - String text() const override { return String{"softAPIP: "} + WiFi.softAPIP().toString(); } -}; -class WifiSoftApBroadcastIpText : public virtual TextInterface { -public: - String text() const override { return String{"softAPBroadcastIP: "} + WiFi.softAPBroadcastIP().toString(); } -}; -class WifiSoftApNetworkIdText : public virtual TextInterface { -public: - String text() const override { return String{"softAPNetworkID: "} + WiFi.softAPNetworkID().toString(); } -}; -class WifiSoftApSubnetCidrText : public virtual TextInterface { -public: - String text() const override { return String{"softAPSubnetCIDR: "} + WiFi.softAPSubnetCIDR(); } -}; -class WifiSoftApIpV6Text : public virtual TextInterface { -public: - String text() const override { return String{"softAPIPv6: "} + WiFi.softAPIPv6().toString(); } -}; -class WifiSoftApHostnameText : public virtual TextInterface { -public: - String text() const override { return String{"softAPgetHostname: "} + WiFi.softAPgetHostname(); } -}; -class WifiSoftApMacAddressText : public virtual TextInterface { -public: - String text() const override { return String{"softAPmacAddress: "} + WiFi.softAPmacAddress(); } -}; - class AccessPointWifiSettingsMenu : public MenuDisplay, public StaticText, diff --git a/src/displays/menus/genericwifisettingsmenu.h b/src/displays/menus/genericwifisettingsmenu.h index adc7f1f..9fe390f 100644 --- a/src/displays/menus/genericwifisettingsmenu.h +++ b/src/displays/menus/genericwifisettingsmenu.h @@ -1,7 +1,6 @@ #pragma once #include -#include #include "menudisplay.h" #include "staticmenudefinition.h" @@ -12,6 +11,8 @@ #include "actions/switchscreenaction.h" #include "checkboxicon.h" #include "icons/back.h" +#include "wifitexthelpers.h" +#include "wifiaccessors.h" #include "texts.h" namespace { @@ -20,25 +21,6 @@ class WifiSettingsMenu; } namespace { -struct WifiStatusBitsText : public virtual TextInterface { -public: - String text() const override { return String{"statusBits: "} + WiFi.getStatusBits(); } -}; -struct WifiChannelText : public virtual TextInterface { -public: - String text() const override { return String{"channel: "} + WiFi.channel(); } -}; - -struct WifiModeAccessor : public virtual AccessorInterface -{ - wifi_mode_t getValue() const override { return WiFi.getMode(); } - void setValue(wifi_mode_t value) override - { - if (!WiFi.mode(value)) - Serial.println("Could not change WiFi mode!"); - // TODO: better error handling - } -}; using WifiModeChangeScreen = makeComponent< ChangeValueDisplay, StaticText, @@ -47,27 +29,6 @@ using WifiModeChangeScreen = makeComponent< SwitchScreenAction >; -struct WifiSleepAccessor : public virtual AccessorInterface -{ - bool getValue() const override { return WiFi.getSleep(); } - void setValue(bool value) override - { - if (!WiFi.setSleep(value)) - Serial.println("Could not set WiFi sleep!"); - // TODO: better error handling - } -}; - -struct WifiTxPowerAccessor : public virtual AccessorInterface -{ - wifi_power_t getValue() const override { return WiFi.getTxPower(); } - void setValue(wifi_power_t value) override - { - if (!WiFi.setTxPower(value)) - Serial.println("Could not set WiFi tx power!"); - // TODO: better error handling - } -}; using WifiTxPowerChangeScreen = makeComponent< ChangeValueDisplay, StaticText, diff --git a/src/displays/menus/stationwifisettingsmenu.h b/src/displays/menus/stationwifisettingsmenu.h index a570d60..920d2ee 100644 --- a/src/displays/menus/stationwifisettingsmenu.h +++ b/src/displays/menus/stationwifisettingsmenu.h @@ -14,6 +14,8 @@ #include "actions/wifienableipv6action.h" #include "checkboxicon.h" #include "icons/back.h" +#include "wifitexthelpers.h" +#include "wifiaccessors.h" #include "texts.h" namespace { @@ -21,94 +23,6 @@ class WifiSettingsMenu; } namespace { -struct WifiIsConnectedText : public virtual TextInterface { -public: - String text() const override { return String{"isConnected: "} + (WiFi.isConnected() ? "true" : "false"); } -}; - -struct WifiAutoConnectAccessor : public virtual AccessorInterface -{ - bool getValue() const override { return WiFi.getAutoConnect(); } - void setValue(bool value) override - { - if (!WiFi.setAutoConnect(value)) - Serial.println("Could not set WiFi autoConnect!"); - // TODO: better error handling - } -}; - -struct WifiAutoReconnectAccessor : public virtual AccessorInterface -{ - bool getValue() const override { return WiFi.getAutoReconnect(); } - void setValue(bool value) override - { - if (!WiFi.setAutoReconnect(value)) - Serial.println("Could not set WiFi autoReconnect!"); - // TODO: better error handling - } -}; - -struct WifiLocalIpText : public virtual TextInterface { -public: - String text() const override { return String{"localIP: "} + WiFi.localIP().toString(); } -}; -struct WifiMacAddressText : public virtual TextInterface { -public: - String text() const override { return String{"macAddress: "} + WiFi.macAddress(); } -}; -struct WifiSubnetMaskText : public virtual TextInterface { -public: - String text() const override { return String{"subnetMask: "} + WiFi.subnetMask().toString(); } -}; -struct WifiGatewayIpText : public virtual TextInterface { -public: - String text() const override { return String{"gatewayIP: "} + WiFi.gatewayIP().toString(); } -}; -struct WifiDnsIpText : public virtual TextInterface { -public: - String text() const override { return String{"dnsIP: "} + WiFi.dnsIP().toString(); } -}; -struct WifiBroadcastIpText : public virtual TextInterface { -public: - String text() const override { return String{"broadcastIP: "} + WiFi.broadcastIP().toString(); } -}; -struct WifiNetworkIdText : public virtual TextInterface { -public: - String text() const override { return String{"networkID: "} + WiFi.networkID().toString(); } -}; -struct WifiSubnetCIDRText : public virtual TextInterface { -public: - String text() const override { return String{"subnetCIDR: "} + WiFi.subnetCIDR(); } -}; -struct WifiLocalIpV6Text : public virtual TextInterface { -public: - String text() const override { return String{"localIPv6: "} + WiFi.localIPv6().toString(); } -}; -struct WifiHostnameText : public virtual TextInterface { -public: - String text() const override { return String{"hostname: "} + WiFi.getHostname(); } -}; -struct WifiStatusText : public virtual TextInterface { -public: - String text() const override { return String{"status: "} + toString(WiFi.status()); } -}; -struct WifiSsidText : public virtual TextInterface { -public: - String text() const override { return String{"SSID: "} + WiFi.SSID(); } -}; -struct WifiPskText : public virtual TextInterface { -public: - String text() const override { return String{"psk: "} + WiFi.psk(); } -}; -struct WifiBssidText : public virtual TextInterface { -public: - String text() const override { return String{"BSSID: "} + WiFi.BSSIDstr(); } -}; -struct WifiRssiText : public virtual TextInterface { -public: - String text() const override { return String{"RSSI: "} + WiFi.RSSI(); } -}; - class StationWifiSettingsMenu : public MenuDisplay, public StaticText, diff --git a/src/wifiaccessors.h b/src/wifiaccessors.h new file mode 100644 index 0000000..9bca794 --- /dev/null +++ b/src/wifiaccessors.h @@ -0,0 +1,64 @@ +#pragma once + +#include + +#include "accessorinterface.h" + +namespace { +struct WifiModeAccessor : public virtual AccessorInterface +{ + wifi_mode_t getValue() const override { return WiFi.getMode(); } + void setValue(wifi_mode_t value) override + { + if (!WiFi.mode(value)) + Serial.println("Could not change WiFi mode!"); + // TODO: better error handling + } +}; + +struct WifiSleepAccessor : public virtual AccessorInterface +{ + bool getValue() const override { return WiFi.getSleep(); } + void setValue(bool value) override + { + if (!WiFi.setSleep(value)) + Serial.println("Could not set WiFi sleep!"); + // TODO: better error handling + } +}; + +struct WifiTxPowerAccessor : public virtual AccessorInterface +{ + wifi_power_t getValue() const override { return WiFi.getTxPower(); } + void setValue(wifi_power_t value) override + { + if (!WiFi.setTxPower(value)) + Serial.println("Could not set WiFi tx power!"); + // TODO: better error handling + } +}; + + + +struct WifiAutoConnectAccessor : public virtual AccessorInterface +{ + bool getValue() const override { return WiFi.getAutoConnect(); } + void setValue(bool value) override + { + if (!WiFi.setAutoConnect(value)) + Serial.println("Could not set WiFi autoConnect!"); + // TODO: better error handling + } +}; + +struct WifiAutoReconnectAccessor : public virtual AccessorInterface +{ + bool getValue() const override { return WiFi.getAutoReconnect(); } + void setValue(bool value) override + { + if (!WiFi.setAutoReconnect(value)) + Serial.println("Could not set WiFi autoReconnect!"); + // TODO: better error handling + } +}; +} diff --git a/src/wifitexthelpers.h b/src/wifitexthelpers.h new file mode 100644 index 0000000..8d69367 --- /dev/null +++ b/src/wifitexthelpers.h @@ -0,0 +1,117 @@ +#pragma once + +#include + +#include "textinterface.h" +#include "utils.h" + +namespace { +struct WifiStatusBitsText : public virtual TextInterface { +public: + String text() const override { return String{"statusBits: "} + WiFi.getStatusBits(); } +}; +struct WifiChannelText : public virtual TextInterface { +public: + String text() const override { return String{"channel: "} + WiFi.channel(); } +}; + + +struct WifiIsConnectedText : public virtual TextInterface { +public: + String text() const override { return String{"isConnected: "} + toString(WiFi.isConnected()); } +}; +struct WifiLocalIpText : public virtual TextInterface { +public: + String text() const override { return String{"localIP: "} + WiFi.localIP().toString(); } +}; +struct WifiMacAddressText : public virtual TextInterface { +public: + String text() const override { return String{"macAddress: "} + WiFi.macAddress(); } +}; +struct WifiSubnetMaskText : public virtual TextInterface { +public: + String text() const override { return String{"subnetMask: "} + WiFi.subnetMask().toString(); } +}; +struct WifiGatewayIpText : public virtual TextInterface { +public: + String text() const override { return String{"gatewayIP: "} + WiFi.gatewayIP().toString(); } +}; +struct WifiDnsIpText : public virtual TextInterface { +public: + String text() const override { return String{"dnsIP: "} + WiFi.dnsIP().toString(); } +}; +struct WifiBroadcastIpText : public virtual TextInterface { +public: + String text() const override { return String{"broadcastIP: "} + WiFi.broadcastIP().toString(); } +}; +struct WifiNetworkIdText : public virtual TextInterface { +public: + String text() const override { return String{"networkID: "} + WiFi.networkID().toString(); } +}; +struct WifiSubnetCIDRText : public virtual TextInterface { +public: + String text() const override { return String{"subnetCIDR: "} + WiFi.subnetCIDR(); } +}; +struct WifiLocalIpV6Text : public virtual TextInterface { +public: + String text() const override { return String{"localIPv6: "} + WiFi.localIPv6().toString(); } +}; +struct WifiHostnameText : public virtual TextInterface { +public: + String text() const override { return String{"hostname: "} + WiFi.getHostname(); } +}; +struct WifiStatusText : public virtual TextInterface { +public: + String text() const override { return String{"status: "} + toString(WiFi.status()); } +}; +struct WifiSsidText : public virtual TextInterface { +public: + String text() const override { return String{"SSID: "} + WiFi.SSID(); } +}; +struct WifiPskText : public virtual TextInterface { +public: + String text() const override { return String{"psk: "} + WiFi.psk(); } +}; +struct WifiBssidText : public virtual TextInterface { +public: + String text() const override { return String{"BSSID: "} + WiFi.BSSIDstr(); } +}; +struct WifiRssiText : public virtual TextInterface { +public: + String text() const override { return String{"RSSI: "} + WiFi.RSSI(); } +}; + + +class WifiSoftApGetStationNumText : public virtual TextInterface { +public: + String text() const override { return String{"softAPgetStationNum: "} + WiFi.softAPgetStationNum(); } +}; +class WifiSoftApIpText : public virtual TextInterface { +public: + String text() const override { return String{"softAPIP: "} + WiFi.softAPIP().toString(); } +}; +class WifiSoftApBroadcastIpText : public virtual TextInterface { +public: + String text() const override { return String{"softAPBroadcastIP: "} + WiFi.softAPBroadcastIP().toString(); } +}; +class WifiSoftApNetworkIdText : public virtual TextInterface { +public: + String text() const override { return String{"softAPNetworkID: "} + WiFi.softAPNetworkID().toString(); } +}; +class WifiSoftApSubnetCidrText : public virtual TextInterface { +public: + String text() const override { return String{"softAPSubnetCIDR: "} + WiFi.softAPSubnetCIDR(); } +}; +class WifiSoftApIpV6Text : public virtual TextInterface { +public: + String text() const override { return String{"softAPIPv6: "} + WiFi.softAPIPv6().toString(); } +}; +class WifiSoftApHostnameText : public virtual TextInterface { +public: + String text() const override { return String{"softAPgetHostname: "} + WiFi.softAPgetHostname(); } +}; +class WifiSoftApMacAddressText : public virtual TextInterface { +public: + String text() const override { return String{"softAPmacAddress: "} + WiFi.softAPmacAddress(); } +}; +}