#issuecomment-626827941

pull/220/head
Hieromon Ikasamo 5 years ago
parent 10ef58dccf
commit b5106af7e0
  1. 16
      src/AutoConnect.cpp
  2. 8
      src/AutoConnect.h

@ -79,23 +79,17 @@ bool AutoConnect::begin(const char* ssid, const char* passphrase, unsigned long
// Overwrite for the current timeout value. // Overwrite for the current timeout value.
_connectTimeout = timeout; _connectTimeout = timeout;
if (_apConfig.preserveWiFiMode && !_apConfig.autoRise) { if (_apConfig.preserveAPMode && !_apConfig.autoRise) {
// Captive portal will not be started on connection failure. Enable Station mode // Captive portal will not be started on connection failure. Enable Station mode
// without disabling any current soft AP. // without disabling any current soft AP.
AC_DBG("WiFi mode %d maintained, STA ", WiFi.getMode()); cs = WiFi.enableSTA(true);
if (WiFi.enableSTA(true)) { AC_DBG("WiFi mode %d maintained, STA %s\n", WiFi.getMode(), cs ? "enabled" : "unavailable");
AC_DBG_DUMB("enabled");
}
else {
AC_DBG_DUMB("unavailable");
}
} }
else { else {
// Start WiFi connection with station mode. // Start WiFi connection with station mode.
WiFi.softAPdisconnect(true); WiFi.softAPdisconnect(true);
if (!WiFi.mode(WIFI_STA)) { if (!WiFi.mode(WIFI_STA))
AC_DBG("Unable start WIFI_STA"); AC_DBG("Unable start WIFI_STA\n");
}
delay(100); delay(100);
} }

@ -105,7 +105,7 @@ class AutoConnectConfig {
autoReconnect(false), autoReconnect(false),
immediateStart(false), immediateStart(false),
retainPortal(false), retainPortal(false),
preserveWiFiMode(false), preserveAPMode(false),
portalTimeout(AUTOCONNECT_CAPTIVEPORTAL_TIMEOUT), portalTimeout(AUTOCONNECT_CAPTIVEPORTAL_TIMEOUT),
menuItems(AC_MENUITEM_CONFIGNEW | AC_MENUITEM_OPENSSIDS | AC_MENUITEM_DISCONNECT | AC_MENUITEM_RESET | AC_MENUITEM_UPDATE | AC_MENUITEM_HOME), menuItems(AC_MENUITEM_CONFIGNEW | AC_MENUITEM_OPENSSIDS | AC_MENUITEM_DISCONNECT | AC_MENUITEM_RESET | AC_MENUITEM_UPDATE | AC_MENUITEM_HOME),
ticker(false), ticker(false),
@ -142,7 +142,7 @@ class AutoConnectConfig {
autoReconnect(false), autoReconnect(false),
immediateStart(false), immediateStart(false),
retainPortal(false), retainPortal(false),
preserveWiFiMode(false), preserveAPMode(false),
portalTimeout(portalTimeout), portalTimeout(portalTimeout),
menuItems(AC_MENUITEM_CONFIGNEW | AC_MENUITEM_OPENSSIDS | AC_MENUITEM_DISCONNECT | AC_MENUITEM_RESET | AC_MENUITEM_UPDATE | AC_MENUITEM_HOME), menuItems(AC_MENUITEM_CONFIGNEW | AC_MENUITEM_OPENSSIDS | AC_MENUITEM_DISCONNECT | AC_MENUITEM_RESET | AC_MENUITEM_UPDATE | AC_MENUITEM_HOME),
ticker(false), ticker(false),
@ -179,7 +179,7 @@ class AutoConnectConfig {
autoReconnect = o.autoReconnect; autoReconnect = o.autoReconnect;
immediateStart = o.immediateStart; immediateStart = o.immediateStart;
retainPortal = o.retainPortal; retainPortal = o.retainPortal;
preserveWiFiMode = o.preserveWiFiMode; preserveAPMode = o.preserveAPMode;
portalTimeout = o.portalTimeout; portalTimeout = o.portalTimeout;
menuItems = o.menuItems; menuItems = o.menuItems;
ticker = o.ticker; ticker = o.ticker;
@ -216,7 +216,7 @@ class AutoConnectConfig {
bool autoReconnect; /**< Automatic reconnect with past SSID */ bool autoReconnect; /**< Automatic reconnect with past SSID */
bool immediateStart; /**< Skips WiFi.begin(), start portal immediately */ bool immediateStart; /**< Skips WiFi.begin(), start portal immediately */
bool retainPortal; /**< Even if the captive portal times out, it maintains the portal state. */ bool retainPortal; /**< Even if the captive portal times out, it maintains the portal state. */
bool preserveWiFiMode; /**< Keep existing WiFi mode if captive portal won't be started. */ bool preserveAPMode; /**< Keep existing AP WiFi mode if captive portal won't be started. */
unsigned long portalTimeout; /**< Timeout value for stay in the captive portal */ unsigned long portalTimeout; /**< Timeout value for stay in the captive portal */
uint16_t menuItems; /**< A compound value of the menu items to be attached */ uint16_t menuItems; /**< A compound value of the menu items to be attached */
bool ticker; /**< Drives LED flicker according to WiFi connection status. */ bool ticker; /**< Drives LED flicker according to WiFi connection status. */

Loading…
Cancel
Save