Fix missing code from merge for connectivity_event_group

This commit is contained in:
2025-12-09 01:37:18 +01:00
parent 88c7635ed9
commit 2c7951c2bb
2 changed files with 45 additions and 45 deletions
+12 -23
View File
@@ -6,27 +6,26 @@
#include "esp_log.h"
#include "nvs_flash.h"
#include "main.hpp"
#include "config.h"
#include "config-erick.h"
#define WIFI_TIMEOUT_TICKS pdMS_TO_TICKS(8000)
#define WIFI_TIMEOUT_MS 4500
static const char* TAG = "WIFI";
EventGroupHandle_t wifi_event_group;
static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
if (event_base == WIFI_EVENT) {
switch (event_id) {
case WIFI_EVENT_STA_START:
ESP_LOGI(TAG, "Wi-Fi process started, connecting...");
ESP_LOGV(TAG, "Process started, connecting...");
esp_wifi_connect();
break;
case WIFI_EVENT_STA_DISCONNECTED: {
wifi_event_sta_disconnected_t* disconn = (wifi_event_sta_disconnected_t*) event_data;
ESP_LOGW(TAG, "Disconnected, reason: %d", disconn->reason);
xEventGroupClearBits(wifi_event_group, WIFI_CONNECTED_BIT);
xEventGroupClearBits(connectivity_event_group, WIFI_CONNECTED_BIT | MQTT_CONNECTED_BIT);
esp_wifi_connect();
break;
}
@@ -36,8 +35,9 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t e
}
else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data;
ESP_LOGI(TAG, "Got IP: " IPSTR, IP2STR(&event->ip_info.ip));
xEventGroupSetBits(wifi_event_group, WIFI_CONNECTED_BIT);
ESP_LOGD(TAG, "Got IP: " IPSTR, IP2STR(&event->ip_info.ip));
xEventGroupSetBits(connectivity_event_group, WIFI_CONNECTED_BIT);
}
}
@@ -49,10 +49,7 @@ static void wifi_init_sta(void) {
ESP_ERROR_CHECK(nvs_flash_init());
}
wifi_event_group = xEventGroupCreate();
ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_create_default());
esp_netif_create_default_wifi_sta();
@@ -75,22 +72,14 @@ static void wifi_init_sta(void) {
}
void wifiTask(void *pvParameters) {
ESP_LOGI(TAG, "WiFi task started");
ESP_LOGV(TAG, "Task started");
wifi_init_sta();
ESP_ERROR_CHECK(esp_task_wdt_add(NULL));
for(;;) {
wifi_ap_record_t ap;
if (esp_wifi_sta_get_ap_info(&ap) == ESP_OK) {
ESP_LOGV(TAG, "RSSI: %d", ap.rssi);
}
//TODO: manage data send rate if with slow network
// or just let mqtt know (useful for making a notice on home manager)
ESP_ERROR_CHECK(esp_task_wdt_reset());
ESP_LOGI(TAG, "Wi-Fi task reset");
vTaskDelay(pdMS_TO_TICKS(WIFI_TIMEOUT_TICKS));
ESP_LOGV(TAG, "Task reset");
vTaskDelay(pdMS_TO_TICKS(WIFI_TIMEOUT_MS));
}
}