F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
ChannelParamsSerializableAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ChannelParamsSerializableAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for ChannelParams struct
5 // ======================================================================
6 
7 #include "Fw/Types/Assert.hpp"
9 
10 namespace Svc {
11 
12  namespace Ccsds {
13 
14  namespace Cfdp {
15 
16  // ----------------------------------------------------------------------
17  // Constructors
18  // ----------------------------------------------------------------------
19 
22  Serializable(),
23  m_ack_limit(),
24  m_nack_limit(),
25  m_ack_timer(),
26  m_inactivity_timer(),
27  m_dequeue_enabled(),
28  m_move_dir(m___fprime_ac_move_dir_buffer, sizeof m___fprime_ac_move_dir_buffer, Fw::String("")),
29  m_max_outgoing_pdus_per_cycle(),
30  m_tmp_dir(m___fprime_ac_tmp_dir_buffer, sizeof m___fprime_ac_tmp_dir_buffer, Fw::String("")),
31  m_fail_dir(m___fprime_ac_fail_dir_buffer, sizeof m___fprime_ac_fail_dir_buffer, Fw::String(""))
32  {
33 
34  }
35 
38  U8 ack_limit,
39  U8 nack_limit,
40  U32 ack_timer,
41  U32 inactivity_timer,
42  Fw::Enabled::T dequeue_enabled,
43  const Fw::StringBase& move_dir,
44  U32 max_outgoing_pdus_per_cycle,
45  const Fw::StringBase& tmp_dir,
46  const Fw::StringBase& fail_dir
47  ) :
48  Serializable(),
49  m_ack_limit(ack_limit),
50  m_nack_limit(nack_limit),
51  m_ack_timer(ack_timer),
52  m_inactivity_timer(inactivity_timer),
53  m_dequeue_enabled(dequeue_enabled),
54  m_move_dir(m___fprime_ac_move_dir_buffer, sizeof m___fprime_ac_move_dir_buffer, move_dir),
55  m_max_outgoing_pdus_per_cycle(max_outgoing_pdus_per_cycle),
56  m_tmp_dir(m___fprime_ac_tmp_dir_buffer, sizeof m___fprime_ac_tmp_dir_buffer, tmp_dir),
57  m_fail_dir(m___fprime_ac_fail_dir_buffer, sizeof m___fprime_ac_fail_dir_buffer, fail_dir)
58  {
59 
60  }
61 
64  Serializable(),
65  m_ack_limit(obj.m_ack_limit),
66  m_nack_limit(obj.m_nack_limit),
67  m_ack_timer(obj.m_ack_timer),
68  m_inactivity_timer(obj.m_inactivity_timer),
69  m_dequeue_enabled(obj.m_dequeue_enabled),
70  m_move_dir(m___fprime_ac_move_dir_buffer, sizeof m___fprime_ac_move_dir_buffer, obj.m_move_dir),
71  m_max_outgoing_pdus_per_cycle(obj.m_max_outgoing_pdus_per_cycle),
72  m_tmp_dir(m___fprime_ac_tmp_dir_buffer, sizeof m___fprime_ac_tmp_dir_buffer, obj.m_tmp_dir),
73  m_fail_dir(m___fprime_ac_fail_dir_buffer, sizeof m___fprime_ac_fail_dir_buffer, obj.m_fail_dir)
74  {
75 
76  }
77 
78  // ----------------------------------------------------------------------
79  // Operators
80  // ----------------------------------------------------------------------
81 
84  {
85  if (this == &obj) {
86  return *this;
87  }
88 
90  return *this;
91  }
92 
93  bool ChannelParams ::
94  operator==(const ChannelParams& obj) const
95  {
96  if (this == &obj) { return true; }
97  return (
98  (this->m_ack_limit == obj.m_ack_limit) &&
99  (this->m_nack_limit == obj.m_nack_limit) &&
100  (this->m_ack_timer == obj.m_ack_timer) &&
101  (this->m_inactivity_timer == obj.m_inactivity_timer) &&
102  (this->m_dequeue_enabled == obj.m_dequeue_enabled) &&
103  (this->m_move_dir == obj.m_move_dir) &&
104  (this->m_max_outgoing_pdus_per_cycle == obj.m_max_outgoing_pdus_per_cycle) &&
105  (this->m_tmp_dir == obj.m_tmp_dir) &&
106  (this->m_fail_dir == obj.m_fail_dir)
107  );
108  }
109 
110  bool ChannelParams ::
111  operator!=(const ChannelParams& obj) const
112  {
113  return !(*this == obj);
114  }
115 
116 #ifdef BUILD_UT
117 
118  std::ostream& operator<<(std::ostream& os, const ChannelParams& obj) {
119  Fw::String s;
120  obj.toString(s);
121  os << s.toChar();
122  return os;
123  }
124 
125 #endif
126 
127  // ----------------------------------------------------------------------
128  // Member functions
129  // ----------------------------------------------------------------------
130 
133  Fw::SerialBufferBase& buffer,
134  Fw::Endianness mode
135  ) const
136  {
137  Fw::SerializeStatus status;
138 
139  status = buffer.serializeFrom(this->m_ack_limit, mode);
140  if (status != Fw::FW_SERIALIZE_OK) {
141  return status;
142  }
143  status = buffer.serializeFrom(this->m_nack_limit, mode);
144  if (status != Fw::FW_SERIALIZE_OK) {
145  return status;
146  }
147  status = buffer.serializeFrom(this->m_ack_timer, mode);
148  if (status != Fw::FW_SERIALIZE_OK) {
149  return status;
150  }
151  status = buffer.serializeFrom(this->m_inactivity_timer, mode);
152  if (status != Fw::FW_SERIALIZE_OK) {
153  return status;
154  }
155  status = buffer.serializeFrom(this->m_dequeue_enabled, mode);
156  if (status != Fw::FW_SERIALIZE_OK) {
157  return status;
158  }
159  status = buffer.serializeFrom(this->m_move_dir, mode);
160  if (status != Fw::FW_SERIALIZE_OK) {
161  return status;
162  }
163  status = buffer.serializeFrom(this->m_max_outgoing_pdus_per_cycle, mode);
164  if (status != Fw::FW_SERIALIZE_OK) {
165  return status;
166  }
167  status = buffer.serializeFrom(this->m_tmp_dir, mode);
168  if (status != Fw::FW_SERIALIZE_OK) {
169  return status;
170  }
171  status = buffer.serializeFrom(this->m_fail_dir, mode);
172  if (status != Fw::FW_SERIALIZE_OK) {
173  return status;
174  }
175 
176  return status;
177  }
178 
181  Fw::SerialBufferBase& buffer,
182  Fw::Endianness mode
183  )
184  {
185  Fw::SerializeStatus status;
186 
187  status = buffer.deserializeTo(this->m_ack_limit, mode);
188  if (status != Fw::FW_SERIALIZE_OK) {
189  return status;
190  }
191  status = buffer.deserializeTo(this->m_nack_limit, mode);
192  if (status != Fw::FW_SERIALIZE_OK) {
193  return status;
194  }
195  status = buffer.deserializeTo(this->m_ack_timer, mode);
196  if (status != Fw::FW_SERIALIZE_OK) {
197  return status;
198  }
199  status = buffer.deserializeTo(this->m_inactivity_timer, mode);
200  if (status != Fw::FW_SERIALIZE_OK) {
201  return status;
202  }
203  status = buffer.deserializeTo(this->m_dequeue_enabled, mode);
204  if (status != Fw::FW_SERIALIZE_OK) {
205  return status;
206  }
207  status = buffer.deserializeTo(this->m_move_dir, mode);
208  if (status != Fw::FW_SERIALIZE_OK) {
209  return status;
210  }
211  status = buffer.deserializeTo(this->m_max_outgoing_pdus_per_cycle, mode);
212  if (status != Fw::FW_SERIALIZE_OK) {
213  return status;
214  }
215  status = buffer.deserializeTo(this->m_tmp_dir, mode);
216  if (status != Fw::FW_SERIALIZE_OK) {
217  return status;
218  }
219  status = buffer.deserializeTo(this->m_fail_dir, mode);
220  if (status != Fw::FW_SERIALIZE_OK) {
221  return status;
222  }
223 
224  return status;
225  }
226 
229  {
230  FwSizeType size = 0;
231  size += sizeof(U8);
232  size += sizeof(U8);
233  size += sizeof(U32);
234  size += sizeof(U32);
236  size += this->m_move_dir.serializedSize();
237  size += sizeof(U32);
238  size += this->m_tmp_dir.serializedSize();
239  size += this->m_fail_dir.serializedSize();
240  return size;
241  }
242 
243 #if FW_SERIALIZABLE_TO_STRING
244 
245  void ChannelParams ::
246  toString(Fw::StringBase& sb) const
247  {
248  Fw::String tmp;
249  sb = "( ";
250 
251  // Format ack_limit
252  sb += "ack_limit = ";
253  tmp.format("%" PRIu8 "", this->m_ack_limit);
254  sb += tmp;
255  sb += ", ";
256 
257  // Format nack_limit
258  sb += "nack_limit = ";
259  tmp.format("%" PRIu8 "", this->m_nack_limit);
260  sb += tmp;
261  sb += ", ";
262 
263  // Format ack_timer
264  sb += "ack_timer = ";
265  tmp.format("%" PRIu32 "", this->m_ack_timer);
266  sb += tmp;
267  sb += ", ";
268 
269  // Format inactivity_timer
270  sb += "inactivity_timer = ";
271  tmp.format("%" PRIu32 "", this->m_inactivity_timer);
272  sb += tmp;
273  sb += ", ";
274 
275  // Format dequeue_enabled
276  sb += "dequeue_enabled = ";
277  this->m_dequeue_enabled.toString(tmp);
278  sb += tmp;
279  sb += ", ";
280 
281  // Format move_dir
282  sb += "move_dir = ";
283  sb += this->m_move_dir;
284  sb += ", ";
285 
286  // Format max_outgoing_pdus_per_cycle
287  sb += "max_outgoing_pdus_per_cycle = ";
288  tmp.format("%" PRIu32 "", this->m_max_outgoing_pdus_per_cycle);
289  sb += tmp;
290  sb += ", ";
291 
292  // Format tmp_dir
293  sb += "tmp_dir = ";
294  sb += this->m_tmp_dir;
295  sb += ", ";
296 
297  // Format fail_dir
298  sb += "fail_dir = ";
299  sb += this->m_fail_dir;
300  sb += " )";
301  }
302 
303 #endif
304 
305  // ----------------------------------------------------------------------
306  // Setter functions
307  // ----------------------------------------------------------------------
308 
309  void ChannelParams ::
311  U8 ack_limit,
312  U8 nack_limit,
313  U32 ack_timer,
314  U32 inactivity_timer,
315  Fw::Enabled::T dequeue_enabled,
316  const Fw::StringBase& move_dir,
317  U32 max_outgoing_pdus_per_cycle,
318  const Fw::StringBase& tmp_dir,
319  const Fw::StringBase& fail_dir
320  )
321  {
322  this->m_ack_limit = ack_limit;
323  this->m_nack_limit = nack_limit;
324  this->m_ack_timer = ack_timer;
325  this->m_inactivity_timer = inactivity_timer;
326  this->m_dequeue_enabled = dequeue_enabled;
327  this->m_move_dir = move_dir;
328  this->m_max_outgoing_pdus_per_cycle = max_outgoing_pdus_per_cycle;
329  this->m_tmp_dir = tmp_dir;
330  this->m_fail_dir = fail_dir;
331  }
332 
333  void ChannelParams ::
334  set_ack_limit(U8 ack_limit)
335  {
336  this->m_ack_limit = ack_limit;
337  }
338 
339  void ChannelParams ::
340  set_nack_limit(U8 nack_limit)
341  {
342  this->m_nack_limit = nack_limit;
343  }
344 
345  void ChannelParams ::
346  set_ack_timer(U32 ack_timer)
347  {
348  this->m_ack_timer = ack_timer;
349  }
350 
351  void ChannelParams ::
352  set_inactivity_timer(U32 inactivity_timer)
353  {
354  this->m_inactivity_timer = inactivity_timer;
355  }
356 
357  void ChannelParams ::
359  {
360  this->m_dequeue_enabled = dequeue_enabled;
361  }
362 
363  void ChannelParams ::
365  {
366  this->m_move_dir = move_dir;
367  }
368 
369  void ChannelParams ::
370  set_max_outgoing_pdus_per_cycle(U32 max_outgoing_pdus_per_cycle)
371  {
372  this->m_max_outgoing_pdus_per_cycle = max_outgoing_pdus_per_cycle;
373  }
374 
375  void ChannelParams ::
377  {
378  this->m_tmp_dir = tmp_dir;
379  }
380 
381  void ChannelParams ::
383  {
384  this->m_fail_dir = fail_dir;
385  }
386 
387  }
388 
389  }
390 
391 }
Serialization/Deserialization operation was successful.
void set_ack_timer(U32 ack_timer)
Set member ack_timer.
The size of the serial representation.
bool operator!=(const ChannelParams &obj) const
Inequality operator.
PlatformSizeType FwSizeType
StringTemplate< FW_FIXED_LENGTH_STRING_SIZE > String
Definition: String.hpp:14
void set_ack_limit(U8 ack_limit)
Set member ack_limit.
void set_inactivity_timer(U32 inactivity_timer)
Set member inactivity_timer.
void set_tmp_dir(const Fw::StringBase &tmp_dir)
Set member tmp_dir.
FwSizeType serializedSize() const
Get the dynamic serialized size of the struct.
void set_nack_limit(U8 nack_limit)
Set member nack_limit.
ChannelParams & operator=(const ChannelParams &obj)
Copy assignment operator.
virtual SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)=0
Serialize an 8-bit unsigned integer value.
ChannelParams()
Constructor (default value)
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialization.
SerializeStatus
forward declaration for string
SizeType serializedSize() const
void set_move_dir(const Fw::StringBase &move_dir)
Set member move_dir.
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
void set_fail_dir(const Fw::StringBase &fail_dir)
Set member fail_dir.
void set_dequeue_enabled(Fw::Enabled::T dequeue_enabled)
Set member dequeue_enabled.
const char * toChar() const
Convert to a C-style char*.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:58
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:54
Structure for the configured array of CFDP channels.
void set(U8 ack_limit, U8 nack_limit, U32 ack_timer, U32 inactivity_timer, Fw::Enabled::T dequeue_enabled, const Fw::StringBase &move_dir, U32 max_outgoing_pdus_per_cycle, const Fw::StringBase &tmp_dir, const Fw::StringBase &fail_dir)
Set all members.
bool operator==(const ChannelParams &obj) const
Equality operator.
RateGroupDivider component implementation.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialization.
Implementation of malloc based allocator.
Endianness
T
The raw enum type.
void set_max_outgoing_pdus_per_cycle(U32 max_outgoing_pdus_per_cycle)
Set member max_outgoing_pdus_per_cycle.