F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
ByteStreamStatusEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ByteStreamStatusEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for ByteStreamStatus enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
10 #include "Fw/Types/Assert.hpp"
12 
13 namespace Drv {
14 
15  // ----------------------------------------------------------------------
16  // Operators
17  // ----------------------------------------------------------------------
18 
19  ByteStreamStatus& ByteStreamStatus ::
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 ByteStreamStatus& 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 
49  isValid() const
50  {
51  return ((e >= OP_OK) && (e <= OTHER_ERROR));
52  }
53 
57  Fw::Endianness mode
58  ) const
59  {
60  const Fw::SerializeStatus status = buffer.serializeFrom(
61  static_cast<SerialType>(this->e),
62  mode
63  );
64  return status;
65  }
66 
70  Fw::Endianness mode
71  )
72  {
73  SerialType es;
74  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
75  if (status == Fw::FW_SERIALIZE_OK) {
76  this->e = static_cast<T>(es);
77  if (!this->isValid()) {
79  }
80  }
81  return status;
82  }
83 
84 #if FW_SERIALIZABLE_TO_STRING
85 
86  void ByteStreamStatus ::
87  toString(Fw::StringBase& sb) const
88  {
89  Fw::String s;
90  switch (e) {
91  case OP_OK:
92  s = "OP_OK";
93  break;
94  case SEND_RETRY:
95  s = "SEND_RETRY";
96  break;
97  case RECV_NO_DATA:
98  s = "RECV_NO_DATA";
99  break;
100  case OTHER_ERROR:
101  s = "OTHER_ERROR";
102  break;
103  default:
104  s = "[invalid]";
105  break;
106  }
107  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
108  }
109 
110 #elif FW_ENABLE_TEXT_LOGGING
111 
112  void ByteStreamStatus ::
113  toString(Fw::StringBase& sb) const
114  {
115  sb.format("%" PRIu8 "", e);
116  }
117 
118 #endif
119 
120 }
Serialization/Deserialization operation was successful.
bool isValid() const
Check raw enum value for validity.
Fw::SerializeStatus serializeTo(Fw::SerializeBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
const char * toChar() const
Definition: String.hpp:50
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)
deserialize 8-bit unsigned int
Error occurred, retrying may succeed.
Deserialization data had incorrect values (unexpected data types)
Receive worked, but there was no data.
SerializeStatus
forward declaration for string
Status returned by the send call.
Operation worked as expected.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)
serialize 8-bit unsigned int
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:55
ByteStreamStatus & operator=(const ByteStreamStatus &obj)
Copy assignment operator (object)
Endianness
U8 SerialType
The serial representation type.
Fw::SerializeStatus deserializeFrom(Fw::SerializeBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.