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:
@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user