fix issue with STA emiting the wrong event

This commit is contained in:
me-no-dev 2018-01-18 13:54:26 +02:00
parent dde5e297c3
commit 8332a235d6
3 changed files with 7 additions and 3 deletions

View File

@ -313,8 +313,12 @@ esp_err_t WiFiGenericClass::_eventCallback(void *arg, system_event_t *event)
WiFiSTAClass::_setStatus(WL_DISCONNECTED); WiFiSTAClass::_setStatus(WL_DISCONNECTED);
} else if(event->event_id == SYSTEM_EVENT_STA_STOP) { } else if(event->event_id == SYSTEM_EVENT_STA_STOP) {
WiFiSTAClass::_setStatus(WL_NO_SHIELD); WiFiSTAClass::_setStatus(WL_NO_SHIELD);
} else if(event->event_id == SYSTEM_EVENT_STA_CONNECTED) {
WiFiSTAClass::_setStatus(WL_IDLE_STATUS);
} else if(event->event_id == SYSTEM_EVENT_STA_GOT_IP) { } else if(event->event_id == SYSTEM_EVENT_STA_GOT_IP) {
WiFiSTAClass::_setStatus(WL_CONNECTED); if(WiFiSTAClass::status() == WL_IDLE_STATUS) {
WiFiSTAClass::_setStatus(WL_CONNECTED);
}
} }
for(uint32_t i = 0; i < cbEventList.size(); i++) { for(uint32_t i = 0; i < cbEventList.size(); i++) {

View File

@ -358,7 +358,7 @@ uint8_t WiFiSTAClass::waitForConnectResult()
return WL_DISCONNECTED; return WL_DISCONNECTED;
} }
int i = 0; int i = 0;
while(status() >= WL_DISCONNECTED && i++ < 100) { while((!status() || status() >= WL_DISCONNECTED) && i++ < 100) {
delay(100); delay(100);
} }
return status(); return status();

View File

@ -72,7 +72,7 @@ public:
bool setHostname(const char * hostname); bool setHostname(const char * hostname);
// STA WiFi info // STA WiFi info
wl_status_t status(); static wl_status_t status();
String SSID() const; String SSID() const;
String psk() const; String psk() const;