#include "esp_log.h" #include "esp_netif_sntp.h" #include "esp_sntp.h" #include "obtain_time.h" #include "esp_lvgl_port.h" static const char *TAG = "sntp"; extern lv_subject_t dateHeureSubj; char *days[7]={"Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"}; char *months[12]={"Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"}; void time_sync_notification_cb(struct timeval *tv) { ESP_LOGI(TAG, "Notification of a time synchronization event"); //setlocale(LC_ALL, "fr_FR"); } void obtain_time(void) { ESP_LOGI(TAG, "Initializing and starting SNTP"); esp_sntp_config_t config = ESP_NETIF_SNTP_DEFAULT_CONFIG("pool.ntp.org"); config.sync_cb = time_sync_notification_cb; // Note: This is only needed if we want esp_netif_sntp_init(&config); // wait for time to be set time_t now = 0; struct tm timeinfo = { 0 }; int retry = 0; const int retry_count = 15; while (esp_netif_sntp_sync_wait(2000 / portTICK_PERIOD_MS) == ESP_ERR_TIMEOUT && ++retry < retry_count) { ESP_LOGI(TAG, "Waiting for system time to be set... (%d/%d)", retry, retry_count); } time(&now); localtime_r(&now, &timeinfo); esp_netif_sntp_deinit(); }