mirror of
https://github.com/0xFEEDC0DE64/arduino-esp32.git
synced 2025-06-25 18:01:33 +02:00
Disable modem sleep by default on S2 for now.
This commit is contained in:
@ -619,8 +619,13 @@ static std::vector<WiFiEventCbList_t> cbEventList;
|
|||||||
bool WiFiGenericClass::_persistent = true;
|
bool WiFiGenericClass::_persistent = true;
|
||||||
bool WiFiGenericClass::_long_range = false;
|
bool WiFiGenericClass::_long_range = false;
|
||||||
wifi_mode_t WiFiGenericClass::_forceSleepLastMode = WIFI_MODE_NULL;
|
wifi_mode_t WiFiGenericClass::_forceSleepLastMode = WIFI_MODE_NULL;
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32S2
|
||||||
|
wifi_ps_type_t WiFiGenericClass::_sleepEnabled = WIFI_PS_NONE;
|
||||||
|
#else
|
||||||
|
wifi_ps_type_t WiFiGenericClass::_sleepEnabled = WIFI_PS_MIN_MODEM;
|
||||||
|
#endif
|
||||||
|
|
||||||
WiFiGenericClass::WiFiGenericClass()
|
WiFiGenericClass::WiFiGenericClass()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -789,6 +794,9 @@ esp_err_t WiFiGenericClass::_eventCallback(arduino_event_t *event)
|
|||||||
} else if(event->event_id == ARDUINO_EVENT_WIFI_STA_START) {
|
} else if(event->event_id == ARDUINO_EVENT_WIFI_STA_START) {
|
||||||
WiFiSTAClass::_setStatus(WL_DISCONNECTED);
|
WiFiSTAClass::_setStatus(WL_DISCONNECTED);
|
||||||
setStatusBits(STA_STARTED_BIT);
|
setStatusBits(STA_STARTED_BIT);
|
||||||
|
if(esp_wifi_set_ps(_sleepEnabled) != ESP_OK){
|
||||||
|
log_e("esp_wifi_set_ps failed");
|
||||||
|
}
|
||||||
} else if(event->event_id == ARDUINO_EVENT_WIFI_STA_STOP) {
|
} else if(event->event_id == ARDUINO_EVENT_WIFI_STA_STOP) {
|
||||||
WiFiSTAClass::_setStatus(WL_NO_SHIELD);
|
WiFiSTAClass::_setStatus(WL_NO_SHIELD);
|
||||||
clearStatusBits(STA_STARTED_BIT | STA_CONNECTED_BIT | STA_HAS_IP_BIT | STA_HAS_IP6_BIT);
|
clearStatusBits(STA_STARTED_BIT | STA_CONNECTED_BIT | STA_HAS_IP_BIT | STA_HAS_IP6_BIT);
|
||||||
@ -1053,30 +1061,31 @@ bool WiFiGenericClass::enableAP(bool enable)
|
|||||||
* @param enable bool
|
* @param enable bool
|
||||||
* @return ok
|
* @return ok
|
||||||
*/
|
*/
|
||||||
bool WiFiGenericClass::setSleep(bool enable)
|
bool WiFiGenericClass::setSleep(bool enabled){
|
||||||
|
return setSleep(enabled?WIFI_PS_MIN_MODEM:WIFI_PS_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WiFiGenericClass::setSleep(wifi_ps_type_t sleepType)
|
||||||
{
|
{
|
||||||
if((getMode() & WIFI_MODE_STA) == 0){
|
if(sleepType != _sleepEnabled){
|
||||||
log_w("STA has not been started");
|
_sleepEnabled = sleepType;
|
||||||
return false;
|
if((getMode() & WIFI_MODE_STA) != 0){
|
||||||
|
if(esp_wifi_set_ps(_sleepEnabled) != ESP_OK){
|
||||||
|
log_e("esp_wifi_set_ps failed!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return esp_wifi_set_ps(enable?WIFI_PS_MIN_MODEM:WIFI_PS_NONE) == ESP_OK;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get modem sleep enabled
|
* get modem sleep enabled
|
||||||
* @return true if modem sleep is enabled
|
* @return true if modem sleep is enabled
|
||||||
*/
|
*/
|
||||||
bool WiFiGenericClass::getSleep()
|
wifi_ps_type_t WiFiGenericClass::getSleep()
|
||||||
{
|
{
|
||||||
wifi_ps_type_t ps;
|
return _sleepEnabled;
|
||||||
if((getMode() & WIFI_MODE_STA) == 0){
|
|
||||||
log_w("STA has not been started");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(esp_wifi_get_ps(&ps) == ESP_OK){
|
|
||||||
return ps == WIFI_PS_MIN_MODEM;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,8 +163,9 @@ class WiFiGenericClass
|
|||||||
bool enableSTA(bool enable);
|
bool enableSTA(bool enable);
|
||||||
bool enableAP(bool enable);
|
bool enableAP(bool enable);
|
||||||
|
|
||||||
bool setSleep(bool enable);
|
bool setSleep(bool enabled);
|
||||||
bool getSleep();
|
bool setSleep(wifi_ps_type_t sleepType);
|
||||||
|
wifi_ps_type_t getSleep();
|
||||||
|
|
||||||
bool setTxPower(wifi_power_t power);
|
bool setTxPower(wifi_power_t power);
|
||||||
wifi_power_t getTxPower();
|
wifi_power_t getTxPower();
|
||||||
@ -178,10 +179,11 @@ class WiFiGenericClass
|
|||||||
static bool _persistent;
|
static bool _persistent;
|
||||||
static bool _long_range;
|
static bool _long_range;
|
||||||
static wifi_mode_t _forceSleepLastMode;
|
static wifi_mode_t _forceSleepLastMode;
|
||||||
|
static wifi_ps_type_t _sleepEnabled;
|
||||||
|
|
||||||
static int setStatusBits(int bits);
|
static int setStatusBits(int bits);
|
||||||
static int clearStatusBits(int bits);
|
static int clearStatusBits(int bits);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static int hostByName(const char *aHostname, IPAddress &aResult);
|
static int hostByName(const char *aHostname, IPAddress &aResult);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user