[WiFi] Fix some minor WiFi issues when saving settings (still 5min wait)

This commit is contained in:
TD-er
2026-05-07 21:07:21 +02:00
parent c1bb5733ae
commit f0d3b78bb4
8 changed files with 18 additions and 10 deletions
@@ -10,7 +10,12 @@
Port_ESPEasySerial_HardwareSerial_t::Port_ESPEasySerial_HardwareSerial_t() {}
Port_ESPEasySerial_HardwareSerial_t::~Port_ESPEasySerial_HardwareSerial_t() {}
Port_ESPEasySerial_HardwareSerial_t::~Port_ESPEasySerial_HardwareSerial_t() {
if (_serial != nullptr) {
_serial->flush();
_serial->end();
}
}
void Port_ESPEasySerial_HardwareSerial_t::resetConfig(const ESPEasySerialConfig& config)
{
@@ -128,6 +128,7 @@ Port_ESPEasySerial_USBCDC_t::Port_ESPEasySerial_USBCDC_t(const ESPEasySerialConf
Port_ESPEasySerial_USBCDC_t::~Port_ESPEasySerial_USBCDC_t()
{
if (_serial != nullptr) {
_serial->flush();
_serial->end();
}
}
+3 -2
View File
@@ -4,6 +4,7 @@
#include "../../../src/DataStructs/TimingStats.h"
#include "../../../src/DataTypes/ESPEasy_plugin_functions.h"
#include "../../../src/Globals/Settings.h"
#include "../../../src/Globals/ESPEasy_Scheduler.h"
//#include "../../../src/Helpers/Misc.h"
#include "../../../src/Helpers/StringConverter.h"
#include "../Globals/NWPlugins.h"
@@ -2204,10 +2205,10 @@ void NWPlugin_Exit_Init(networkIndex_t networkIndex)
String dummy;
// May need to call init later, so make sure exit is called first
NWPluginCall(NWPlugin::Function::NWPLUGIN_EXIT, &TempEvent, dummy);
Scheduler.setNetworkExitTimer(0, networkIndex);
if (Settings.getNetworkEnabled(networkIndex)) {
NWPluginCall(NWPlugin::Function::NWPLUGIN_INIT, &TempEvent, dummy);
Scheduler.setNetworkInitTimer(0, networkIndex);
}
}
}
@@ -51,6 +51,7 @@ void ESPEasyWiFi_t::begin() {
setState(WiFiState_e::IdleWaiting, 100);
} else {
if (WiFi_AP_Candidates.hasScanned()) {
// Has no candidates, but scan was performed.
if (shouldStartAP_fallback()) {
setState(WiFiState_e::AP_only, WIFI_STATE_MACHINE_AP_ONLY_TIMEOUT);
}
+4 -1
View File
@@ -188,7 +188,10 @@ void resetWiFi() {
void initWiFi() { ESPEasyWiFi.setup(); }
void exitWiFi() { ESPEasyWiFi.disable(); }
void exitWiFi() {
ESPEasyWiFi.disable();
WiFi_AP_Candidates.force_reload();
}
void loopWiFi() { ESPEasyWiFi.loop(); }
+1 -1
View File
@@ -36,7 +36,7 @@ namespace wifi {
# else
# define WIFI_CONNECTION_CONSIDERED_STABLE 60000 // in milliSeconds
# endif // if FEATURE_CUSTOM_PROVISIONING
# define WIFI_ALLOW_AP_AFTERBOOT_PERIOD 5 // in minutes
//# define WIFI_ALLOW_AP_AFTERBOOT_PERIOD 5 // in minutes
# define WIFI_SCAN_INTERVAL_AP_USED 125000 // in milliSeconds
# define WIFI_SCAN_INTERVAL_MINIMAL 60000 // in milliSeconds
@@ -42,7 +42,8 @@ bool WiFi_pre_STA_setup() {
void doWiFiDisconnect() {
// Only call disconnect when STA is active
if (doWifiIsSTA(WiFi.getMode())) {
wifi_station_disconnect();
WiFi.disconnect(true);
// wifi_station_disconnect();
}
/*
station_config conf{};
-4
View File
@@ -127,8 +127,6 @@ void EspEasy_Console_t::reInit()
if (!mustHaveFallback) {
if (_fallbackSerial._serial != nullptr) {
_fallbackSerial._serial->flush();
_fallbackSerial._serial->end();
delete _fallbackSerial._serial;
_fallbackSerial._serial = nullptr;
somethingChanged = true;
@@ -142,8 +140,6 @@ void EspEasy_Console_t::reInit()
(_console_serial_txpin != Settings.console_serial_txpin) ||
!mustHaveSerial) {
if (_mainSerial._serial != nullptr) {
_mainSerial._serial->flush();
_mainSerial._serial->end();
delete _mainSerial._serial;
_mainSerial._serial = nullptr;
somethingChanged = true;