mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #11304 from AnttiKauppila/esp8266_fix
RSSI getter fixed for ESP8266pull/11235/head
commit
56a8227c54
|
|
@ -426,7 +426,7 @@ const char *ESP8266::netmask()
|
||||||
|
|
||||||
int8_t ESP8266::rssi()
|
int8_t ESP8266::rssi()
|
||||||
{
|
{
|
||||||
int8_t rssi;
|
int8_t rssi = 0;
|
||||||
char bssid[18];
|
char bssid[18];
|
||||||
|
|
||||||
_smutex.lock();
|
_smutex.lock();
|
||||||
|
|
@ -437,17 +437,27 @@ int8_t ESP8266::rssi()
|
||||||
_smutex.unlock();
|
_smutex.unlock();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_timeout();
|
set_timeout();
|
||||||
_smutex.unlock();
|
_smutex.unlock();
|
||||||
|
|
||||||
|
WiFiAccessPoint ap[1];
|
||||||
|
_scan_r.res = ap;
|
||||||
|
_scan_r.limit = 1;
|
||||||
|
_scan_r.cnt = 0;
|
||||||
|
|
||||||
_smutex.lock();
|
_smutex.lock();
|
||||||
set_timeout(ESP8266_CONNECT_TIMEOUT);
|
set_timeout(ESP8266_CONNECT_TIMEOUT);
|
||||||
if (!(_parser.send("AT+CWLAP=\"\",\"%s\",", bssid)
|
if (!(_parser.send("AT+CWLAP=\"\",\"%s\",", bssid)
|
||||||
&& _parser.recv("+CWLAP:(%*d,\"%*[^\"]\",%hhd,", &rssi)
|
|
||||||
&& _parser.recv("OK\n"))) {
|
&& _parser.recv("OK\n"))) {
|
||||||
_smutex.unlock();
|
rssi = 0;
|
||||||
return 0;
|
} else if (_scan_r.cnt == 1) {
|
||||||
|
//All OK so read and return rssi
|
||||||
|
rssi = ap[0].get_rssi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_scan_r.cnt = 0;
|
||||||
|
_scan_r.res = NULL;
|
||||||
set_timeout();
|
set_timeout();
|
||||||
_smutex.unlock();
|
_smutex.unlock();
|
||||||
|
|
||||||
|
|
@ -481,6 +491,7 @@ int ESP8266::scan(WiFiAccessPoint *res, unsigned limit, scan_mode mode, unsigned
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int cnt = _scan_r.cnt;
|
int cnt = _scan_r.cnt;
|
||||||
_scan_r.res = NULL;
|
_scan_r.res = NULL;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue