Skip to content

Commit 1399d87

Browse files
authored
Multi wifi (#64)
* Multi-Wifi with best signal scanning and retry when disconnected * AP mode; can work (optionally) as a fallback when no network found * Captive portal * Dump output tweaks * Config file comments
1 parent 148a293 commit 1399d87

File tree

3 files changed

+540
-360
lines changed

3 files changed

+540
-360
lines changed

app_httpd.cpp

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ extern char streamURL[];
4040
extern int8_t detection_enabled;
4141
extern int8_t recognition_enabled;
4242
extern bool filesystem;
43+
extern bool accesspoint;
44+
extern bool captivePortal;
45+
extern char apName[];
4346
extern int httpPort;
4447
extern int streamPort;
4548
extern IPAddress ip;
@@ -180,15 +183,15 @@ static void draw_face_boxes(dl_matrix3du_t *image_matrix, box_array_t *boxes, in
180183
fb_gfx_drawFastHLine(&fb, x, y+h-1, w, color);
181184
fb_gfx_drawFastVLine(&fb, x, y, h, color);
182185
fb_gfx_drawFastVLine(&fb, x+w-1, y, h, color);
183-
#if 0
186+
#if 0
184187
// landmark
185188
int x0, y0, j;
186189
for (j = 0; j < 10; j+=2) {
187190
x0 = (int)boxes->landmark[i].landmark_p[j];
188191
y0 = (int)boxes->landmark[i].landmark_p[j+1];
189192
fb_gfx_fillRect(&fb, x0, y0, 3, 3, color);
190193
}
191-
#endif
194+
#endif
192195
}
193196
}
194197

@@ -602,10 +605,10 @@ static esp_err_t cmd_handler(httpd_req_t *req){
602605
Serial.print("REBOOT requested");
603606
for (int i=0; i<20; i++) {
604607
flashLED(50);
605-
delay(50);
608+
delay(150);
606609
Serial.print('.');
607610
}
608-
Serial.printf("\nThats all folks...\n\n");
611+
Serial.printf(" Thats all folks!\n\n");
609612
ESP.restart();
610613
}
611614
else {
@@ -725,19 +728,43 @@ static esp_err_t dump_handler(httpd_req_t *req){
725728
Serial.printf("ESP sdk: %s\n", ESP.getSdkVersion());
726729
// Network
727730
d+= sprintf(d,"<h2>WiFi</h2>\n");
728-
String ssidName = WiFi.SSID();
729-
d+= sprintf(d,"SSID: %s<br>\n", ssidName.c_str());
730-
Serial.printf("Ssid: %s\n", ssidName.c_str());
731-
d+= sprintf(d,"Rssi: %i<br>\n", WiFi.RSSI());
732-
Serial.printf("Rssi: %i\n", WiFi.RSSI());
733-
d+= sprintf(d,"Http port: %i, Stream port: %i<br>\n", httpPort, streamPort);
734-
Serial.printf("Http port: %i, Stream port: %i\n", httpPort, streamPort);
731+
if (accesspoint) {
732+
if (captivePortal) {
733+
d+= sprintf(d,"Mode: AccessPoint with captive portal<br>\n");
734+
Serial.printf("Mode: AccessPoint with captive portal\n");
735+
} else {
736+
d+= sprintf(d,"Mode: AccessPoint<br>\n");
737+
Serial.printf("Mode: AccessPoint\n");
738+
}
739+
d+= sprintf(d,"SSID: %s<br>\n", apName);
740+
Serial.printf("SSID: %s\n", apName);
741+
} else {
742+
d+= sprintf(d,"Mode: Client<br>\n");
743+
Serial.printf("Mode: Client\n");
744+
String ssidName = WiFi.SSID();
745+
d+= sprintf(d,"SSID: %s<br>\n", ssidName.c_str());
746+
Serial.printf("Ssid: %s\n", ssidName.c_str());
747+
d+= sprintf(d,"Rssi: %i<br>\n", WiFi.RSSI());
748+
Serial.printf("Rssi: %i\n", WiFi.RSSI());
749+
String bssid = WiFi.BSSIDstr();
750+
d+= sprintf(d,"BSSID: %s<br>\n", bssid.c_str());
751+
Serial.printf("BSSID: %s\n", bssid.c_str());
752+
}
735753
d+= sprintf(d,"IP address: %d.%d.%d.%d<br>\n", ip[0], ip[1], ip[2], ip[3]);
736754
Serial.printf("IP address: %d.%d.%d.%d\n", ip[0], ip[1], ip[2], ip[3]);
737-
d+= sprintf(d,"Netmask: %d.%d.%d.%d<br>\n", net[0], net[1], net[2], net[3]);
738-
Serial.printf("Netmask: %d.%d.%d.%d\n", net[0], net[1], net[2], net[3]);
739-
d+= sprintf(d,"Gateway: %d.%d.%d.%d<br>\n", gw[0], gw[1], gw[2], gw[3]);
740-
Serial.printf("Gateway: %d.%d.%d.%d\n", gw[0], gw[1], gw[2], gw[3]);
755+
if (!accesspoint) {
756+
d+= sprintf(d,"Netmask: %d.%d.%d.%d<br>\n", net[0], net[1], net[2], net[3]);
757+
Serial.printf("Netmask: %d.%d.%d.%d\n", net[0], net[1], net[2], net[3]);
758+
d+= sprintf(d,"Gateway: %d.%d.%d.%d<br>\n", gw[0], gw[1], gw[2], gw[3]);
759+
Serial.printf("Gateway: %d.%d.%d.%d\n", gw[0], gw[1], gw[2], gw[3]);
760+
}
761+
d+= sprintf(d,"Http port: %i, Stream port: %i<br>\n", httpPort, streamPort);
762+
Serial.printf("Http port: %i, Stream port: %i\n", httpPort, streamPort);
763+
byte mac[6];
764+
WiFi.macAddress(mac);
765+
d+= sprintf(d,"MAC: %02X:%02X:%02X:%02X:%02X:%02X<br>\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
766+
Serial.printf("MAC: %02X:%02X:%02X:%02X:%02X:%02X\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
767+
741768
// System
742769
d+= sprintf(d,"<h2>System</h2>\n");
743770
int64_t sec = esp_timer_get_time() / 1000000;

0 commit comments

Comments
 (0)