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 
27  operator=(enum T e1)
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 
56  Fw::SerialBufferBase& buffer,
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 
69  Fw::SerialBufferBase& buffer,
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<enum 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.
Error occurred, retrying may succeed.
Deserialization data had incorrect values (unexpected data types)
virtual SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)=0
Serialize an 8-bit unsigned integer value.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
Receive worked, but there was no data.
SerializeStatus
forward declaration for string
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
Status returned by the send call.
Operation worked as expected.
const char * toChar() const
Convert to a C-style char*.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:39
ByteStreamStatus & operator=(const ByteStreamStatus &obj)
Copy assignment operator (object)
enum T e
The raw enum value.
Endianness
U8 SerialType
The serial representation type.