mirror of https://github.com/ARMmbed/mbed-os.git
ESP8266: retry reset attempt once in failure
parent
2d6b63d5a2
commit
cbbe2ff55e
|
@ -256,9 +256,10 @@ bool ESP8266::reset(void)
|
||||||
unsigned long int start_time = rtos::Kernel::get_ms_count();
|
unsigned long int start_time = rtos::Kernel::get_ms_count();
|
||||||
_reset_done = false;
|
_reset_done = false;
|
||||||
set_timeout(ESP8266_RECV_TIMEOUT);
|
set_timeout(ESP8266_RECV_TIMEOUT);
|
||||||
|
for (int i = 0; i < 2; i++) {
|
||||||
if (!_parser.send("AT+RST") || !_parser.recv("OK\n")) {
|
if (!_parser.send("AT+RST") || !_parser.recv("OK\n")) {
|
||||||
tr_debug("reset(): AT+RST failed or no response");
|
tr_debug("reset(): AT+RST failed or no response");
|
||||||
goto EXIT;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
_rmutex.lock();
|
_rmutex.lock();
|
||||||
|
@ -269,10 +270,13 @@ bool ESP8266::reset(void)
|
||||||
|
|
||||||
done = _reset_done;
|
done = _reset_done;
|
||||||
_rmutex.unlock();
|
_rmutex.unlock();
|
||||||
|
if (done) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tr_debug("reset(): done: %s", done ? "OK" : "FAIL");
|
tr_debug("reset(): done: %s", done ? "OK" : "FAIL");
|
||||||
|
|
||||||
EXIT:
|
|
||||||
_clear_socket_packets(ESP8266_ALL_SOCKET_IDS);
|
_clear_socket_packets(ESP8266_ALL_SOCKET_IDS);
|
||||||
set_timeout();
|
set_timeout();
|
||||||
_smutex.unlock();
|
_smutex.unlock();
|
||||||
|
|
Loading…
Reference in New Issue