diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 05458a26c7d..67df263666e 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -639,6 +639,20 @@ bool WiFiGenericClass::setSleep(bool enable) return esp_wifi_set_ps(enable?WIFI_PS_MIN_MODEM:WIFI_PS_NONE) == ESP_OK; } +/** + * control modem sleep when only in STA mode + * @param mode wifi_ps_type_t + * @return ok + */ +bool WiFiGenericClass::setSleep(wifi_ps_type_t mode) +{ + if((getMode() & WIFI_MODE_STA) == 0){ + log_w("STA has not been started"); + return false; + } + return esp_wifi_set_ps(mode) == ESP_OK; +} + /** * get modem sleep enabled * @return true if modem sleep is enabled diff --git a/libraries/WiFi/src/WiFiGeneric.h b/libraries/WiFi/src/WiFiGeneric.h index 364a685d7be..2cd2db4a890 100644 --- a/libraries/WiFi/src/WiFiGeneric.h +++ b/libraries/WiFi/src/WiFiGeneric.h @@ -108,6 +108,7 @@ class WiFiGenericClass bool enableAP(bool enable); bool setSleep(bool enable); + bool setSleep(wifi_ps_type_t mode); bool getSleep(); bool setTxPower(wifi_power_t power);