new stopwatch :-)
This commit is contained in:
@ -3,8 +3,11 @@
|
||||
#include <stdlib.h>
|
||||
#include "Timekeeper.h"
|
||||
|
||||
extern "C" {
|
||||
#include <FreeRTOS.h>
|
||||
#include <task.h>
|
||||
}
|
||||
|
||||
|
||||
//TODO sanitize input?
|
||||
//TODO much of this code can be reused for tick-only systems
|
||||
@ -56,7 +59,6 @@ ReturnValue_t Clock::getUptime(timeval* uptime) {
|
||||
|
||||
timeval Clock::getUptime() {
|
||||
TickType_t ticksSinceStart = xTaskGetTickCount();
|
||||
|
||||
return Timekeeper::ticksToTimeval(ticksSinceStart);
|
||||
}
|
||||
|
||||
|
@ -1,20 +1,24 @@
|
||||
#include "Timekeeper.h"
|
||||
#include <FreeRTOSConfig.h>
|
||||
/**
|
||||
* @file Timekeeper.cpp
|
||||
* @date
|
||||
*/
|
||||
|
||||
Timekeeper::Timekeeper() :
|
||||
offset( { 0, 0 }) {
|
||||
// TODO Auto-generated constructor stub
|
||||
#include <framework/osal/FreeRTOS/Timekeeper.h>
|
||||
|
||||
extern "C" {
|
||||
#include <task.h>
|
||||
}
|
||||
|
||||
Timekeeper * Timekeeper::myinstance = NULL;
|
||||
Timekeeper * Timekeeper::myinstance = nullptr;
|
||||
|
||||
Timekeeper::Timekeeper() : offset( { 0, 0 }) {}
|
||||
|
||||
const timeval& Timekeeper::getOffset() const {
|
||||
return offset;
|
||||
}
|
||||
|
||||
Timekeeper* Timekeeper::instance() {
|
||||
if (myinstance == NULL) {
|
||||
if (myinstance == nullptr) {
|
||||
myinstance = new Timekeeper();
|
||||
}
|
||||
return myinstance;
|
||||
@ -24,9 +28,7 @@ void Timekeeper::setOffset(const timeval& offset) {
|
||||
this->offset = offset;
|
||||
}
|
||||
|
||||
Timekeeper::~Timekeeper() {
|
||||
// TODO Auto-generated destructor stub
|
||||
}
|
||||
Timekeeper::~Timekeeper() {}
|
||||
|
||||
timeval Timekeeper::ticksToTimeval(TickType_t ticks) {
|
||||
timeval uptime;
|
||||
@ -40,3 +42,7 @@ timeval Timekeeper::ticksToTimeval(TickType_t ticks) {
|
||||
|
||||
return uptime;
|
||||
}
|
||||
|
||||
TickType_t Timekeeper::getTicks() {
|
||||
return xTaskGetTickCount();
|
||||
}
|
||||
|
@ -2,8 +2,10 @@
|
||||
#define FRAMEWORK_OSAL_FREERTOS_TIMEKEEPER_H_
|
||||
|
||||
#include <framework/timemanager/Clock.h>
|
||||
|
||||
extern "C" {
|
||||
#include <FreeRTOS.h>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* A Class to basically store the time difference between uptime and UTC
|
||||
@ -25,6 +27,11 @@ public:
|
||||
virtual ~Timekeeper();
|
||||
|
||||
static timeval ticksToTimeval(TickType_t ticks);
|
||||
/**
|
||||
* Get elapsed time in system ticks.
|
||||
* @return
|
||||
*/
|
||||
static TickType_t getTicks();
|
||||
|
||||
const timeval& getOffset() const;
|
||||
void setOffset(const timeval& offset);
|
||||
|
Reference in New Issue
Block a user