F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
PolyPortAc.hpp
Go to the documentation of this file.
1 /*
2  * PolyPort.hpp
3  *
4  * Created on: Wednesday, 14 October 2020
5  * Author: mstarch
6  *
7  */
8 #ifndef SVC_POLY_PORT_HPP_
9 #define SVC_POLY_PORT_HPP_
10 
11 #include <cstring>
12 #include <cstdio>
13 #include <FpConfig.hpp>
17 #include <Fw/Types/BasicTypes.hpp>
19 #include <Fw/Types/StringType.hpp>
20 #include <Fw/Types/PolyType.hpp>
21 #include <Fw/Time/Time.hpp>
22 
23 
24 namespace Svc {
25 
26  typedef enum {
27  MEASUREMENT_OK, // Measurement was good
28  MEASUREMENT_FAILURE, // Failure to retrieve measurement
29  MEASUREMENT_STALE, // Measurement is stale
32 
35 
37  public:
38  enum {
40  };
41  typedef void (*CompFuncPtr)(Fw::PassiveComponentBase* callComp, NATIVE_INT_TYPE portNum, U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val);
42 
43  InputPolyPort(void);
44  void init(void);
45  void addCallComp(Fw::PassiveComponentBase* callComp, CompFuncPtr funcPtr);
46  void invoke(U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val);
47  protected:
48  private:
49  CompFuncPtr m_func;
50 #if FW_PORT_SERIALIZATION == 1
51  Fw::SerializeStatus invokeSerial(Fw::SerializeBufferBase &buffer);
52 #endif
53 };
56 
58  public:
59  OutputPolyPort(void);
60  void init(void);
61  void addCallPort(InputPolyPort* callPort);
62  void invoke(U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val);
63  protected:
64  private:
65  InputPolyPort* m_port;
66  };
67 } // end namespace Svc
68 #endif /* SVC_POLY_PORT_HPP_ */
69 
StringType.hpp
Declares ISF string base class.
InputPortBase.hpp
PassiveComponentBase.hpp
Fw::Time
Definition: Time.hpp:10
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Serializable.hpp
Svc::OutputPolyPort::OutputPolyPort
OutputPolyPort(void)
Definition: PolyPortAc.cpp:102
Svc::OutputPolyPort
Definition: PolyPortAc.hpp:57
Svc::InputPolyPort::invoke
void invoke(U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)
invoke port interface
Definition: PolyPortAc.cpp:52
Svc::OutputPolyPort::init
void init(void)
Definition: PolyPortAc.cpp:107
Svc::OutputPolyPort::invoke
void invoke(U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)
Definition: PolyPortAc.cpp:121
Fw::PassiveComponentBase
Definition: PassiveComponentBase.hpp:10
Svc::InputPolyPort::InputPolyPort
InputPolyPort(void)
constructor
Definition: PolyPortAc.cpp:33
Svc::MeasurementStatus_MAX
@ MeasurementStatus_MAX
Definition: PolyPortAc.hpp:30
Svc::InputPolyPort::CompFuncPtr
void(* CompFuncPtr)(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)
port callback definition
Definition: PolyPortAc.hpp:41
Svc::InputPolyPort::init
void init(void)
initialization function
Definition: PolyPortAc.cpp:38
Fw::InputPortBase
Definition: InputPortBase.hpp:14
Svc::MeasurementStatus
MeasurementStatus
Definition: PolyPortAc.hpp:26
Svc::MEASUREMENT_OK
@ MEASUREMENT_OK
Definition: PolyPortAc.hpp:27
OutputPortBase.hpp
FpConfig.hpp
ISF configuration file.
Fw::PolyType
Definition: PolyType.hpp:12
PolyType.hpp
Fw::OutputPortBase
Definition: OutputPortBase.hpp:13
Svc::InputPolyPort
Definition: PolyPortAc.hpp:36
Svc
Definition: ActiveLoggerComponentAc.cpp:22
Svc::MEASUREMENT_FAILURE
@ MEASUREMENT_FAILURE
Definition: PolyPortAc.hpp:28
BasicTypes.hpp
Declares ISF basic types.
Svc::InputPolyPort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: PolyPortAc.hpp:39
Time.hpp
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Svc::MEASUREMENT_STALE
@ MEASUREMENT_STALE
Definition: PolyPortAc.hpp:29
Fw::Time::SERIALIZED_SIZE
@ SERIALIZED_SIZE
Definition: Time.hpp:14
Fw::PolyType::SERIALIZED_SIZE
@ SERIALIZED_SIZE
stored serialized size
Definition: PolyType.hpp:158
Svc::InputPolyPort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: PolyPortAc.cpp:42
Svc::OutputPolyPort::addCallPort
void addCallPort(InputPolyPort *callPort)
Definition: PolyPortAc.cpp:111