F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DirectiveIdEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DirectiveIdEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for DirectiveId enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
10 #include "Fw/Types/Assert.hpp"
12 
13 namespace Svc {
14 
15  namespace Fpy {
16 
17  // ----------------------------------------------------------------------
18  // Operators
19  // ----------------------------------------------------------------------
20 
21  DirectiveId& DirectiveId ::
23  {
24  this->e = obj.e;
25  return *this;
26  }
27 
30  {
31  this->e = e1;
32  return *this;
33  }
34 
35 #ifdef BUILD_UT
36 
37  std::ostream& operator<<(std::ostream& os, const DirectiveId& obj) {
38  Fw::String s;
39  obj.toString(s);
40  os << s;
41  return os;
42  }
43 
44 #endif
45 
46  // ----------------------------------------------------------------------
47  // Member functions
48  // ----------------------------------------------------------------------
49 
50  bool DirectiveId ::
51  isValid() const
52  {
53  return ((e >= INVALID) && (e <= WAIT_ABS))
54  || ((e >= GOTO) && (e <= STORE));
55  }
56 
60  Fw::Endianness mode
61  ) const
62  {
63  const Fw::SerializeStatus status = buffer.serializeFrom(
64  static_cast<SerialType>(this->e),
65  mode
66  );
67  return status;
68  }
69 
73  Fw::Endianness mode
74  )
75  {
76  SerialType es;
77  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
78  if (status == Fw::FW_SERIALIZE_OK) {
79  this->e = static_cast<T>(es);
80  if (!this->isValid()) {
82  }
83  }
84  return status;
85  }
86 
87 #if FW_SERIALIZABLE_TO_STRING
88 
89  void DirectiveId ::
90  toString(Fw::StringBase& sb) const
91  {
92  Fw::String s;
93  switch (e) {
94  case INVALID:
95  s = "INVALID";
96  break;
97  case WAIT_REL:
98  s = "WAIT_REL";
99  break;
100  case WAIT_ABS:
101  s = "WAIT_ABS";
102  break;
103  case GOTO:
104  s = "GOTO";
105  break;
106  case IF:
107  s = "IF";
108  break;
109  case NO_OP:
110  s = "NO_OP";
111  break;
112  case PUSH_TLM_VAL:
113  s = "PUSH_TLM_VAL";
114  break;
115  case PUSH_PRM:
116  s = "PUSH_PRM";
117  break;
118  case CONST_CMD:
119  s = "CONST_CMD";
120  break;
121  case OR:
122  s = "OR";
123  break;
124  case AND:
125  s = "AND";
126  break;
127  case IEQ:
128  s = "IEQ";
129  break;
130  case INE:
131  s = "INE";
132  break;
133  case ULT:
134  s = "ULT";
135  break;
136  case ULE:
137  s = "ULE";
138  break;
139  case UGT:
140  s = "UGT";
141  break;
142  case UGE:
143  s = "UGE";
144  break;
145  case SLT:
146  s = "SLT";
147  break;
148  case SLE:
149  s = "SLE";
150  break;
151  case SGT:
152  s = "SGT";
153  break;
154  case SGE:
155  s = "SGE";
156  break;
157  case FEQ:
158  s = "FEQ";
159  break;
160  case FNE:
161  s = "FNE";
162  break;
163  case FLT:
164  s = "FLT";
165  break;
166  case FLE:
167  s = "FLE";
168  break;
169  case FGT:
170  s = "FGT";
171  break;
172  case FGE:
173  s = "FGE";
174  break;
175  case NOT:
176  s = "NOT";
177  break;
178  case FPTOSI:
179  s = "FPTOSI";
180  break;
181  case FPTOUI:
182  s = "FPTOUI";
183  break;
184  case SITOFP:
185  s = "SITOFP";
186  break;
187  case UITOFP:
188  s = "UITOFP";
189  break;
190  case IADD:
191  s = "IADD";
192  break;
193  case ISUB:
194  s = "ISUB";
195  break;
196  case IMUL:
197  s = "IMUL";
198  break;
199  case UDIV:
200  s = "UDIV";
201  break;
202  case SDIV:
203  s = "SDIV";
204  break;
205  case UMOD:
206  s = "UMOD";
207  break;
208  case SMOD:
209  s = "SMOD";
210  break;
211  case FADD:
212  s = "FADD";
213  break;
214  case FSUB:
215  s = "FSUB";
216  break;
217  case FMUL:
218  s = "FMUL";
219  break;
220  case FDIV:
221  s = "FDIV";
222  break;
223  case FLOAT_FLOOR_DIV:
224  s = "FLOAT_FLOOR_DIV";
225  break;
226  case FPOW:
227  s = "FPOW";
228  break;
229  case FLOG:
230  s = "FLOG";
231  break;
232  case FMOD:
233  s = "FMOD";
234  break;
235  case FPEXT:
236  s = "FPEXT";
237  break;
238  case FPTRUNC:
239  s = "FPTRUNC";
240  break;
241  case SIEXT_8_64:
242  s = "SIEXT_8_64";
243  break;
244  case SIEXT_16_64:
245  s = "SIEXT_16_64";
246  break;
247  case SIEXT_32_64:
248  s = "SIEXT_32_64";
249  break;
250  case ZIEXT_8_64:
251  s = "ZIEXT_8_64";
252  break;
253  case ZIEXT_16_64:
254  s = "ZIEXT_16_64";
255  break;
256  case ZIEXT_32_64:
257  s = "ZIEXT_32_64";
258  break;
259  case ITRUNC_64_8:
260  s = "ITRUNC_64_8";
261  break;
262  case ITRUNC_64_16:
263  s = "ITRUNC_64_16";
264  break;
265  case ITRUNC_64_32:
266  s = "ITRUNC_64_32";
267  break;
268  case EXIT:
269  s = "EXIT";
270  break;
271  case ALLOCATE:
272  s = "ALLOCATE";
273  break;
274  case STORE_CONST_OFFSET:
275  s = "STORE_CONST_OFFSET";
276  break;
277  case LOAD:
278  s = "LOAD";
279  break;
280  case PUSH_VAL:
281  s = "PUSH_VAL";
282  break;
283  case DISCARD:
284  s = "DISCARD";
285  break;
286  case MEMCMP:
287  s = "MEMCMP";
288  break;
289  case STACK_CMD:
290  s = "STACK_CMD";
291  break;
293  s = "PUSH_TLM_VAL_AND_TIME";
294  break;
295  case PUSH_TIME:
296  s = "PUSH_TIME";
297  break;
298  case SET_FLAG:
299  s = "SET_FLAG";
300  break;
301  case GET_FLAG:
302  s = "GET_FLAG";
303  break;
304  case GET_FIELD:
305  s = "GET_FIELD";
306  break;
307  case PEEK:
308  s = "PEEK";
309  break;
310  case ASSERT:
311  s = "ASSERT";
312  break;
313  case STORE:
314  s = "STORE";
315  break;
316  default:
317  s = "[invalid]";
318  break;
319  }
320  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
321  }
322 
323 #elif FW_ENABLE_TEXT_LOGGING
324 
325  void DirectiveId ::
326  toString(Fw::StringBase& sb) const
327  {
328  sb.format("%" PRIu8 "", e);
329  }
330 
331 #endif
332 
333  }
334 
335 }
Serialization/Deserialization operation was successful.
Fw::SerializeStatus serializeTo(Fw::SerializeBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
U8 SerialType
The serial representation type.
const char * toChar() const
Definition: String.hpp:50
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)
deserialize 8-bit unsigned int
Deserialization data had incorrect values (unexpected data types)
SerializeStatus
forward declaration for string
DirectiveId & operator=(const DirectiveId &obj)
Copy assignment operator (object)
Fw::SerializeStatus deserializeFrom(Fw::SerializeBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
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
T e
The raw enum value.
bool isValid() const
Check raw enum value for validity.
T
The raw enum type.
RateGroupDivider component implementation.
Endianness