2018-07-13 15:56:37 +02:00
|
|
|
#ifndef FRAMEWORK_OSAL_FREERTOS_TIMEKEEPER_H_
|
|
|
|
#define FRAMEWORK_OSAL_FREERTOS_TIMEKEEPER_H_
|
|
|
|
|
|
|
|
#include <framework/timemanager/Clock.h>
|
2020-05-29 13:15:37 +02:00
|
|
|
|
2020-05-29 13:07:35 +02:00
|
|
|
#include <freertos/FreeRTOS.h>
|
|
|
|
#include <freertos/task.h>
|
2020-04-08 18:08:14 +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 18:08:14 +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_ */
|