F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
IntervalTimer.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title Os/IntervalTimer.cpp
3// \brief Implementation for Os::IntervalTimer
4// ======================================================================
5
7#include <cstring>
8
9namespace Os {
10
11 IntervalTimer::IntervalTimer() : m_startTime(), m_stopTime() {}
12
14 this->m_startTime.now();
15 }
16
18 this->m_stopTime.now();
19 }
20
22 U32 result = 0;
23 Os::RawTime::Status status = this->m_stopTime.getDiffUsec(this->m_startTime, result);
25 // If the operation fails due to overflow, we return the max value
26 result = std::numeric_limits<U32>::max();
27 }
28 return result;
29 }
30
32 return this->m_stopTime.getTimeInterval(this->m_startTime, interval);
33 }
34}
U32 getDiffUsec() const
Get the difference between start and stop times in microseconds.
void stop()
Capture the stop time of the interval.
void start()
Capture the start time of the interval.
IntervalTimer()
Constructor.
Os::RawTime::Status getTimeInterval(Fw::TimeInterval &interval) const
Get the time interval between the start and stop times.
Status getDiffUsec(const RawTime &other, U32 &result) const
Calculate the difference in microseconds between two RawTime objects.
Definition RawTime.cpp:56
Status now() override
Get the current time.
Definition RawTime.cpp:36
Status getTimeInterval(const Os::RawTime &other, Fw::TimeInterval &interval) const override
Calculate the time interval between this and another raw time.
Definition RawTime.cpp:41
@ OP_OVERFLOW
Operation result caused an overflow.
Definition RawTime.hpp:29