1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Added channel, ssid scan (#4636)

* Added channel, ssid scan

Overloaded scanNetworks so scan can occur on a single channel and/or for a particular ssid.

* Added parameters to scanNetworks

channel number and ssid have been added as optional parameters to the orginal scanNetworks()
This commit is contained in:
Dan Worth 2018-04-13 14:55:45 -04:00 committed by Develo
parent b08d282673
commit 7820fb73a5
2 changed files with 6 additions and 2 deletions

View File

@ -64,9 +64,11 @@ std::function<void(int)> ESP8266WiFiScanClass::_onComplete;
* Start scan WiFi networks available * Start scan WiFi networks available
* @param async run in async mode * @param async run in async mode
* @param show_hidden show hidden networks * @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 * @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) { if(ESP8266WiFiScanClass::_scanStarted) {
return WIFI_SCAN_RUNNING; return WIFI_SCAN_RUNNING;
} }
@ -84,6 +86,8 @@ int8_t ESP8266WiFiScanClass::scanNetworks(bool async, bool show_hidden) {
struct scan_config config; struct scan_config config;
memset(&config, 0, sizeof(config)); memset(&config, 0, sizeof(config));
config.ssid = ssid;
config.channel = channel;
config.show_hidden = show_hidden; config.show_hidden = show_hidden;
if(wifi_station_scan(&config, reinterpret_cast<scan_done_cb_t>(&ESP8266WiFiScanClass::_scanDone))) { if(wifi_station_scan(&config, reinterpret_cast<scan_done_cb_t>(&ESP8266WiFiScanClass::_scanDone))) {
ESP8266WiFiScanClass::_scanComplete = false; ESP8266WiFiScanClass::_scanComplete = false;

View File

@ -34,7 +34,7 @@ class ESP8266WiFiScanClass {
public: 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<void(int)> onComplete, bool show_hidden = false); void scanNetworksAsync(std::function<void(int)> onComplete, bool show_hidden = false);
int8_t scanComplete(); int8_t scanComplete();