diff --git a/include/NetTransport.h b/include/NetTransport.h index 67ab592..9ed3856 100644 --- a/include/NetTransport.h +++ b/include/NetTransport.h @@ -117,6 +117,7 @@ void GotEthIF(void); void GetRFC3339Time(char *t); void GetISO8601Time(char *t); void StartTimeGet(void); +void SetSystemTime(struct tm *time, const char* source); esp_err_t StartOTA(bool isManual); char* GetAvailVersion(); diff --git a/src/SNTP.c b/src/SNTP.c index 25cd069..a079af7 100644 --- a/src/SNTP.c +++ b/src/SNTP.c @@ -134,6 +134,14 @@ void StartSystemTimer(void) ESP_ERROR_CHECK(esp_timer_start_periodic(system_seconds_timer, 1000000)); } +void SetSystemTime(struct tm *time, const char* source) +{ + time_t t = mktime(time); + ESP_LOGI("SNTP","Setting time: %s from thq source %s", asctime(time), source); + struct timeval now = { .tv_sec = t }; + settimeofday(&now, NULL); +} + void SecondTickSystem(void *param) { ++UpTime;