From b5291c41bd52567c5179c6228ce5219462ddd0bf Mon Sep 17 00:00:00 2001 From: Stephan Ruloff Date: Tue, 27 Jun 2023 18:49:46 +0200 Subject: [PATCH] Soft-AP: get subnet mask In WiFiSTA you can ask for the subnet mask, but not in WiFiAP. Only the CIDR is reported. Therefor the missing method is added to have the same features in softAP as well. --- docs/source/api/wifi.rst | 9 +++++++++ libraries/WiFi/src/WiFiAP.cpp | 23 ++++++++++++++++------- libraries/WiFi/src/WiFiAP.h | 1 + 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/docs/source/api/wifi.rst b/docs/source/api/wifi.rst index 0dbfba2e683..eb32b4af53e 100644 --- a/docs/source/api/wifi.rst +++ b/docs/source/api/wifi.rst @@ -222,6 +222,15 @@ Get the softAP subnet CIDR. uint8_t softAPSubnetCIDR(); +softAPSubnetMask +**************** + +Get the softAP subnet mask. + +.. code-block:: arduino + + IPAddress softAPSubnetMask(); + softAPenableIpV6 **************** diff --git a/libraries/WiFi/src/WiFiAP.cpp b/libraries/WiFi/src/WiFiAP.cpp index 0eb0935345e..12f681c9e75 100644 --- a/libraries/WiFi/src/WiFiAP.cpp +++ b/libraries/WiFi/src/WiFiAP.cpp @@ -304,20 +304,29 @@ IPAddress WiFiAPClass::softAPNetworkID() } /** - * Get the softAP subnet CIDR. - * @return uint8_t softAP subnetCIDR + * Get the softAP subnet mask. + * @return IPAddress subnetMask */ -uint8_t WiFiAPClass::softAPSubnetCIDR() +IPAddress WiFiAPClass::softAPSubnetMask() { - esp_netif_ip_info_t ip; + esp_netif_ip_info_t ip; if(WiFiGenericClass::getMode() == WIFI_MODE_NULL){ return IPAddress(); } if(esp_netif_get_ip_info(get_esp_interface_netif(ESP_IF_WIFI_AP), &ip) != ESP_OK){ - log_e("Netif Get IP Failed!"); - return IPAddress(); + log_e("Netif Get IP Failed!"); + return IPAddress(); } - return WiFiGenericClass::calculateSubnetCIDR(IPAddress(ip.netmask.addr)); + return IPAddress(ip.netmask.addr); +} + +/** + * Get the softAP subnet CIDR. + * @return uint8_t softAP subnetCIDR + */ +uint8_t WiFiAPClass::softAPSubnetCIDR() +{ + return WiFiGenericClass::calculateSubnetCIDR(softAPSubnetMask()); } /** diff --git a/libraries/WiFi/src/WiFiAP.h b/libraries/WiFi/src/WiFiAP.h index 7ac03034b4c..13dad2f69cc 100644 --- a/libraries/WiFi/src/WiFiAP.h +++ b/libraries/WiFi/src/WiFiAP.h @@ -51,6 +51,7 @@ class WiFiAPClass IPAddress softAPBroadcastIP(); IPAddress softAPNetworkID(); + IPAddress softAPSubnetMask(); uint8_t softAPSubnetCIDR(); bool softAPenableIpV6();