F´ Flight Software - C/C++ Documentation  NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TimerVal.cpp
Go to the documentation of this file.
1 /*
2  * TimerVal.cpp
3  *
4  * Created on: Aug 5, 2015
5  * Author: timothycanham
6  */
7 
8 #include <Svc/Cycle/TimerVal.hpp>
9 #include <cstring>
10 
11 namespace Svc {
12 
13  TimerVal::TimerVal() : Fw::Serializable() {
14  this->m_timerVal.upper = 0;
15  this->m_timerVal.lower = 0;
16  }
17 
18  TimerVal::TimerVal(U32 upper, U32 lower) {
19  this->m_timerVal.upper = upper;
20  this->m_timerVal.lower = lower;
21  }
22 
23  TimerVal::TimerVal(const TimerVal& other) : Fw::Serializable() {
24  this->m_timerVal.upper = other.m_timerVal.upper;
25  this->m_timerVal.lower = other.m_timerVal.lower;
26  }
27 
29  this->m_timerVal.upper = other.m_timerVal.upper;
30  this->m_timerVal.lower = other.m_timerVal.lower;
31  return *this;
32  }
33 
35  return this->m_timerVal;
36  }
37 
38  void TimerVal::take() {
39  Os::IntervalTimer::getRawTime(this->m_timerVal);
40  }
41 
42  U32 TimerVal::diffUSec(const TimerVal& time) {
43  return Os::IntervalTimer::getDiffUsec(this->m_timerVal,time.m_timerVal);
44  }
45 
47  Fw::SerializeStatus stat = buffer.serialize(this->m_timerVal.upper);
48  if (stat != Fw::FW_SERIALIZE_OK) {
49  return stat;
50  }
51  return buffer.serialize(this->m_timerVal.lower);
52  }
53 
55  Fw::SerializeStatus stat = buffer.deserialize(this->m_timerVal.upper);
56  if (stat != Fw::FW_SERIALIZE_OK) {
57  return stat;
58  }
59  return buffer.deserialize(this->m_timerVal.lower);
60  }
61 
62 
63 
64 } /* namespace Svc */
Svc::TimerVal::deserialize
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
Deserialization function.
Definition: TimerVal.cpp:54
Os::IntervalTimer::RawTime
Definition: IntervalTimer.hpp:21
Svc::TimerVal::diffUSec
U32 diffUSec(const TimerVal &time)
Compute difference function.
Definition: TimerVal.cpp:42
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Svc::TimerVal::TimerVal
TimerVal()
Default constructor.
Definition: TimerVal.cpp:13
Fw::SerializeBufferBase::serialize
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Definition: Serializable.cpp:67
Svc::TimerVal::serialize
Fw::SerializeStatus serialize(Fw::SerializeBufferBase &buffer) const
Serialization function.
Definition: TimerVal.cpp:46
TimerVal.hpp
Svc::TimerVal::operator=
TimerVal & operator=(const TimerVal &other)
Timer equal operator.
Definition: TimerVal.cpp:28
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Svc::TimerVal
Serializable class for carrying timer values.
Definition: TimerVal.hpp:22
Svc::TimerVal::take
void take()
Function to store a timer value.
Definition: TimerVal.cpp:38
Os::IntervalTimer::getRawTime
static void getRawTime(RawTime &time)
Definition: IntervalTimer.cpp:9
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:290
Os::IntervalTimer::RawTime::lower
U32 lower
Lower 32-bits part of time value. Platform dependent.
Definition: IntervalTimer.hpp:23
Os::IntervalTimer::RawTime::upper
U32 upper
Upper 32-bits part of time value. Platform dependent.
Definition: IntervalTimer.hpp:22
Svc
Definition: ActiveRateGroupImplCfg.hpp:18
Svc::TimerVal::getTimerVal
Os::IntervalTimer::RawTime getTimerVal() const
Returns the current timer value.
Definition: TimerVal.cpp:34
Os::IntervalTimer::getDiffUsec
U32 getDiffUsec()
Definition: IntervalTimerCommon.cpp:34
Fw
Definition: Buffer.cpp:21