F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
TfvnEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title TfvnEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for Tfvn enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
11 
12 namespace Svc {
13 
14  namespace Ccsds {
15 
16  // ----------------------------------------------------------------------
17  // Operators
18  // ----------------------------------------------------------------------
19 
20  Tfvn& Tfvn ::
21  operator=(const Tfvn& obj)
22  {
23  this->e = obj.e;
24 #ifdef BUILD_UT
25  this->m_serializeValueIsSet = obj.m_serializeValueIsSet;
26  this->m_serializeValue = obj.m_serializeValue;
27 #endif
28  return *this;
29  }
30 
31  Tfvn& Tfvn ::
33  {
34  FW_ASSERT(isValid(e1), static_cast<FwAssertArgType>(e1));
35  this->e = static_cast<enum T>(e1);
36 #ifdef BUILD_UT
37  this->m_serializeValueIsSet = false;
38  this->m_serializeValue = 0;
39 #endif
40  return *this;
41  }
42 
43  Tfvn& Tfvn ::
44  operator=(enum T e1)
45  {
46  FW_ASSERT(isValid(e1), static_cast<FwAssertArgType>(e1));
47  this->e = e1;
48 #ifdef BUILD_UT
49  this->m_serializeValueIsSet = false;
50  this->m_serializeValue = 0;
51 #endif
52  return *this;
53  }
54 
55 #ifdef BUILD_UT
56 
57  std::ostream& operator<<(std::ostream& os, const Tfvn& obj) {
58  Fw::String s;
59  obj.toString(s);
60  os << s;
61  return os;
62  }
63 
64 #endif
65 
66  // ----------------------------------------------------------------------
67  // Member functions
68  // ----------------------------------------------------------------------
69 
70  bool Tfvn ::
71  isValid() const
72  {
73  return Tfvn::isValid(this->e);
74  }
75 
78  Fw::SerialBufferBase& buffer,
79  Fw::Endianness mode
80  ) const
81  {
82  SerialType es = static_cast<SerialType>(this->e);
83 #ifdef BUILD_UT
84  // Unit testing only: On request, override the enum value
85  // with the numeric value, which is allowed to be invalid
86  if (this->m_serializeValueIsSet) {
87  es = this->m_serializeValue;
88  }
89 #endif
90  const Fw::SerializeStatus status = buffer.serializeFrom(es, mode);
91  return status;
92  }
93 
96  Fw::SerialBufferBase& buffer,
97  Fw::Endianness mode
98  )
99  {
100  SerialType es;
101  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
102  if ((status == Fw::FW_SERIALIZE_OK) && !Tfvn::isValid(es)) {
104  }
105  if (status == Fw::FW_SERIALIZE_OK) {
106  this->e = static_cast<enum T>(es);
107  }
108  return status;
109  }
110 
111 #if FW_SERIALIZABLE_TO_STRING
112 
113  void Tfvn ::
114  toString(Fw::StringBase& sb) const
115  {
116  Fw::String s;
117  switch (e) {
118  case TM_TC:
119  s = "TM_TC";
120  break;
121  case AOS:
122  s = "AOS";
123  break;
124  case PROX_ONE:
125  s = "PROX_ONE";
126  break;
127  case USLP:
128  s = "USLP";
129  break;
131  s = "INVALID_UNINITIALIZED";
132  break;
133  default:
134  s = "[invalid]";
135  break;
136  }
137  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
138  }
139 
140 #endif
141 
142 #ifdef BUILD_UT
143 
144  void Tfvn ::
145  setSerializeValue(SerialType serializeValue)
146  {
147  this->m_serializeValue = serializeValue;
148  this->m_serializeValueIsSet = true;
149  }
150 
151 #endif
152 
153  // ----------------------------------------------------------------------
154  // Static functions
155  // ----------------------------------------------------------------------
156 
157  bool Tfvn ::
158  isValid(SerialType serialTypeValue)
159  {
160  return (serialTypeValue <= INVALID_UNINITIALIZED);
161  }
162 
163  }
164 
165 }
Serialization/Deserialization operation was successful.
Advanced Orbiting Systems SDL.
Definition: TfvnEnumAc.hpp:46
Deserialization data had incorrect values (unexpected data types)
Proximity-1 SDL.
Definition: TfvnEnumAc.hpp:48
virtual SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)=0
Serialize an 8-bit unsigned integer value.
SerializeStatus
forward declaration for string
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
bool isValid() const
Check raw enum value for validity.
Definition: TfvnEnumAc.cpp:71
enum T e
The raw enum value.
Definition: TfvnEnumAc.hpp:219
Telemetry and Telecommand SDLs.
Definition: TfvnEnumAc.hpp:44
const char * toChar() const
Convert to a C-style char*.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:58
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
Definition: TfvnEnumAc.cpp:77
Tfvn & operator=(const Tfvn &obj)
Copy assignment operator (object)
Definition: TfvnEnumAc.cpp:21
RateGroupDivider component implementation.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
Definition: TfvnEnumAc.cpp:95
U8 SerialType
The serial representation type.
Definition: TfvnEnumAc.hpp:39
Endianness
Unified Space Data Link Protocol.
Definition: TfvnEnumAc.hpp:50
#define FW_ASSERT(...)
Definition: Assert.hpp:14
Anything equal or higher value is invalid and should not be used.
Definition: TfvnEnumAc.hpp:52
T
The raw enum type.
Definition: TfvnEnumAc.hpp:42
ComCfg::Apid::SerialType SerialType
Definition: TestUtils.cpp:14