diff --git a/libraries/WiFi/src/WiFiAP.cpp b/libraries/WiFi/src/WiFiAP.cpp index 12f681c9e75..a88547f9a89 100644 --- a/libraries/WiFi/src/WiFiAP.cpp +++ b/libraries/WiFi/src/WiFiAP.cpp @@ -235,6 +235,25 @@ bool WiFiAPClass::softAPdisconnect(bool wifioff) return ret; } +/** + * Sets the working bandwidth of the AP mode + * @param m wifi_bandwidth_t + */ +bool WiFiAPClass::softAPbandwidth(wifi_bandwidth_t bandwidth) { + if(!WiFi.enableAP(true)) { + log_e("AP enable failed!"); + return false; + } + + esp_err_t err; + err = esp_wifi_set_bandwidth((wifi_interface_t)ESP_IF_WIFI_AP, bandwidth); + if(err){ + log_e("Could not set AP bandwidth!"); + return false; + } + + return true; +} /** * Get the count of the Station / client that are connected to the softAP interface diff --git a/libraries/WiFi/src/WiFiAP.h b/libraries/WiFi/src/WiFiAP.h index 13dad2f69cc..626a5b5b350 100644 --- a/libraries/WiFi/src/WiFiAP.h +++ b/libraries/WiFi/src/WiFiAP.h @@ -45,6 +45,8 @@ class WiFiAPClass bool softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dhcp_lease_start = (uint32_t) 0); bool softAPdisconnect(bool wifioff = false); + bool softAPbandwidth(wifi_bandwidth_t bandwidth); + uint8_t softAPgetStationNum(); IPAddress softAPIP(); diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 6b1d7358bc6..56843429a34 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -1225,7 +1225,6 @@ int32_t WiFiGenericClass::channel(void) return primaryChan; } - /** * store WiFi config in SDK flash area * @param persistent diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index 558feb5255a..505940015f9 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -431,6 +431,26 @@ bool WiFiSTAClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subne return err == ESP_OK; } +/** + * Sets the working bandwidth of the STA mode + * @param m wifi_bandwidth_t + */ +bool WiFiSTAClass::bandwidth(wifi_bandwidth_t bandwidth) { + if(!WiFi.enableSTA(true)) { + log_e("STA enable failed!"); + return false; + } + + esp_err_t err; + err = esp_wifi_set_bandwidth((wifi_interface_t)ESP_IF_WIFI_STA, bandwidth); + if(err){ + log_e("Could not set STA bandwidth!"); + return false; + } + + return true; +} + /** * Change DNS server for static IP configuration * @param dns1 Static DNS server 1 diff --git a/libraries/WiFi/src/WiFiSTA.h b/libraries/WiFi/src/WiFiSTA.h index 3f224211a1e..07f01922cef 100644 --- a/libraries/WiFi/src/WiFiSTA.h +++ b/libraries/WiFi/src/WiFiSTA.h @@ -58,6 +58,8 @@ class WiFiSTAClass bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000); bool setDNS(IPAddress dns1, IPAddress dns2 = (uint32_t)0x00000000); // sets DNS IP for all network interfaces + bool bandwidth(wifi_bandwidth_t bandwidth); + bool reconnect(); bool disconnect(bool wifioff = false, bool eraseap = false); bool eraseAP(void);