F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
SerialStatusEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title SerialStatusEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for SerialStatus enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
10 #include "Fw/Types/Assert.hpp"
12 
13 namespace Fw {
14 
15  // ----------------------------------------------------------------------
16  // Operators
17  // ----------------------------------------------------------------------
18 
19  SerialStatus& SerialStatus ::
21  {
22  this->e = obj.e;
23  return *this;
24  }
25 
28  {
29  this->e = e1;
30  return *this;
31  }
32 
33 #ifdef BUILD_UT
34 
35  std::ostream& operator<<(std::ostream& os, const SerialStatus& obj) {
36  Fw::String s;
37  obj.toString(s);
38  os << s;
39  return os;
40  }
41 
42 #endif
43 
44  // ----------------------------------------------------------------------
45  // Member functions
46  // ----------------------------------------------------------------------
47 
48  bool SerialStatus ::
49  isValid() const
50  {
51  return ((e >= OK) && (e <= NO_ROOM_LEFT));
52  }
53 
56  {
57  const Fw::SerializeStatus status = buffer.serialize(
58  static_cast<SerialType>(this->e)
59  );
60  return status;
61  }
62 
65  {
66  SerialType es;
67  Fw::SerializeStatus status = buffer.deserialize(es);
68  if (status == Fw::FW_SERIALIZE_OK) {
69  this->e = static_cast<T>(es);
70  if (!this->isValid()) {
72  }
73  }
74  return status;
75  }
76 
77 #if FW_SERIALIZABLE_TO_STRING
78 
79  void SerialStatus ::
80  toString(Fw::StringBase& sb) const
81  {
82  Fw::String s;
83  switch (e) {
84  case OK:
85  s = "OK";
86  break;
87  case FORMAT_ERROR:
88  s = "FORMAT_ERROR";
89  break;
90  case NO_ROOM_LEFT:
91  s = "NO_ROOM_LEFT";
92  break;
93  default:
94  s = "[invalid]";
95  break;
96  }
97  sb.format("%s (%" PRIi32 ")", s.toChar(), e);
98  }
99 
100 #elif FW_ENABLE_TEXT_LOGGING
101 
102  void SerialStatus ::
103  toString(Fw::StringBase& sb) const
104  {
105  sb.format("%" PRIi32 "", e);
106  }
107 
108 #endif
109 
110 }
Serialization/Deserialization operation was successful.
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Serialization operation succeeded.
const char * toChar() const
Definition: String.hpp:50
Fw::SerializeStatus serialize(Fw::SerializeBufferBase &buffer) const
Serialize raw enum value to SerialType.
Deserialization data had incorrect values (unexpected data types)
Serialization status.
SerializeStatus
forward declaration for string
No room left in the buffer to serialize data.
bool isValid() const
Check raw enum value for validity.
T
The raw enum type.
SerialStatus & operator=(const SerialStatus &obj)
Copy assignment operator (object)
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:55
Data was the wrong format (e.g. wrong packet type)
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
I32 SerialType
The serial representation type.
T e
The raw enum value.
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
Deserialize raw enum value from SerialType.