42 lines
1.4 KiB
C
42 lines
1.4 KiB
C
#ifndef _timekeeper_H
|
|
#define _timekeeper_H
|
|
|
|
#include "globals.h"
|
|
#include "rtctime.h"
|
|
#include "irqhandler.h"
|
|
#include "timesync.h"
|
|
#include "gpsread.h"
|
|
#include "if482.h"
|
|
#include "dcf77.h"
|
|
#include "esp_sntp.h"
|
|
|
|
#define HAS_LORA_TIME \
|
|
((HAS_LORA) && ((TIME_SYNC_LORASERVER) || (TIME_SYNC_LORAWAN)))
|
|
|
|
#define SECS_YR_2000 (946684800UL) // the time at the start of y2k
|
|
#define GPS_UTC_DIFF 315964800UL // seconds diff between gps and utc epoch
|
|
#define LEAP_SECS_SINCE_GPSEPOCH 18UL // state of 2021
|
|
|
|
enum timesource_t { _gps, _rtc, _lora, _unsynced, _set };
|
|
|
|
extern const char timeSetSymbols[];
|
|
extern Ticker timesyncer;
|
|
extern timesource_t timeSource;
|
|
extern TaskHandle_t ClockTask;
|
|
extern DRAM_ATTR bool TimePulseTick; // 1sec pps flag set by GPS or RTC
|
|
extern DRAM_ATTR unsigned long lastPPS;
|
|
extern hw_timer_t *ppsIRQ;
|
|
|
|
//void IRAM_ATTR CLOCKIRQ(void);
|
|
//void IRAM_ATTR GPSIRQ(void);
|
|
//void clock_loop(void *pvParameters);
|
|
void setTimeSyncIRQ(void);
|
|
void time_init(void);
|
|
bool timeIsValid(time_t const t);
|
|
void calibrateTime(void);
|
|
bool setMyTime(uint32_t t_sec, uint16_t t_msec, timesource_t mytimesource);
|
|
time_t compileTime(void);
|
|
time_t mkgmtime(const struct tm *ptm);
|
|
TickType_t tx_Ticks(uint32_t framesize, unsigned long baud, uint32_t config,
|
|
int8_t rxPin, int8_t txPins);
|
|
#endif // _timekeeper_H
|