diff --git a/cores/esp8266/Arduino.h b/cores/esp8266/Arduino.h index 2aab5770c9..e59155adcc 100644 --- a/cores/esp8266/Arduino.h +++ b/cores/esp8266/Arduino.h @@ -279,6 +279,8 @@ inline void configTzTime(const char* tz, const char* server1, configTime(tz, server1, server2, server3); } +bool getLocalTime(struct tm * info, uint32_t ms = 5000); + // Everything we expect to be implicitly loaded for the sketch #include diff --git a/cores/esp8266/time.cpp b/cores/esp8266/time.cpp index 8e997c72d5..d8308e62d7 100644 --- a/cores/esp8266/time.cpp +++ b/cores/esp8266/time.cpp @@ -20,6 +20,28 @@ * synchronisation of the two through timeshift64 */ +#include + +// https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/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; +} + + +#if !defined(CORE_MOCK) + #include #include <../include/time.h> // See issue #6714 #include @@ -33,7 +55,6 @@ extern "C" { #include #include -#include // configTime() extern "C" { @@ -257,4 +278,6 @@ int settimeofday(const struct timeval* tv, const struct timezone* tz) return 0; } -}; +}; // extern "C" + +#endif // !defined(CORE_MOCK) diff --git a/libraries/LittleFS/examples/LittleFS_Timestamp/LittleFS_Timestamp.ino b/libraries/LittleFS/examples/LittleFS_Timestamp/LittleFS_Timestamp.ino index dfec9ee301..40e02087dc 100644 --- a/libraries/LittleFS/examples/LittleFS_Timestamp/LittleFS_Timestamp.ino +++ b/libraries/LittleFS/examples/LittleFS_Timestamp/LittleFS_Timestamp.ino @@ -19,29 +19,6 @@ long timezone = 2; byte daysavetime = 1; -bool getLocalTime(struct tm * info, uint32_t ms) { - uint32_t count = ms / 10; - time_t now; - - time(&now); - localtime_r(&now, info); - - if (info->tm_year > (2016 - 1900)) { - return true; - } - - while (count--) { - delay(10); - time(&now); - localtime_r(&now, info); - if (info->tm_year > (2016 - 1900)) { - return true; - } - } - return false; -} - - void listDir(const char * dirname) { Serial.printf("Listing directory: %s\n", dirname); diff --git a/tests/host/Makefile b/tests/host/Makefile index 3a5979c312..b7c8d1ce20 100644 --- a/tests/host/Makefile +++ b/tests/host/Makefile @@ -97,6 +97,7 @@ CORE_CPP_FILES := \ HardwareSerial.cpp \ crc32.cpp \ Updater.cpp \ + time.cpp \ ) \ $(addprefix $(abspath $(LIBRARIES_PATH)/ESP8266SdFat/src)/, \ FatLib/FatFile.cpp \