F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
FprimeRouter.hpp
Go to the documentation of this file.
1
// ======================================================================
2
// \title FprimeRouter.hpp
3
// \author thomas-bc
4
// \brief hpp file for FprimeRouter component implementation class
5
// ======================================================================
6
7
#ifndef Svc_FprimeRouter_HPP
8
#define Svc_FprimeRouter_HPP
9
10
#include "
Fw/Types/ActiveEnumAc.hpp
"
11
#include "
Fw/Types/SuccessEnumAc.hpp
"
12
#include "
Svc/FprimeRouter/FprimeRouterComponentAc.hpp
"
13
#include "
config/FppConstantsAc.hpp
"
14
15
namespace
Svc
{
16
17
class
FprimeRouter
final :
public
FprimeRouterComponentBase
{
18
public
:
19
// ----------------------------------------------------------------------
20
// Component construction and destruction
21
// ----------------------------------------------------------------------
22
24
FprimeRouter
(
const
char
*
const
compName
25
);
26
28
~FprimeRouter
();
29
30
private
:
31
// ----------------------------------------------------------------------
32
// Handler implementations for user-defined typed input ports
33
// ----------------------------------------------------------------------
34
37
void
dataIn_handler(
FwIndexType
portNum,
38
Fw::Buffer
& packetBuffer,
39
const
ComCfg::FrameContext
& context
40
)
override
;
41
42
// ! Handler for input port cmdResponseIn
43
// ! This is a no-op because FprimeRouter does not need to handle command responses
44
// ! but the port must be connected
45
void
cmdResponseIn_handler(
FwIndexType
portNum,
46
FwOpcodeType
opcode,
47
U32 cmdSeq,
48
const
Fw::CmdResponse
& response
49
)
override
;
50
54
void
fileBufferReturnIn_handler(
FwIndexType
portNum,
55
Fw::Buffer
& fwBuffer
56
)
override
;
57
58
private
:
59
// ----------------------------------------------------------------------
60
// Buffer-to-context association table
61
// ----------------------------------------------------------------------
62
64
struct
BufferContextEntry {
65
Fw::Active
state;
66
const
U8
* key;
67
ComCfg::FrameContext
context;
68
};
69
72
Fw::Success
insertContext(
const
Fw::Buffer
& buffer,
const
ComCfg::FrameContext
& context);
73
76
Fw::Success
takeContext(
const
Fw::Buffer
& buffer,
ComCfg::FrameContext
& context);
77
79
BufferContextEntry m_bufferContextTable[
FprimeRouterCfg::BufferContextTableSize
];
80
};
81
}
// namespace Svc
82
83
#endif
ActiveEnumAc.hpp
FwOpcodeType
FwIdType FwOpcodeType
The type of a command opcode.
Definition:
FwOpcodeTypeAliasAc.h:14
Fw::CmdResponse
Enum representing a command response.
Definition:
CmdResponseEnumAc.hpp:18
SuccessEnumAc.hpp
Svc::FprimeRouter::FprimeRouter
FprimeRouter(const char *const compName)
Construct FprimeRouter object.
Definition:
FprimeRouter.cpp:19
Svc::FprimeRouter
Definition:
FprimeRouter.hpp:17
FprimeRouterComponentAc.hpp
Svc::FprimeRouter::~FprimeRouter
~FprimeRouter()
Destroy FprimeRouter object.
Definition:
FprimeRouter.cpp:26
Svc::FprimeRouterComponentBase
Auto-generated base for FprimeRouter component.
Definition:
FprimeRouterComponentAc.hpp:36
Svc::FprimeRouterCfg::BufferContextTableSize
Definition:
FppConstantsAc.hpp:440
U8
uint8_t U8
8-bit unsigned integer
Definition:
BasicTypes.h:54
FwIndexType
PlatformIndexType FwIndexType
Definition:
FwIndexTypeAliasAc.h:15
ComCfg::FrameContext
Type used to pass context info between components during framing/deframing.
Definition:
FrameContextSerializableAc.hpp:21
Svc
RateGroupDivider component implementation.
Definition:
ActiveRateGroupCfg.hpp:18
Fw::Buffer
Definition:
Buffer.hpp:53
Fw::Active
Active and inactive states.
Definition:
ActiveEnumAc.hpp:18
FppConstantsAc.hpp
Fw::Success
Success/Failure.
Definition:
SuccessEnumAc.hpp:18
Svc
FprimeRouter
FprimeRouter.hpp
Generated by
1.8.14