ESP32-PaxCounter/include/timesync.h

31 lines
937 B
C
Raw Normal View History

2019-03-31 19:13:06 +02:00
#ifndef _TIMESYNC_H
#define _TIMESYNC_H
2019-03-09 00:53:11 +01:00
2019-03-12 23:50:02 +01:00
#include <chrono>
2019-03-09 00:53:11 +01:00
#include "globals.h"
2019-03-31 19:13:06 +02:00
#include "irqhandler.h"
2019-03-09 00:53:11 +01:00
#include "timekeeper.h"
//#define TIME_SYNC_TRIGGER 100 // threshold for time sync [milliseconds]
#define TIME_SYNC_FRAME_LENGTH 0x07 // timeserver answer frame length [bytes]
#define TIME_SYNC_FIXUP 16 // empirical calibration to fixup processing time [milliseconds]
#define TIMEREQUEST_MAX_SEQNO 0xfe // threshold for wrap around seqno
#define TIMEREQUEST_FINISH \
(TIMEREQUEST_MAX_SEQNO + 1) // marker for end of timesync handshake
2019-03-09 00:53:11 +01:00
enum timesync_t {
timesync_tx,
timesync_rx,
gwtime_sec,
gwtime_msec,
no_of_timestamps
};
2019-04-07 16:13:04 +02:00
void timesync_init(void);
2019-03-12 23:50:02 +01:00
void send_timesync_req(void);
int recv_timesync_ans(const uint8_t buf[], uint8_t buf_len);
2019-03-12 23:50:02 +01:00
void process_timesync_req(void *taskparameter);
void store_timestamp(uint32_t timestamp, timesync_t timestamp_type);
2019-03-09 00:53:11 +01:00
#endif