mauli02k
mauli02k

Reputation: 33

Why is my ESP32 task not logging when Wi-Fi is disconnected, but Wi-Fi retry logs are showing up?

I'm working with an ESP32, and I have a task that publishes data to the cloud. When the Wi-Fi is disconnected, the wifi_event_handler keeps retrying to connect, and I can see the retry logs on the monitor. However, the task publish_data_to_cloud does not log anything to the monitor when the Wi-Fi is disconnected.

Here is the relevant code for the Wi-Fi event handler:

void wifi_event_handler(void *arg, esp_event_base_t event_base,
                               int32_t event_id, void *event_data)
{
    if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED)
    {
        if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY)
        {
            esp_wifi_connect();
            s_retry_num++;
            ESP_LOGI("sta....", "retry to connect to the AP");
        }
        else
        {
            esp_wifi_disconnect(); 
            esp_wifi_connect();
            s_retry_num = 0;
        }
        is_wifi = false;
        ESP_LOGI(TAG, "is_wifi: %d", is_wifi);
    }
    // Other event cases...
}

And I'm creating the task as follows:

xTaskCreate(publish_data_to_cloud, "publish_data_to_cloud", 8192, &ucParameterToPass, 1, NULL);

The issue is:

The Wi-Fi retry logs are printing as expected. The publish_data_to_cloud task doesn't log anything when Wi-Fi is disconnected. I believe the task should run regardless of the Wi-Fi connection status, but it's not logging when the Wi-Fi is down. Is there something I'm missing? What could cause this issue, and how can I fix it so that the task logs even when Wi-Fi is disconnected?

Any help would be appreciated!

Upvotes: 0

Views: 42

Answers (0)

Related Questions