F´ Flight Software - C/C++ Documentation  NASA-v1.5.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
CyclePortAc.hpp
Go to the documentation of this file.
1 /*
2  * CyclePort.hpp
3  *
4  * Created on: Wednesday, 14 October 2020
5  * Author: mstarch
6  *
7  */
8 #ifndef SVC_CYCLE_PORT_HPP_
9 #define SVC_CYCLE_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 <Svc/Cycle/TimerVal.hpp>
21 
22 
23 namespace Svc {
24 
27 
29  public:
30  enum {
32  };
33  typedef void (*CompFuncPtr)(Fw::PassiveComponentBase* callComp, NATIVE_INT_TYPE portNum, Svc::TimerVal &cycleStart);
34 
35  InputCyclePort(void);
36  void init(void);
37  void addCallComp(Fw::PassiveComponentBase* callComp, CompFuncPtr funcPtr);
38  void invoke(Svc::TimerVal &cycleStart);
39  protected:
40  private:
41  CompFuncPtr m_func;
42 #if FW_PORT_SERIALIZATION == 1
43  Fw::SerializeStatus invokeSerial(Fw::SerializeBufferBase &buffer);
44 #endif
45 };
48 
50  public:
51  OutputCyclePort(void);
52  void init(void);
53  void addCallPort(InputCyclePort* callPort);
54  void invoke(Svc::TimerVal &cycleStart);
55  protected:
56  private:
57  InputCyclePort* m_port;
58  };
59 } // end namespace Svc
60 #endif /* SVC_CYCLE_PORT_HPP_ */
61 
StringType.hpp
Declares ISF string base class.
InputPortBase.hpp
PassiveComponentBase.hpp
Svc::OutputCyclePort::init
void init(void)
Definition: CyclePortAc.cpp:89
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Serializable.hpp
TimerVal.hpp
Svc::InputCyclePort::InputCyclePort
InputCyclePort(void)
constructor
Definition: CyclePortAc.cpp:33
Svc::OutputCyclePort::OutputCyclePort
OutputCyclePort(void)
Definition: CyclePortAc.cpp:84
Svc::InputCyclePort
Definition: CyclePortAc.hpp:28
Fw::PassiveComponentBase
Definition: PassiveComponentBase.hpp:10
Svc::TimerVal
Serializable class for carrying timer values.
Definition: TimerVal.hpp:22
Svc::OutputCyclePort::invoke
void invoke(Svc::TimerVal &cycleStart)
Definition: CyclePortAc.cpp:103
Fw::InputPortBase
Definition: InputPortBase.hpp:14
Svc::InputCyclePort::CompFuncPtr
void(* CompFuncPtr)(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, Svc::TimerVal &cycleStart)
port callback definition
Definition: CyclePortAc.hpp:33
OutputPortBase.hpp
Svc::OutputCyclePort::addCallPort
void addCallPort(InputCyclePort *callPort)
Definition: CyclePortAc.cpp:93
Svc::OutputCyclePort
Definition: CyclePortAc.hpp:49
Svc::InputCyclePort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: CyclePortAc.hpp:31
FpConfig.hpp
ISF configuration file.
Svc::TimerVal::SERIALIZED_SIZE
@ SERIALIZED_SIZE
size of TimerVal private members
Definition: TimerVal.hpp:26
Svc::InputCyclePort::init
void init(void)
initialization function
Definition: CyclePortAc.cpp:38
Fw::OutputPortBase
Definition: OutputPortBase.hpp:13
Svc
Definition: ActiveLoggerComponentAc.cpp:22
Svc::InputCyclePort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: CyclePortAc.cpp:42
BasicTypes.hpp
Declares ISF basic types.
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Svc::InputCyclePort::invoke
void invoke(Svc::TimerVal &cycleStart)
invoke port interface
Definition: CyclePortAc.cpp:52