Newer
Older
Tardis / src / Clock.cpp
@Jookia Jookia on 4 Apr 2023 1019 bytes Clock: Add our clock
/*
SPDX-License-Identifier: MIT
Copyright (c) 2023 John Watts and the LuminaSensum contributors
*/

#include "Clock.h"

void clock_setup(void) {
	/* TODO: read RTC */
	return;
}

struct timeval clock_time() {
	/* TODO: read RTC */
	struct timeval time = {0};
	return time;
}

SNTPError clock_sync(NetworkInterface &net) {
	struct timeval time;
	SNTPError err;
	err = sntp(net, "time.google.com", 123, &time);
	if (err != SNTPSuccess) {
		return err;
	}
	/* TODO: set RTC */
	return SNTPSuccess;
}

const char *clock_timestring(const char *format) {
	struct timeval time = clock_time();
	struct tm *local_time = localtime(&time.tv_sec);

	static char buffer[64];
	size_t buffer_size = sizeof(buffer);
	size_t buffer_written;
	buffer_written = strftime(buffer, buffer_size, format, local_time);

	if (buffer_written == 0) {
		// It overflowed, so return something useful
		return "(time overflow)";
	} else {
		return buffer;
	}
}

const char *clock_iso8601string(void) {
	return clock_timestring("%Y-%m-%dT%H:%M:%S");
}