32 lines
		
	
	
		
			966 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			966 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _TIMESYNC_H
 | 
						|
#define _TIMESYNC_H
 | 
						|
 | 
						|
#include "globals.h"
 | 
						|
#include "irqhandler.h"
 | 
						|
#include "timekeeper.h"
 | 
						|
 | 
						|
#define TIME_SYNC_FRAME_LENGTH 0x07 // timeserver answer frame length [bytes]
 | 
						|
#define TIME_SYNC_FIXUP 16 // compensation for 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
 | 
						|
#define GPS_UTC_DIFF 315964800
 | 
						|
 | 
						|
enum timesync_t {
 | 
						|
  timesync_tx,
 | 
						|
  timesync_rx,
 | 
						|
  gwtime_sec,
 | 
						|
  gwtime_msec,
 | 
						|
  gwtime_tzsec,
 | 
						|
  no_of_timestamps
 | 
						|
};
 | 
						|
 | 
						|
void timesync_init(void);
 | 
						|
void send_timesync_req(void);
 | 
						|
int recv_timesync_ans(const uint8_t buf[], uint8_t buf_len);
 | 
						|
void store_timestamp(uint32_t timestamp, timesync_t timestamp_type);
 | 
						|
void IRAM_ATTR process_timesync_req(void *taskparameter);
 | 
						|
void IRAM_ATTR process_timesync_req(void *pVoidUserUTCTime, int flagSuccess);
 | 
						|
 | 
						|
#endif
 |