Recover ESP8266 build and ESPWifiManualSetup

#563  Move protocol change method outside of wifimanager scope
and correct build error for ESP8266
This commit is contained in:
Florian committed 2020-04-08 15:14:14 -05:00
1 parent 0d486633ed
commit 26501b2176
2 files changed
+22 -22

No files matched your search

+1 -1
View File
@@ -107,7 +107,6 @@ char mqtt_topic[mqtt_topic_max_size] = Base_Topic;
char gateway_name[parameters_size * 2] = Gateway_Name;
#if defined(ESP8266)||defined(ESP32)
#include "esp_wifi.h"
#define ATTEMPTS_BEFORE_BG 10 // Number of wifi connection attempts before going to BG protocol
#define ATTEMPTS_BEFORE_B 20 // Number of wifi connection attempts before going to B protocol
#endif
@@ -115,6 +114,7 @@ char gateway_name[parameters_size * 2] = Gateway_Name;
// WIFI mode, uncomment to force a wifi mode, if not uncommented the ESP will connect without a mode forced
// if there is a reconnection issue it will try to connect with G mode and if not working with B mode
#ifdef ESP32
#include "esp_wifi.h"
uint8_t wifiProtocol = 0; // default mode, automatic selection
//uint8_t wifiProtocol = WIFI_PROTOCOL_11B;
//uint8_t wifiProtocol = WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G; // can't have only one https://github.com/espressif/esp-idf/issues/702
+21 -21
View File
@@ -134,7 +134,6 @@ int failure_number_mqtt = 0; // number of failure connecting to MQTT
#elif defined(ESP8266)
#include <FS.h>
#include <ESP8266WiFi.h>
#include "esp_wifi.h"
#include <ArduinoOTA.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
@@ -753,6 +752,27 @@ void setup()
Log.notice(F("Setup OpenMQTTGateway end" CR));
}
#if defined(ESP8266) || defined(ESP32)
// the 2 methods below are used to recover wifi connection by changing the protocols
void forceWifiProtocol(){
#ifdef ESP32
Log.trace(F("ESP32: Forcing to wifi %d" CR), wifiProtocol);
esp_wifi_set_protocol(WIFI_IF_STA, wifiProtocol);
#elif ESP8266
Log.trace(F("ESP8266: Forcing to wifi %d" CR), wifiProtocol);
WiFi.setPhyMode((WiFiPhyMode_t)wifiProtocol);
#endif
}
void reinit_wifi()
{
delay(10);
WiFi.mode(WIFI_STA);
if (!wifiProtocol) forceWifiProtocol();
WiFi.begin();
}
#endif
#if defined(ESPWifiManualSetup)
void setup_wifi()
{
@@ -843,16 +863,6 @@ void eraseAndRestart()
#endif
}
void forceWifiProtocol(){
#ifdef ESP32
Log.trace(F("ESP32: Forcing to wifi %d" CR), wifiProtocol);
esp_wifi_set_protocol(WIFI_IF_STA, wifiProtocol);
#elif ESP8266
Log.trace(F("ESP8266: Forcing to wifi %d" CR), wifiProtocol);
WiFi.setPhyMode(wifiProtocol);
#endif
}
void setup_wifimanager(bool reset_settings)
{
@@ -1010,16 +1020,6 @@ void setup_wifimanager(bool reset_settings)
}
}
void reinit_wifi()
{
delay(10);
WiFi.mode(WIFI_STA);
if (!wifiProtocol) forceWifiProtocol();
WiFi.begin();
}
#else // Arduino case
void setup_ethernet()
{