From 66e71acac372da58d8b70f921bc0a09865b866d5 Mon Sep 17 00:00:00 2001 From: norbert-walter Date: Fri, 20 Feb 2026 09:52:41 +0100 Subject: [PATCH] Fix for GwWifi --- lib/gwwifi/GwWifi.cpp | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/lib/gwwifi/GwWifi.cpp b/lib/gwwifi/GwWifi.cpp index 3a8991f..cd475c2 100644 --- a/lib/gwwifi/GwWifi.cpp +++ b/lib/gwwifi/GwWifi.cpp @@ -131,33 +131,20 @@ void GwWifi::loop(){ if (lastConnectStart > now || (lastConnectStart + RETRY_MILLIS) < now) { LOG_DEBUG(GwLog::LOG,"wifiClient: retry connect to %s", wifiSSID->asCString()); -<<<<<<< HEAD + // CRITICAL SECTION: WiFi-Operationen müssen serialisiert werden if (acquireMutex()){ - WiFi.disconnect(); + WiFi.disconnect(true); + delay(300); + esp_wifi_stop(); + delay(100); + esp_wifi_start(); releaseMutex(); connectInternal(); } else{ LOG_DEBUG(GwLog::ERROR,"GwWifi: mutex timeout in loop"); } -======= - -//+++++++++ Old part +++++++++++++++++++++ -// WiFi.disconnect(); -// connectInternal(); -//++++++++++++++++++++++++++++++++++++++++ - -//+++++++++ New part +++++++++++++++++++++ - WiFi.disconnect(true); - delay(300); - esp_wifi_stop(); - delay(100); - esp_wifi_start(); - connectInternal(); -//++++++++++++++++++++++++++++++++++++++++ - ->>>>>>> autopilot2 } } else{ @@ -178,6 +165,7 @@ void GwWifi::loop(){ } } } + bool GwWifi::clientConnected(){ // CRITICAL SECTION: WiFi.status() muss geschützt werden if (!acquireMutex()){ @@ -188,6 +176,7 @@ bool GwWifi::clientConnected(){ releaseMutex(); return result; }; + bool GwWifi::connectClient(){ // CRITICAL SECTION: Disconnect und Connect müssen atomar sein if (!acquireMutex()){