Skip to content

Commit 3be4875

Browse files
committedMar 3, 2025
Renamed callback, and added to WiFiMulti example
1 parent 75f7437 commit 3be4875

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed
 

‎libraries/ESP8266WiFi/examples/WiFiMulti/WiFiMulti.ino

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- Connect to WiFi with strongest signal (RSSI)
99
- Fall back to connect to next WiFi when a connection failed or lost
1010
- Fall back to connect to hidden SSID's which are not reported by WiFi scan
11+
- Static IP assigned depending on which SSID is connected
1112
1213
To enable debugging output, select in the Arduino iDE:
1314
- Tools | Debug Port: Serial
@@ -21,6 +22,8 @@ ESP8266WiFiMulti wifiMulti;
2122
// WiFi connect timeout per AP. Increase when connecting takes longer.
2223
const uint32_t connectTimeoutMs = 5000;
2324

25+
SSID_selected_callback_t connectedToSSID(char *ssid);
26+
2427
void setup() {
2528
// Don't save WiFi configuration in flash - optional
2629
WiFi.persistent(false);
@@ -35,9 +38,24 @@ void setup() {
3538
wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1");
3639
wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");
3740
wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");
41+
42+
wifiMulti.onSsidSelected(connectedToSSID);
43+
3844
// More is possible
3945
}
4046

47+
SSID_selected_callback_t connectedToSSID(char *ssid)
48+
{
49+
// On connecting the second WiFi, assign static IP using config(...).
50+
// For other SSID (if config has not already been called) DHCP will be used.
51+
if(strcmp(ssid, "ssid_from_AP_2") == 0) {
52+
IPAddress ip2(192,168,1,123);
53+
IPAddress gw2(192,168,1,1);
54+
IPAddress subnet2(255,255,255,0);
55+
WiFi.config(ip2, gw2, subnet2);
56+
}
57+
}
58+
4159
void loop() {
4260
// Maintain WiFi connection
4361
if (wifiMulti.run(connectTimeoutMs) == WL_CONNECTED) {

‎libraries/ESP8266WiFi/src/ESP8266WiFiMulti.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ 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());
332+
if(_onSsidSelected) _onSsidSelected(ssid.c_str());
333333
// Connect to WiFi
334334
WiFi.begin(ssid, entry.passphrase, channel, bssid);
335335

@@ -351,7 +351,7 @@ wl_status_t ESP8266WiFiMulti::connectWiFiMulti(uint32_t connectTimeoutMs)
351351
if (!connectSkipIndex[i]) {
352352
DEBUG_WIFI_MULTI("[WIFIM] Try hidden connect %s\n", entry.ssid);
353353

354-
if(SSID_selected_callback) SSID_selected_callback(entry.ssid);
354+
if(_onSsidSelected) _onSsidSelected(entry.ssid);
355355
// Connect to WiFi
356356
WiFi.begin(entry.ssid, entry.passphrase);
357357

‎libraries/ESP8266WiFi/src/ESP8266WiFiMulti.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class ESP8266WiFiMulti
6666

6767
bool addAP(const char *ssid, const char *passphrase = NULL);
6868
bool existsAP(const char *ssid, const char *passphrase = NULL);
69-
void on_SSID_Selected(SSID_selected_callback_t cb) { SSID_selected_callback = cb;};
69+
void onSsidSelected(SSID_selected_callback_t cb) { _onSsidSelected = cb;};
7070

7171
wl_status_t run(uint32_t connectTimeoutMs=WIFI_CONNECT_TIMEOUT_MS);
7272

@@ -75,7 +75,7 @@ class ESP8266WiFiMulti
7575
private:
7676
WifiAPlist _APlist;
7777
bool _firstRun;
78-
SSID_selected_callback_t SSID_selected_callback = NULL;
78+
SSID_selected_callback_t _onSsidSelected = NULL;
7979

8080
bool APlistAdd(const char *ssid, const char *passphrase = NULL);
8181
bool APlistExists(const char *ssid, const char *passphrase = NULL);

0 commit comments

Comments
 (0)
Please sign in to comment.