EIVE upstream #29
@ -47,7 +47,29 @@ ReturnValue_t Clock::setClock(const timeval* time) {
|
|||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t Clock::getClock_timeval(timeval* time) {
|
ReturnValue_t Clock::getClockMonotonic(timeval* time) {
|
||||||
|
#if defined(PLATFORM_WIN)
|
||||||
|
// TODO: Implement with std::chrono::steady_clock
|
||||||
|
#elif defined(PLATFORM_UNIX)
|
||||||
|
timespec timeMonotonic;
|
||||||
|
int status = clock_gettime(CLOCK_MONOTONIC_RAW, &timeMonotonic);
|
||||||
|
if (status != 0) {
|
||||||
|
return returnvalue::FAILED;
|
||||||
|
}
|
||||||
|
time->tv_sec = timeMonotonic.tv_sec;
|
||||||
|
time->tv_usec = timeMonotonic.tv_nsec / 1000.0;
|
||||||
|
return returnvalue::OK;
|
||||||
|
#else
|
||||||
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
|
sif::warning << "Clock::getUptime: Not implemented for found OS!" << std::endl;
|
||||||
|
#else
|
||||||
|
sif::printWarning("Clock::getUptime: Not implemented for found OS!\n");
|
||||||
|
#endif
|
||||||
|
return returnvalue::FAILED;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
ReturnValue_t Clock::getClock(timeval* time) {
|
||||||
#if defined(PLATFORM_WIN)
|
#if defined(PLATFORM_WIN)
|
||||||
auto now = std::chrono::system_clock::now();
|
auto now = std::chrono::system_clock::now();
|
||||||
auto secondsChrono = std::chrono::time_point_cast<std::chrono::seconds>(now);
|
auto secondsChrono = std::chrono::time_point_cast<std::chrono::seconds>(now);
|
||||||
@ -75,6 +97,10 @@ ReturnValue_t Clock::getClock_timeval(timeval* time) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReturnValue_t Clock::getClock_timeval(timeval* time) {
|
||||||
|
return Clock::getClock(time);
|
||||||
|
}
|
||||||
|
|
||||||
ReturnValue_t Clock::getClock_usecs(uint64_t* time) {
|
ReturnValue_t Clock::getClock_usecs(uint64_t* time) {
|
||||||
if (time == nullptr) {
|
if (time == nullptr) {
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
|
Loading…
Reference in New Issue
Block a user