1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-16 11:21:18 +03:00

Add timeout to STA::waitForConnectResult (#5371)

This commit is contained in:
dav1901
2019-07-04 15:08:02 +03:00
committed by david gauchard
parent e81bb6f57c
commit 16312949c9
4 changed files with 17 additions and 7 deletions

View File

@ -25,6 +25,7 @@
#include "ESP8266WiFi.h"
#include "ESP8266WiFiGeneric.h"
#include "ESP8266WiFiSTA.h"
#include "PolledTimeout.h"
#include "c_types.h"
#include "ets_sys.h"
@ -441,17 +442,22 @@ bool ESP8266WiFiSTAClass::getAutoReconnect() {
/**
* Wait for WiFi connection to reach a result
* returns the status reached or disconnect if STA is off
* @return wl_status_t
* @return wl_status_t or -1 on timeout
*/
uint8_t ESP8266WiFiSTAClass::waitForConnectResult() {
int8_t ESP8266WiFiSTAClass::waitForConnectResult(unsigned long timeoutLength) {
//1 and 3 have STA enabled
if((wifi_get_opmode() & 1) == 0) {
return WL_DISCONNECTED;
}
while(status() == WL_DISCONNECTED) {
delay(100);
using esp8266::polledTimeout::oneShot;
oneShot timeout(timeoutLength); // number of milliseconds to wait before returning timeout error
while(!timeout) {
yield();
if(status() != WL_DISCONNECTED) {
return status();
}
}
return status();
return -1; // -1 indicates timeout
}
/**