Skip to content

Commit 443cfba

Browse files
committed
refactor(wifi): Refactor WiFi sleep modes
1 parent e7df08a commit 443cfba

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

libraries/WiFi/src/WiFiGeneric.cpp

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,6 @@ static bool espWiFiStop() {
375375

376376
bool WiFiGenericClass::_persistent = true;
377377
bool WiFiGenericClass::_long_range = false;
378-
wifi_mode_t WiFiGenericClass::_forceSleepLastMode = WIFI_MODE_NULL;
379378
#if CONFIG_IDF_TARGET_ESP32S2
380379
wifi_ps_type_t WiFiGenericClass::_sleepEnabled = WIFI_PS_NONE;
381380
#else
@@ -666,7 +665,7 @@ bool WiFiGenericClass::enableAP(bool enable) {
666665
}
667666

668667
/**
669-
* control modem sleep when only in STA mode
668+
* Enable or disable WiFi modem power save mode
670669
* @param enable bool
671670
* @return ok
672671
*/
@@ -675,28 +674,33 @@ bool WiFiGenericClass::setSleep(bool enabled) {
675674
}
676675

677676
/**
678-
* control modem sleep when only in STA mode
677+
* Set WiFi modem power save mode
679678
* @param mode wifi_ps_type_t
680679
* @return ok
681680
*/
682681
bool WiFiGenericClass::setSleep(wifi_ps_type_t sleepType) {
683-
if (sleepType != _sleepEnabled) {
682+
if (sleepType > WIFI_PS_MAX_MODEM) {
683+
return false;
684+
}
685+
686+
if (!WiFi.STA.started()) {
684687
_sleepEnabled = sleepType;
685-
if (WiFi.STA.started()) {
686-
esp_err_t err = esp_wifi_set_ps(_sleepEnabled);
687-
if (err != ESP_OK) {
688-
log_e("esp_wifi_set_ps failed!: 0x%x: %s", err, esp_err_to_name(err));
689-
return false;
690-
}
691-
}
692688
return true;
693689
}
694-
return false;
690+
691+
esp_err_t err = esp_wifi_set_ps(_sleepEnabled);
692+
if (err != ESP_OK) {
693+
log_e("esp_wifi_set_ps failed!: 0x%x: %s", err, esp_err_to_name(err));
694+
return false;
695+
}
696+
697+
_sleepEnabled = sleepType;
698+
return true;
695699
}
696700

697701
/**
698-
* get modem sleep enabled
699-
* @return true if modem sleep is enabled
702+
* Get WiFi modem power save mode
703+
* @return wifi_ps_type_t
700704
*/
701705
wifi_ps_type_t WiFiGenericClass::getSleep() {
702706
return _sleepEnabled;

libraries/WiFi/src/WiFiGeneric.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ class WiFiGenericClass {
149149
protected:
150150
static bool _persistent;
151151
static bool _long_range;
152-
static wifi_mode_t _forceSleepLastMode;
153152
static wifi_ps_type_t _sleepEnabled;
154153
static bool _wifiUseStaticBuffers;
155154

0 commit comments

Comments
 (0)