Skip to content

Commit 75f7437

Browse files
committed
Add callback to allow Static IP per SSID
Callback before WiFi.begin allows user to configure selected SSID
1 parent 1a13ab9 commit 75f7437

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

libraries/ESP8266WiFi/src/ESP8266WiFiMulti.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,9 +329,10 @@ wl_status_t ESP8266WiFiMulti::connectWiFiMulti(uint32_t connectTimeoutMs)
329329
if (ssid == entry.ssid) {
330330
DEBUG_WIFI_MULTI("[WIFIM] Connecting %s\n", ssid.c_str());
331331

332+
if(SSID_selected_callback) SSID_selected_callback(ssid.c_str());
332333
// Connect to WiFi
333334
WiFi.begin(ssid, entry.passphrase, channel, bssid);
334-
335+
335336
// Wait for status change
336337
if (waitWiFiConnect(connectTimeoutMs) == WL_CONNECTED) {
337338
return WL_CONNECTED;
@@ -350,6 +351,7 @@ wl_status_t ESP8266WiFiMulti::connectWiFiMulti(uint32_t connectTimeoutMs)
350351
if (!connectSkipIndex[i]) {
351352
DEBUG_WIFI_MULTI("[WIFIM] Try hidden connect %s\n", entry.ssid);
352353

354+
if(SSID_selected_callback) SSID_selected_callback(entry.ssid);
353355
// Connect to WiFi
354356
WiFi.begin(entry.ssid, entry.passphrase);
355357

libraries/ESP8266WiFi/src/ESP8266WiFiMulti.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ struct WifiAPEntry {
5656
};
5757

5858
typedef std::vector<WifiAPEntry> WifiAPlist;
59+
typedef void (*SSID_selected_callback_t)(const char * ssid);
5960

6061
class ESP8266WiFiMulti
6162
{
@@ -65,6 +66,7 @@ class ESP8266WiFiMulti
6566

6667
bool addAP(const char *ssid, const char *passphrase = NULL);
6768
bool existsAP(const char *ssid, const char *passphrase = NULL);
69+
void on_SSID_Selected(SSID_selected_callback_t cb) { SSID_selected_callback = cb;};
6870

6971
wl_status_t run(uint32_t connectTimeoutMs=WIFI_CONNECT_TIMEOUT_MS);
7072

@@ -73,6 +75,7 @@ class ESP8266WiFiMulti
7375
private:
7476
WifiAPlist _APlist;
7577
bool _firstRun;
78+
SSID_selected_callback_t SSID_selected_callback = NULL;
7679

7780
bool APlistAdd(const char *ssid, const char *passphrase = NULL);
7881
bool APlistExists(const char *ssid, const char *passphrase = NULL);

0 commit comments

Comments
 (0)