diff --git a/include/Clock.h b/include/Clock.h index 2ed163b..80858f6 100644 --- a/include/Clock.h +++ b/include/Clock.h @@ -12,11 +12,13 @@ void clock_setup(void); -struct timeval clock_time(void); +struct timeval clock_now(void); SNTPError clock_sync(NetworkInterface &net); -const char *clock_timestring(const char *format); -const char *clock_iso8601string(void); +const char *clock_timestring(struct timeval time, const char *format); +const char *clock_iso8601string(struct timeval time); + +const char *clock_iso8601string_now(void); #endif diff --git a/src/Clock.cpp b/src/Clock.cpp index 93a1f8c..529012f 100644 --- a/src/Clock.cpp +++ b/src/Clock.cpp @@ -10,7 +10,7 @@ // mbed reads the RTC at boot, do nothing for now } -struct timeval clock_time() { +struct timeval clock_now() { struct timeval timeval; timeval.tv_sec = time(NULL); timeval.tv_usec = 0; @@ -28,8 +28,7 @@ return SNTPSuccess; } -const char *clock_timestring(const char *format) { - struct timeval time = clock_time(); +const char *clock_timestring(struct timeval time, const char *format) { struct tm *local_time = localtime(&time.tv_sec); static char buffer[64]; @@ -45,6 +44,10 @@ } } -const char *clock_iso8601string(void) { - return clock_timestring("%Y-%m-%dT%H:%M:%S"); +const char *clock_iso8601string(struct timeval time) { + return clock_timestring(time, "%Y-%m-%dT%H:%M:%S"); +} + +const char *clock_iso8601string_now(void) { + return clock_iso8601string(clock_now()); } diff --git a/src/main.cpp b/src/main.cpp index a008a4b..8eb1434 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -49,7 +49,7 @@ tr_info("Project Tardis"); clock_setup(); - tr_info("The time is %s", clock_iso8601string()); + tr_info("The time is %s", clock_iso8601string_now()); mountFilesystem(mainBD, mainFS); @@ -82,13 +82,13 @@ NetworkInterface *net = network_interface(); tr_info("Syncing clock..."); tr_info("The current time is %s", - clock_iso8601string()); + clock_iso8601string_now()); SNTPError err = clock_sync(*net); if (err != SNTPSuccess) { tr_err("Failed to sync clock, error %i", err); } else { tr_info("The new time is %s", - clock_iso8601string()); + clock_iso8601string_now()); } } }