- Notifications
You must be signed in to change notification settings - Fork 13.3k
Open
Description
Was trying to port this code from ESP32, but found that getLocalTime doesnt exist. Is there a replacement?
void gettime() { static int16_t delaycount = 0 ; // To reduce number of NTP requests static int16_t retrycount = 100 ; if ( timeinfo.tm_year ) // Legal time found? { sprintf ( timetxt, "%02d:%02d:%02d", // Yes, format to a string timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec ) ; } if ( --delaycount <= 0 ) // Sync every few hours { delaycount = 7200 ; // Reset counter if ( timeinfo.tm_year ) // Legal time found? { dbgprint ( "Sync TOD, old value is %s", timetxt ) ; } dbgprint ( "Sync TOD" ) ; if ( !getLocalTime ( &timeinfo, 5000 ) ) // Read from NTP server { dbgprint ( "Failed to obtain time!" ) ; // Error timeinfo.tm_year = 0 ; // Set current time to illegal if ( retrycount ) // Give up syncing? { retrycount-- ; // No try again delaycount = 5 ; // Retry after 5 seconds } } else { sprintf ( timetxt, "%02d:%02d:%02d", // Format new time to a string timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec ) ; dbgprint ( "Sync TOD, new value is %s", timetxt ) ; } } }
Or is there any chance to add this from esp32-hal-time.c
bool getLocalTime(struct tm * info, uint32_t ms) { uint32_t start = millis(); time_t now; while((millis()-start) <= ms) { time(&now); localtime_r(&now, info); if(info->tm_year > (2016 - 1900)){ return true; } delay(10); } return false; }
Metadata
Metadata
Assignees
Labels
No labels