F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TesterHandlers.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title TesterHandlers.cpp
3// \author T. Chieu
4// \brief cpp file for tester handler functions
5//
6// \copyright
7// Copyright (C) 2009-2023 California Institute of Technology.
8// ALL RIGHTS RESERVED. United States Government Sponsorship
9// acknowledged.
10//
11// ======================================================================
12
13#include "test/ut/Tester.hpp"
14
15// ----------------------------------------------------------------------
16// Handlers for typed from ports
17// ----------------------------------------------------------------------
18
19void Tester ::from_arrayArgsOut_handler(const NATIVE_INT_TYPE portNum,
20 const FormalParamArray& a,
21 FormalParamArray& aRef) {
22 this->pushFromPortEntry_arrayArgsOut(a, aRef);
23}
24
25FormalParamArray Tester ::from_arrayReturnOut_handler(const NATIVE_INT_TYPE portNum,
26 const FormalParamArray& a,
27 FormalParamArray& aRef) {
28 this->pushFromPortEntry_arrayReturnOut(a, aRef);
29 return arrayReturnVal.val;
30}
31
32void Tester ::from_enumArgsOut_handler(const NATIVE_INT_TYPE portNum,
33 const FormalParamEnum& en,
34 FormalParamEnum& enRef) {
35 this->pushFromPortEntry_enumArgsOut(en, enRef);
36}
37
38FormalParamEnum Tester ::from_enumReturnOut_handler(const NATIVE_INT_TYPE portNum,
39 const FormalParamEnum& en,
40 FormalParamEnum& enRef) {
41 this->pushFromPortEntry_enumReturnOut(en, enRef);
42 return enumReturnVal.val;
43}
44
45void Tester ::from_noArgsOut_handler(const NATIVE_INT_TYPE portNum) {
46 this->pushFromPortEntry_noArgsOut();
47}
48
49bool Tester ::from_noArgsReturnOut_handler(const NATIVE_INT_TYPE portNum) {
50 this->pushFromPortEntry_noArgsReturnOut();
51 return noParamReturnVal.val;
52}
53
54void Tester ::from_primitiveArgsOut_handler(const NATIVE_INT_TYPE portNum,
55 U32 u32,
56 U32& u32Ref,
57 F32 f32,
58 F32& f32Ref,
59 bool b,
60 bool& bRef) {
61 this->pushFromPortEntry_primitiveArgsOut(u32, u32Ref, f32, f32Ref, b, bRef);
62}
63
64U32 Tester ::from_primitiveReturnOut_handler(const NATIVE_INT_TYPE portNum,
65 U32 u32,
66 U32& u32Ref,
67 F32 f32,
68 F32& f32Ref,
69 bool b,
70 bool& bRef) {
71 this->pushFromPortEntry_primitiveReturnOut(u32, u32Ref, f32, f32Ref, b, bRef);
72 return primitiveReturnVal.val;
73}
74
75void Tester ::from_stringArgsOut_handler(const NATIVE_INT_TYPE portNum,
76 const str80String& str80,
77 str80RefString& str80Ref,
78 const str100String& str100,
79 str100RefString& str100Ref) {
80 this->pushFromPortEntry_stringArgsOut(str80, str80Ref, str100, str100Ref);
81}
82
83void Tester ::from_structArgsOut_handler(const NATIVE_INT_TYPE portNum,
84 const FormalParamStruct& s,
85 FormalParamStruct& sRef) {
86 this->pushFromPortEntry_structArgsOut(s, sRef);
87}
88
89FormalParamStruct Tester ::from_structReturnOut_handler(const NATIVE_INT_TYPE portNum,
90 const FormalParamStruct& s,
91 FormalParamStruct& sRef) {
92 this->pushFromPortEntry_structReturnOut(s, sRef);
93 return structReturnVal.val;
94}
95
96// ----------------------------------------------------------------------
97// Handlers for serial from ports
98// ----------------------------------------------------------------------
99
100void Tester ::from_serialOut_handler(NATIVE_INT_TYPE portNum,
102) {
103 Fw::SerializeStatus status;
104
105 switch (portNum) {
106 case SerialPortIndex::NO_ARGS:
107 status = Fw::FW_SERIALIZE_OK;
108 break;
109
110 case SerialPortIndex::PRIMITIVE:
111 status = Buffer.copyRaw(this->primitiveBuf, Buffer.getBuffCapacity());
112 break;
113
114 case SerialPortIndex::STRING:
115 status = Buffer.copyRaw(this->stringBuf, Buffer.getBuffCapacity());
116 break;
117
118 case SerialPortIndex::ENUM:
119 status = Buffer.copyRaw(this->enumBuf, Buffer.getBuffCapacity());
120 break;
121
122 case SerialPortIndex::ARRAY:
123 status = Buffer.copyRaw(this->arrayBuf, Buffer.getBuffCapacity());
124 break;
125
126 case SerialPortIndex::STRUCT:
127 status = Buffer.copyRaw(this->structBuf, Buffer.getBuffCapacity());
128 break;
129 }
130
131 ASSERT_EQ(status, Fw::FW_SERIALIZE_OK);
132}
133
134// ----------------------------------------------------------------------
135// Handlers for special from ports
136// ----------------------------------------------------------------------
137
138void Tester ::cmdResponseIn(const FwOpcodeType opCode, const U32 cmdSeq, const Fw::CmdResponse response) {
139 this->cmdResp = response;
140}
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
float F32
32-bit floating point
Definition BasicTypes.h:45
U32 FwOpcodeType
Definition FpConfig.h:56
Enum representing a command response.
virtual NATIVE_UINT_TYPE getBuffCapacity() const =0
returns capacity, not current size, of buffer
SerializeStatus copyRaw(SerializeBufferBase &dest, NATIVE_UINT_TYPE size)
directly copies buffer without looking for a size in the stream.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.