Newer
Older
Tardis / include / Clock.h
/*
SPDX-License-Identifier: MIT
Copyright (c) 2023 John Watts and the LuminaSensum contributors
*/

#ifndef CLOCK_H
#define CLOCK_H

#include "NetworkInterface.h"
#include "mbed.h"
#include "sntp.h"
#include <chrono>

typedef std::chrono::time_point<Kernel::Clock> kernel_timepoint;
std::chrono::microseconds kernel_to_real_time(kernel_timepoint time);

void clock_setup(void);
SNTPError clock_sync(NetworkInterface &net);

std::chrono::microseconds clock_now(void);

const char *clock_timestring(std::chrono::microseconds, const char *format);
const char *clock_iso8601string(std::chrono::microseconds);
const char *clock_iso8601string_now(void);

#endif