From 9ed57a059214ee7935e653dbfbbbb20d90db23b9 Mon Sep 17 00:00:00 2001 From: Develo Date: Fri, 1 Mar 2019 14:39:35 -0300 Subject: [PATCH 1/2] Update time.cpp Migrate configTime() to use sntp_set_timezone_in_seconds() to correctly allow timezone spec in seconds without rounding --- cores/esp8266/time.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cores/esp8266/time.cpp b/cores/esp8266/time.cpp index d8391c420c..c4bca91c00 100644 --- a/cores/esp8266/time.cpp +++ b/cores/esp8266/time.cpp @@ -58,7 +58,8 @@ static void setServer(int id, const char* name_or_ip) } } -void configTime(int timezone, int daylightOffset_sec, const char* server1, const char* server2, const char* server3) + +void configTime(int timezone_sec, int daylightOffset_sec, const char* server1, const char* server2, const char* server3) { sntp_stop(); @@ -66,7 +67,7 @@ void configTime(int timezone, int daylightOffset_sec, const char* server1, const setServer(1, server2); setServer(2, server3); - sntp_set_timezone(timezone/3600); + sntp_set_timezone_in_seconds(timezone_sec); sntp_set_daylight(daylightOffset_sec); sntp_init(); } From 1ee31cb44c3453cfac83a8369f71ddfd0e319fb6 Mon Sep 17 00:00:00 2001 From: devyte Date: Fri, 3 May 2019 12:13:30 -0400 Subject: [PATCH 2/2] Add sntp-lwip2.h for timezone function --- cores/esp8266/sntp-lwip2.cpp | 3 +-- cores/esp8266/sntp-lwip2.h | 10 ++++++++++ cores/esp8266/time.cpp | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 cores/esp8266/sntp-lwip2.h diff --git a/cores/esp8266/sntp-lwip2.cpp b/cores/esp8266/sntp-lwip2.cpp index 5edfa66c63..0dba9a7f8a 100644 --- a/cores/esp8266/sntp-lwip2.cpp +++ b/cores/esp8266/sntp-lwip2.cpp @@ -433,9 +433,8 @@ bool sntp_set_timezone_in_seconds(sint32 timezone) if(timezone >= (-11 * (60 * 60)) || timezone <= (13 * (60 * 60))) { time_zone = timezone; return true; - } else { - return false; } + return false; } /* Sets the timezone in hours. Internally, the timezone is converted to seconds. */ diff --git a/cores/esp8266/sntp-lwip2.h b/cores/esp8266/sntp-lwip2.h new file mode 100644 index 0000000000..5ae697754b --- /dev/null +++ b/cores/esp8266/sntp-lwip2.h @@ -0,0 +1,10 @@ +#ifndef __sntp_lwip2_h__ +#define __sntp_lwip2_h__ + +extern "C" { + +bool sntp_set_timezone_in_seconds(sint32 timezone); + +} + +#endif diff --git a/cores/esp8266/time.cpp b/cores/esp8266/time.cpp index c4bca91c00..001b0ec331 100644 --- a/cores/esp8266/time.cpp +++ b/cores/esp8266/time.cpp @@ -22,6 +22,8 @@ #include "sntp.h" #include "coredecls.h" +#include "sntp-lwip2.h" + extern "C" { #ifndef _TIMEVAL_DEFINED