fprime/Svc/CmdSplitter/CmdSplitter.hpp
Thomas Boyer-Chammard c69ff72110
Format Svc and add to CI (#3978)
* Format Svc and add to CI

* Fix comlogger include

* fix assert UTs

* Fix static analysis warning

* formatting
2025-08-04 16:21:47 -07:00

60 lines
2.1 KiB
C++

// ======================================================================
// \title CmdSplitter.hpp
// \author watney
// \brief hpp file for CmdSplitter component implementation class
// ======================================================================
#ifndef CmdSplitter_HPP
#define CmdSplitter_HPP
#include <Fw/Cmd/CmdResponsePortAc.hpp>
#include "Svc/CmdSplitter/CmdSplitterComponentAc.hpp"
namespace Svc {
class CmdSplitter final : public CmdSplitterComponentBase {
public:
// ----------------------------------------------------------------------
// Construction, initialization, and destruction
// ----------------------------------------------------------------------
//! Construct object CmdSplitter
//!
CmdSplitter(const char* const compName /*!< The component name*/
);
//! Destroy object CmdSplitter
//!
~CmdSplitter();
//! Configure this splitter
//!
void configure(const FwOpcodeType remoteBaseOpcode /*!< Base remote opcode*/);
private:
// ----------------------------------------------------------------------
// Handler implementations for user-defined typed input ports
// ----------------------------------------------------------------------
//! Handler implementation for CmdBuff
//!
void CmdBuff_handler(const FwIndexType portNum, /*!< The port number */
Fw::ComBuffer& data, /*!< Buffer containing packet data */
U32 context /*!< Call context value; meaning chosen by user */
);
//! Handler implementation for seqCmdStatus
//!
void seqCmdStatus_handler(const FwIndexType portNum, /*!< The port number */
FwOpcodeType opCode, /*!< Command Op Code */
U32 cmdSeq, /*!< Command Sequence */
const Fw::CmdResponse& response /*!< The command response argument */
);
FwOpcodeType m_remoteBase; // Opcodes greater than or equal than this value will route remotely
};
} // end namespace Svc
#endif