diff --git a/components/wifi/esp8266-driver/ESP8266/ESP8266.cpp b/components/wifi/esp8266-driver/ESP8266/ESP8266.cpp index 2a0cba0..8dbdf39 100644 --- a/components/wifi/esp8266-driver/ESP8266/ESP8266.cpp +++ b/components/wifi/esp8266-driver/ESP8266/ESP8266.cpp @@ -460,7 +460,15 @@ _scan_r.limit = limit; _scan_r.cnt = 0; - if (!(_parser.send("AT+CWLAP=,,,%u,%u,%u", (mode == SCANMODE_ACTIVE ? 0 : 1), t_min, t_max) && _parser.recv("OK\n"))) { + bool ret_parse_send = true; + + if (FW_AT_LEAST_VERSION(_at_v.major, _at_v.minor, _at_v.patch, 0, ESP8266_AT_VERSION_WIFI_SCAN_CHANGE)) { + ret_parse_send = _parser.send("AT+CWLAP=,,,%u,%u,%u", (mode == SCANMODE_ACTIVE ? 0 : 1), t_min, t_max); + } else { + ret_parse_send = _parser.send("AT+CWLAP"); + } + + if (!(ret_parse_send && _parser.recv("OK\n"))) { tr_warning("scan(): AP info parsing aborted"); // Lets be happy about partial success and not return NSAPI_ERROR_DEVICE_ERROR if (!_scan_r.cnt) { @@ -1225,6 +1233,10 @@ bool ESP8266::set_country_code_policy(bool track_ap, const char *country_code, int channel_start, int channels) { + if (!(FW_AT_LEAST_VERSION(_at_v.major, _at_v.minor, _at_v.patch, 0, ESP8266_AT_VERSION_WIFI_SCAN_CHANGE))) { + return true; + } + int t_ap = track_ap ? 0 : 1; _smutex.lock();