F´ Flight Software - C/C++ Documentation  NASA-v2.0.0
A framework for building embedded system applications to NASA flight quality standards.
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 
28  void TimerVal::operator=(const TimerVal& other) {
29  this->m_timerVal.upper = other.m_timerVal.upper;
30  this->m_timerVal.lower = other.m_timerVal.lower;
31  }
32 
34  return this->m_timerVal;
35  }
36 
37  void TimerVal::take(void) {
38  Os::IntervalTimer::getRawTime(this->m_timerVal);
39  }
40 
41  U32 TimerVal::diffUSec(const TimerVal& time) {
42  return Os::IntervalTimer::getDiffUsec(this->m_timerVal,time.m_timerVal);
43  }
44 
46  Fw::SerializeStatus stat = buffer.serialize(this->m_timerVal.upper);
47  if (stat != Fw::FW_SERIALIZE_OK) {
48  return stat;
49  }
50  return buffer.serialize(this->m_timerVal.lower);
51  }
52 
54  Fw::SerializeStatus stat = buffer.deserialize(this->m_timerVal.upper);
55  if (stat != Fw::FW_SERIALIZE_OK) {
56  return stat;
57  }
58  return buffer.deserialize(this->m_timerVal.lower);
59  }
60 
61 
62 
63 } /* namespace Svc */
Svc::TimerVal::deserialize
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
Deserialization function.
Definition: TimerVal.cpp:53
Os::IntervalTimer::RawTime
Definition: IntervalTimer.hpp:21
Svc::TimerVal::diffUSec
U32 diffUSec(const TimerVal &time)
Compute difference function.
Definition: TimerVal.cpp:41
Os::IntervalTimer::getDiffUsec
U32 getDiffUsec(void)
Definition: IntervalTimerCommon.cpp:34
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Svc::TimerVal::operator=
void operator=(const TimerVal &other)
Timer equal operator.
Definition: TimerVal.cpp:28
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:45
TimerVal.hpp
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
Os::IntervalTimer::getRawTime
static void getRawTime(RawTime &time)
Definition: IntervalTimer.cpp:9
Svc::TimerVal::getTimerVal
Os::IntervalTimer::RawTime getTimerVal(void) const
Returns the current timer value.
Definition: TimerVal.cpp:33
Svc::TimerVal::take
void take(void)
Function to store a timer value.
Definition: TimerVal.cpp:37
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
Fw
Definition: Buffer.cpp:21