Unique SSIDs
This commit is contained in:
parent
885be6577d
commit
ddbb08a492
|
|
@ -5,6 +5,7 @@
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
#include "Improv.h"
|
#include "Improv.h"
|
||||||
#include "HomeSpan.h"
|
#include "HomeSpan.h"
|
||||||
|
#include <set>
|
||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
using namespace improv;
|
using namespace improv;
|
||||||
|
|
@ -136,12 +137,18 @@ bool connectWifi(const char *ssid, const char *pwd) {
|
||||||
void getAvailableWifiNetworks() {
|
void getAvailableWifiNetworks() {
|
||||||
int networkNum = WiFi.scanNetworks();
|
int networkNum = WiFi.scanNetworks();
|
||||||
|
|
||||||
|
std::set<String> ssidSet; // Store unique SSIDs
|
||||||
|
|
||||||
// Send one RPC response for each network we found
|
// Send one RPC response for each network we found
|
||||||
for(int id = 0; id < networkNum; ++id) {
|
for(int id = 0; id < networkNum; ++id) {
|
||||||
std::vector<uint8_t> data = improv::buildRPCResponse(
|
String ssid = WiFi.SSID(id);
|
||||||
improv::GET_WIFI_NETWORKS, {WiFi.SSID(id), String(WiFi.RSSI(id)), (WiFi.encryptionType(id) == WIFI_AUTH_OPEN ? "NO" : "YES")}, false);
|
if (ssidSet.count(ssid) == 0) { // Check if SSID is already sent
|
||||||
improv::sendImprovResponse(data);
|
std::vector<uint8_t> data = improv::buildRPCResponse(
|
||||||
delay(1);
|
improv::GET_WIFI_NETWORKS, {ssid, String(WiFi.RSSI(id)), (WiFi.encryptionType(id) == WIFI_AUTH_OPEN ? "NO" : "YES")}, false);
|
||||||
|
improv::sendImprovResponse(data);
|
||||||
|
ssidSet.insert(ssid); // Add SSID to the set
|
||||||
|
delay(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Send a blank response to signal the end of the list
|
// Send a blank response to signal the end of the list
|
||||||
std::vector<uint8_t> data =
|
std::vector<uint8_t> data =
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue