mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-26 20:23:41 +00:00
Add option to disable 802.11b data rates
This commit is contained in:
@@ -30,6 +30,7 @@ ADC_MODE(ADC_VCC);
|
||||
#endif
|
||||
|
||||
#if defined(ESP32)
|
||||
#include <esp_wifi.h>
|
||||
#include <esp_task_wdt.h>
|
||||
#include <lwip/dns.h>
|
||||
#endif
|
||||
@@ -125,6 +126,7 @@ AmsDataStorage ds(&Debug);
|
||||
EnergyAccounting ea(&Debug);
|
||||
|
||||
uint8_t wifiReconnectCount = 0;
|
||||
bool wifiDisable11b = false;
|
||||
|
||||
HDLCParser *hdlcParser = NULL;
|
||||
MBUSParser *mbusParser = NULL;
|
||||
@@ -167,6 +169,14 @@ uint8_t dnsState = 0;
|
||||
ip_addr_t dns0;
|
||||
void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) {
|
||||
switch(event) {
|
||||
#if defined(ESP32)
|
||||
case ARDUINO_EVENT_WIFI_READY:
|
||||
if (wifiDisable11b) {
|
||||
esp_wifi_config_11b_rate(WIFI_IF_AP, true);
|
||||
esp_wifi_config_11b_rate(WIFI_IF_STA, true);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case ARDUINO_EVENT_WIFI_STA_GOT_IP: {
|
||||
const ip_addr_t* dns = dns_getserver(0);
|
||||
memcpy(&dns0, dns, sizeof(dns0));
|
||||
@@ -315,6 +325,12 @@ void setup() {
|
||||
WiFi.softAPdisconnect(true);
|
||||
WiFi.mode(WIFI_OFF);
|
||||
|
||||
WiFiConfig wifiConf;
|
||||
if(config.getWiFiConfig(wifiConf)) {
|
||||
wifiDisable11b = !wifiConf.use11b;
|
||||
}
|
||||
WiFi.onEvent(WiFiEvent);
|
||||
|
||||
bool hasFs = false;
|
||||
#if defined(ESP32)
|
||||
debugD_P(PSTR("ESP32 LittleFS"));
|
||||
@@ -1381,8 +1397,7 @@ void WiFi_connect() {
|
||||
#if defined(ESP32)
|
||||
if(strlen(wifi.hostname) > 0) {
|
||||
WiFi.setHostname(wifi.hostname);
|
||||
}
|
||||
WiFi.onEvent(WiFiEvent);
|
||||
}
|
||||
#endif
|
||||
WiFi.mode(WIFI_STA);
|
||||
|
||||
@@ -1899,6 +1914,9 @@ void configFileParse() {
|
||||
} else if(strncmp_P(buf, PSTR("hostname "), 9) == 0) {
|
||||
if(!lWiFi) { config.getWiFiConfig(wifi); lWiFi = true; };
|
||||
strcpy(wifi.hostname, buf+9);
|
||||
} else if(strncmp_P(buf, PSTR("use11b "), 7) == 0) {
|
||||
if(!lWiFi) { config.getWiFiConfig(wifi); lWiFi = true; };
|
||||
wifi.use11b = String(buf+7).toInt() == 1;
|
||||
} else if(strncmp_P(buf, PSTR("mdns "), 5) == 0) {
|
||||
if(!lWiFi) { config.getWiFiConfig(wifi); lWiFi = true; };
|
||||
wifi.mdns = String(buf+5).toInt() == 1;;
|
||||
|
||||
Reference in New Issue
Block a user