F´ Flight Software - C/C++ Documentation  NASA-v2.0.1
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 
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