Skip to content

Commit

Permalink
import getLocalTime() from esp32/Arduino (#8413)
Browse files Browse the repository at this point in the history
* import getLocalTime() from esp32/Arduino
follows #8407
  • Loading branch information
d-a-v authored Jan 4, 2022
1 parent f26201e commit a05a71f
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 25 deletions.
2 changes: 2 additions & 0 deletions cores/esp8266/Arduino.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 <pgmspace.h>

Expand Down
27 changes: 25 additions & 2 deletions cores/esp8266/time.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,28 @@
* synchronisation of the two through timeshift64
*/

#include <Arduino.h>

// 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 <stdlib.h>
#include <../include/time.h> // See issue #6714
#include <sys/time.h>
Expand All @@ -33,7 +55,6 @@ extern "C" {
#include <coredecls.h>
#include <Schedule.h>

#include <Arduino.h> // configTime()

extern "C" {

Expand Down Expand Up @@ -257,4 +278,6 @@ int settimeofday(const struct timeval* tv, const struct timezone* tz)
return 0;
}

};
}; // extern "C"

#endif // !defined(CORE_MOCK)
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
1 change: 1 addition & 0 deletions tests/host/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ CORE_CPP_FILES := \
HardwareSerial.cpp \
crc32.cpp \
Updater.cpp \
time.cpp \
) \
$(addprefix $(abspath $(LIBRARIES_PATH)/ESP8266SdFat/src)/, \
FatLib/FatFile.cpp \
Expand Down

0 comments on commit a05a71f

Please sign in to comment.