F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CmdResponseEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CmdResponseEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for CmdResponse 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 
20  operator=(const CmdResponse& obj)
21  {
22  this->e = obj.e;
23  return *this;
24  }
25 
27  operator=(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 CmdResponse& 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 >= OK) && (e <= BUSY));
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 CmdResponse ::
80  toString(Fw::StringBase& sb) const
81  {
82  Fw::String s;
83  switch (e) {
84  case OK:
85  s = "OK";
86  break;
87  case INVALID_OPCODE:
88  s = "INVALID_OPCODE";
89  break;
90  case VALIDATION_ERROR:
91  s = "VALIDATION_ERROR";
92  break;
93  case FORMAT_ERROR:
94  s = "FORMAT_ERROR";
95  break;
96  case EXECUTION_ERROR:
97  s = "EXECUTION_ERROR";
98  break;
99  case BUSY:
100  s = "BUSY";
101  break;
102  default:
103  s = "[invalid]";
104  break;
105  }
106  sb.format("%s (%" PRIi32 ")", s.toChar(), e);
107  }
108 
109 #elif FW_ENABLE_TEXT_LOGGING
110 
111  void CmdResponse ::
112  toString(Fw::StringBase& sb) const
113  {
114  sb.format("%" PRIi32 "", e);
115  }
116 
117 #endif
118 
119 }
Enum representing a command response.
bool isValid() const
Check raw enum value for validity.
T
The raw enum type.
@ FORMAT_ERROR
Command failed to deserialize.
@ EXECUTION_ERROR
Command had execution error.
@ VALIDATION_ERROR
Command failed validation.
@ OK
Command successfully executed.
@ BUSY
Component busy.
@ INVALID_OPCODE
Invalid opcode dispatched.
Fw::SerializeStatus serialize(Fw::SerializeBufferBase &buffer) const
Serialize raw enum value to SerialType.
T e
The raw enum value.
CmdResponse & operator=(const CmdResponse &obj)
Copy assignment operator (object)
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
Deserialize raw enum value from SerialType.
I32 SerialType
The serial representation type.
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
void format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:56
const char * toChar() const
Definition: String.hpp:50
SerializeStatus
forward declaration for string
@ FW_DESERIALIZE_FORMAT_ERROR
Deserialization data had incorrect values (unexpected data types)
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.