Skip to content

Commit 633fc66

Browse files
committed
Use a single variable to track isAwake() state
1 parent 6d9d865 commit 633fc66

File tree

2 files changed

+6
-14
lines changed

2 files changed

+6
-14
lines changed

src/WiFi.cpp

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ WiFiClass::WiFiClass()
173173
_mode = WL_RESET_MODE;
174174
_status = WL_NO_SHIELD;
175175
_init = 0;
176+
_wakeUpMillis = 0;
176177
}
177178

178179
void WiFiClass::setPins(int8_t cs, int8_t irq, int8_t rst, int8_t en)
@@ -783,23 +784,14 @@ void WiFiClass::noLowPowerMode(void)
783784

784785
void WiFiClass::sleepFor(uint32_t thisTime)
785786
{
786-
m2m_wifi_set_sleep_mode(M2M_PS_MANUAL, false);
787-
_sleepTime = thisTime + 150; //150 ms must elapse for complete awakening
788-
_startSleepTime = millis();
789-
m2m_wifi_request_sleep(thisTime);
787+
m2m_wifi_set_sleep_mode(M2M_PS_MANUAL, false);
788+
_wakeUpMillis = millis() + thisTime + 150; //150 ms must elapse for complete awakening
789+
m2m_wifi_request_sleep(thisTime);
790790
}
791791

792792
bool WiFiClass::isAwake(void)
793793
{
794-
if (_sleepTime == 0)
795-
return true;
796-
797-
if (millis() - _startSleepTime > _sleepTime) {
798-
_sleepTime = 0;
799-
return true;
800-
}
801-
else
802-
return false;
794+
return (millis() > _wakeUpMillis);
803795
}
804796

805797
uint8_t WiFiClass::ping(const char* hostname, uint8_t ttl)

src/WiFi101.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class WiFiClass
164164
int _init;
165165
char _version[9];
166166

167-
unsigned long _startSleepTime, _sleepTime;
167+
uint32_t _wakeUpMillis;
168168

169169
uint8_t startConnect(const char *ssid, uint8_t u8SecType, const void *pvAuthInfo);
170170
uint8_t startAP(const char *ssid, uint8_t u8SecType, const void *pvAuthInfo, uint8_t channel);

0 commit comments

Comments
 (0)