#include #include "esp_log.h" #include "esp_system.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "nvs_flash.h" #include "network.hpp" static const char *TAG = "ClientMain"; extern "C" void app_main() { ESP_LOGI(TAG, "Hello, Calendink Client!"); // Initialize NVS (required for some Wi-Fi configurations and network features) esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); ret = nvs_flash_init(); } ESP_ERROR_CHECK(ret); ESP_ERROR_CHECK(esp_event_loop_create_default()); // Connect to WiFi ESP_LOGI(TAG, "Initializing WiFi connection"); // Attempting to connect, we don't necessarily need to block forever here // as network.cpp already handles some of the retries esp_err_t err = connect_wifi(CONFIG_CALENDINK_WIFI_SSID, CONFIG_CALENDINK_WIFI_PASSWORD, false); if (err == ESP_OK) { uint8_t retries = 1; do { err = check_wifi_connection(retries); if (err != ESP_OK) { ESP_LOGW(TAG, "WiFi connection check timeout, retrying... (%d)", retries); vTaskDelay(pdMS_TO_TICKS(1000)); } retries++; } while (err == ESP_ERR_TIMEOUT && retries <= CONFIG_CALENDINK_WIFI_RETRIES); } if (err == ESP_OK) { ESP_LOGI(TAG, "Successfully connected to WiFi!"); } else { ESP_LOGE(TAG, "Failed to connect to WiFi."); } while (true) { vTaskDelay(pdMS_TO_TICKS(1000)); } }