2018-07-13 15:56:37 +02:00
|
|
|
#ifndef FRAMEWORK_OSAL_FREERTOS_TIMEKEEPER_H_
|
|
|
|
#define FRAMEWORK_OSAL_FREERTOS_TIMEKEEPER_H_
|
|
|
|
|
2020-08-13 20:53:35 +02:00
|
|
|
#include "../../timemanager/Clock.h"
|
2020-05-29 17:51:15 +02:00
|
|
|
|
2021-07-12 22:42:07 +02:00
|
|
|
#include "FreeRTOS.h"
|
|
|
|
#include "task.h"
|
2020-04-08 19:33:01 +02:00
|
|
|
|
2018-07-13 15:56:37 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* A Class to basically store the time difference between uptime and UTC
|
|
|
|
* so the "time-agnostic" FreeRTOS can keep an UTC Time
|
|
|
|
*
|
|
|
|
* Implemented as Singleton, so the FSFW Clock Implementation (see Clock.cpp)
|
|
|
|
* can use it without having a member.
|
|
|
|
*/
|
|
|
|
|
|
|
|
class Timekeeper {
|
|
|
|
private:
|
|
|
|
Timekeeper();
|
|
|
|
|
|
|
|
timeval offset;
|
|
|
|
|
|
|
|
static Timekeeper * myinstance;
|
|
|
|
public:
|
|
|
|
static Timekeeper * instance();
|
|
|
|
virtual ~Timekeeper();
|
|
|
|
|
|
|
|
static timeval ticksToTimeval(TickType_t ticks);
|
2020-04-08 19:33:01 +02:00
|
|
|
/**
|
|
|
|
* Get elapsed time in system ticks.
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
static TickType_t getTicks();
|
2018-07-13 15:56:37 +02:00
|
|
|
|
|
|
|
const timeval& getOffset() const;
|
|
|
|
void setOffset(const timeval& offset);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* FRAMEWORK_OSAL_FREERTOS_TIMEKEEPER_H_ */
|