diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiScan.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFiScan.cpp index f83049c0bd..6ce8d3d2c0 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiScan.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiScan.cpp @@ -64,9 +64,11 @@ std::function ESP8266WiFiScanClass::_onComplete; * Start scan WiFi networks available * @param async run in async mode * @param show_hidden show hidden networks + * @param channel scan only this channel (0 for all channels) + * @param ssid* scan for only this ssid (NULL for all ssid's) * @return Number of discovered networks */ -int8_t ESP8266WiFiScanClass::scanNetworks(bool async, bool show_hidden) { +int8_t ESP8266WiFiScanClass::scanNetworks(bool async, bool show_hidden, uint8 channel, uint8* ssid) { if(ESP8266WiFiScanClass::_scanStarted) { return WIFI_SCAN_RUNNING; } @@ -84,6 +86,8 @@ int8_t ESP8266WiFiScanClass::scanNetworks(bool async, bool show_hidden) { struct scan_config config; memset(&config, 0, sizeof(config)); + config.ssid = ssid; + config.channel = channel; config.show_hidden = show_hidden; if(wifi_station_scan(&config, reinterpret_cast(&ESP8266WiFiScanClass::_scanDone))) { ESP8266WiFiScanClass::_scanComplete = false; diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiScan.h b/libraries/ESP8266WiFi/src/ESP8266WiFiScan.h index 742f742190..e799c4bd7d 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiScan.h +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiScan.h @@ -34,7 +34,7 @@ class ESP8266WiFiScanClass { public: - int8_t scanNetworks(bool async = false, bool show_hidden = false); + int8_t scanNetworks(bool async = false, bool show_hidden = false, uint8 channel = 0, uint8* ssid = NULL); void scanNetworksAsync(std::function onComplete, bool show_hidden = false); int8_t scanComplete();