rtctime.cpp: bugfix time sync at device startup
This commit is contained in:
		
							parent
							
								
									c05edbc2f3
								
							
						
					
					
						commit
						edf5310d81
					
				@ -97,14 +97,16 @@ time_t get_rtctime(void) {
 | 
			
		||||
} // get_rtctime()
 | 
			
		||||
 | 
			
		||||
void sync_rtctime(void) {
 | 
			
		||||
  if (timeStatus() != timeSet) {
 | 
			
		||||
    ESP_LOGE(TAG, "Unable to sync with the RTC");
 | 
			
		||||
  } else {
 | 
			
		||||
    time_t t = now();
 | 
			
		||||
    setTime(t);
 | 
			
		||||
    ESP_LOGI(TAG, "RTC has set system time to %02d/%02d/%d %02d:%02d:%02d",
 | 
			
		||||
             month(t), day(t), year(t), hour(t), minute(t), second(t));
 | 
			
		||||
  if (timeStatus() != timeSet) { // do we need time sync?
 | 
			
		||||
    time_t t = get_rtctime();
 | 
			
		||||
    if (t) { // do we have valid time by RTC?
 | 
			
		||||
      setTime(t);
 | 
			
		||||
      ESP_LOGI(TAG, "RTC has set system time to %02d/%02d/%d %02d:%02d:%02d",
 | 
			
		||||
               month(t), day(t), year(t), hour(t), minute(t), second(t));
 | 
			
		||||
    } else
 | 
			
		||||
      ESP_LOGE(TAG, "RTC has no confident time, not synced");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
#ifdef TIME_SYNC_INTERVAL_RTC
 | 
			
		||||
  setSyncProvider(&get_rtctime);
 | 
			
		||||
  setSyncInterval(TIME_SYNC_INTERVAL_RTC);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user