// ====================================================================== // \title PassiveCommandsTesterBase.cpp // \author Generated by fpp-to-cpp // \brief cpp file for PassiveCommands component test harness base class // ====================================================================== #include #include #include "test-base/PassiveCommandsTesterBase.hpp" // ---------------------------------------------------------------------- // Component initialization // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: init(FwEnumStoreType instance) { // Initialize base class Fw::PassiveComponentBase::init(instance); // Connect input port cmdRegOut for ( FwIndexType port = 0; port < static_cast(this->getNum_from_cmdRegOut()); port++ ) { this->m_from_cmdRegOut[port].init(); this->m_from_cmdRegOut[port].addCallComp( this, from_cmdRegOut_static ); this->m_from_cmdRegOut[port].setPortNum(port); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_from_cmdRegOut[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_from_cmdRegOut[port].setObjName(portName.toChar()); #endif } // Connect input port cmdResponseOut for ( FwIndexType port = 0; port < static_cast(this->getNum_from_cmdResponseOut()); port++ ) { this->m_from_cmdResponseOut[port].init(); this->m_from_cmdResponseOut[port].addCallComp( this, from_cmdResponseOut_static ); this->m_from_cmdResponseOut[port].setPortNum(port); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_from_cmdResponseOut[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_from_cmdResponseOut[port].setObjName(portName.toChar()); #endif } // Connect input port timeGetOut for ( FwIndexType port = 0; port < static_cast(this->getNum_from_timeGetOut()); port++ ) { this->m_from_timeGetOut[port].init(); this->m_from_timeGetOut[port].addCallComp( this, from_timeGetOut_static ); this->m_from_timeGetOut[port].setPortNum(port); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_from_timeGetOut[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_from_timeGetOut[port].setObjName(portName.toChar()); #endif } // Connect input port noArgsOut for ( FwIndexType port = 0; port < static_cast(this->getNum_from_noArgsOut()); port++ ) { this->m_from_noArgsOut[port].init(); this->m_from_noArgsOut[port].addCallComp( this, from_noArgsOut_static ); this->m_from_noArgsOut[port].setPortNum(port); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_from_noArgsOut[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_from_noArgsOut[port].setObjName(portName.toChar()); #endif } // Connect input port noArgsReturnOut for ( FwIndexType port = 0; port < static_cast(this->getNum_from_noArgsReturnOut()); port++ ) { this->m_from_noArgsReturnOut[port].init(); this->m_from_noArgsReturnOut[port].addCallComp( this, from_noArgsReturnOut_static ); this->m_from_noArgsReturnOut[port].setPortNum(port); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_from_noArgsReturnOut[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_from_noArgsReturnOut[port].setObjName(portName.toChar()); #endif } // Connect input port typedOut for ( FwIndexType port = 0; port < static_cast(this->getNum_from_typedOut()); port++ ) { this->m_from_typedOut[port].init(); this->m_from_typedOut[port].addCallComp( this, from_typedOut_static ); this->m_from_typedOut[port].setPortNum(port); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_from_typedOut[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_from_typedOut[port].setObjName(portName.toChar()); #endif } // Connect input port typedReturnOut for ( FwIndexType port = 0; port < static_cast(this->getNum_from_typedReturnOut()); port++ ) { this->m_from_typedReturnOut[port].init(); this->m_from_typedReturnOut[port].addCallComp( this, from_typedReturnOut_static ); this->m_from_typedReturnOut[port].setPortNum(port); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_from_typedReturnOut[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_from_typedReturnOut[port].setObjName(portName.toChar()); #endif } // Connect output port cmdIn for ( FwIndexType port = 0; port < static_cast(this->getNum_to_cmdIn()); port++ ) { this->m_to_cmdIn[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_cmdIn[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_cmdIn[port].setObjName(portName.toChar()); #endif } // Connect output port noArgsGuarded for ( FwIndexType port = 0; port < static_cast(this->getNum_to_noArgsGuarded()); port++ ) { this->m_to_noArgsGuarded[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_noArgsGuarded[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_noArgsGuarded[port].setObjName(portName.toChar()); #endif } // Connect output port noArgsReturnGuarded for ( FwIndexType port = 0; port < static_cast(this->getNum_to_noArgsReturnGuarded()); port++ ) { this->m_to_noArgsReturnGuarded[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_noArgsReturnGuarded[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_noArgsReturnGuarded[port].setObjName(portName.toChar()); #endif } // Connect output port noArgsReturnSync for ( FwIndexType port = 0; port < static_cast(this->getNum_to_noArgsReturnSync()); port++ ) { this->m_to_noArgsReturnSync[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_noArgsReturnSync[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_noArgsReturnSync[port].setObjName(portName.toChar()); #endif } // Connect output port noArgsSync for ( FwIndexType port = 0; port < static_cast(this->getNum_to_noArgsSync()); port++ ) { this->m_to_noArgsSync[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_noArgsSync[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_noArgsSync[port].setObjName(portName.toChar()); #endif } // Connect output port typedGuarded for ( FwIndexType port = 0; port < static_cast(this->getNum_to_typedGuarded()); port++ ) { this->m_to_typedGuarded[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_typedGuarded[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_typedGuarded[port].setObjName(portName.toChar()); #endif } // Connect output port typedReturnGuarded for ( FwIndexType port = 0; port < static_cast(this->getNum_to_typedReturnGuarded()); port++ ) { this->m_to_typedReturnGuarded[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_typedReturnGuarded[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_typedReturnGuarded[port].setObjName(portName.toChar()); #endif } // Connect output port typedReturnSync for ( FwIndexType port = 0; port < static_cast(this->getNum_to_typedReturnSync()); port++ ) { this->m_to_typedReturnSync[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_typedReturnSync[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_typedReturnSync[port].setObjName(portName.toChar()); #endif } // Connect output port typedSync for ( FwIndexType port = 0; port < static_cast(this->getNum_to_typedSync()); port++ ) { this->m_to_typedSync[port].init(); #if FW_OBJECT_NAMES == 1 Fw::ObjectName portName; portName.format( "%s_to_typedSync[%" PRI_PlatformIntType "]", this->m_objName.toChar(), port ); this->m_to_typedSync[port].setObjName(portName.toChar()); #endif } } // ---------------------------------------------------------------------- // Connectors for to ports // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: connect_to_cmdIn( FwIndexType portNum, Fw::InputCmdPort* port ) { FW_ASSERT( portNum < this->getNum_to_cmdIn(), static_cast(portNum) ); this->m_to_cmdIn[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_noArgsGuarded( FwIndexType portNum, Ports::InputNoArgsPort* port ) { FW_ASSERT( portNum < this->getNum_to_noArgsGuarded(), static_cast(portNum) ); this->m_to_noArgsGuarded[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_noArgsReturnGuarded( FwIndexType portNum, Ports::InputNoArgsReturnPort* port ) { FW_ASSERT( portNum < this->getNum_to_noArgsReturnGuarded(), static_cast(portNum) ); this->m_to_noArgsReturnGuarded[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_noArgsReturnSync( FwIndexType portNum, Ports::InputNoArgsReturnPort* port ) { FW_ASSERT( portNum < this->getNum_to_noArgsReturnSync(), static_cast(portNum) ); this->m_to_noArgsReturnSync[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_noArgsSync( FwIndexType portNum, Ports::InputNoArgsPort* port ) { FW_ASSERT( portNum < this->getNum_to_noArgsSync(), static_cast(portNum) ); this->m_to_noArgsSync[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_typedGuarded( FwIndexType portNum, Ports::InputTypedPort* port ) { FW_ASSERT( portNum < this->getNum_to_typedGuarded(), static_cast(portNum) ); this->m_to_typedGuarded[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_typedReturnGuarded( FwIndexType portNum, Ports::InputTypedReturnPort* port ) { FW_ASSERT( portNum < this->getNum_to_typedReturnGuarded(), static_cast(portNum) ); this->m_to_typedReturnGuarded[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_typedReturnSync( FwIndexType portNum, Ports::InputTypedReturnPort* port ) { FW_ASSERT( portNum < this->getNum_to_typedReturnSync(), static_cast(portNum) ); this->m_to_typedReturnSync[portNum].addCallPort(port); } void PassiveCommandsTesterBase :: connect_to_typedSync( FwIndexType portNum, Ports::InputTypedPort* port ) { FW_ASSERT( portNum < this->getNum_to_typedSync(), static_cast(portNum) ); this->m_to_typedSync[portNum].addCallPort(port); } // ---------------------------------------------------------------------- // Getters for from ports // ---------------------------------------------------------------------- Fw::InputCmdRegPort* PassiveCommandsTesterBase :: get_from_cmdRegOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_cmdRegOut(), static_cast(portNum) ); return &this->m_from_cmdRegOut[portNum]; } Fw::InputCmdResponsePort* PassiveCommandsTesterBase :: get_from_cmdResponseOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_cmdResponseOut(), static_cast(portNum) ); return &this->m_from_cmdResponseOut[portNum]; } Fw::InputLogPort* PassiveCommandsTesterBase :: get_from_eventOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_eventOut(), static_cast(portNum) ); return &this->m_from_eventOut[portNum]; } Fw::InputPrmGetPort* PassiveCommandsTesterBase :: get_from_prmGetOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_prmGetOut(), static_cast(portNum) ); return &this->m_from_prmGetOut[portNum]; } Fw::InputPrmSetPort* PassiveCommandsTesterBase :: get_from_prmSetOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_prmSetOut(), static_cast(portNum) ); return &this->m_from_prmSetOut[portNum]; } #if FW_ENABLE_TEXT_LOGGING == 1 Fw::InputLogTextPort* PassiveCommandsTesterBase :: get_from_textEventOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_textEventOut(), static_cast(portNum) ); return &this->m_from_textEventOut[portNum]; } #endif Fw::InputTimePort* PassiveCommandsTesterBase :: get_from_timeGetOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_timeGetOut(), static_cast(portNum) ); return &this->m_from_timeGetOut[portNum]; } Fw::InputTlmPort* PassiveCommandsTesterBase :: get_from_tlmOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_tlmOut(), static_cast(portNum) ); return &this->m_from_tlmOut[portNum]; } Ports::InputNoArgsPort* PassiveCommandsTesterBase :: get_from_noArgsOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_noArgsOut(), static_cast(portNum) ); return &this->m_from_noArgsOut[portNum]; } Ports::InputNoArgsReturnPort* PassiveCommandsTesterBase :: get_from_noArgsReturnOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_noArgsReturnOut(), static_cast(portNum) ); return &this->m_from_noArgsReturnOut[portNum]; } Ports::InputTypedPort* PassiveCommandsTesterBase :: get_from_typedOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_typedOut(), static_cast(portNum) ); return &this->m_from_typedOut[portNum]; } Ports::InputTypedReturnPort* PassiveCommandsTesterBase :: get_from_typedReturnOut(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_from_typedReturnOut(), static_cast(portNum) ); return &this->m_from_typedReturnOut[portNum]; } // ---------------------------------------------------------------------- // Component construction and destruction // ---------------------------------------------------------------------- PassiveCommandsTesterBase :: PassiveCommandsTesterBase( const char* const compName, const U32 maxHistorySize ) : Fw::PassiveComponentBase(compName) { // Initialize port histories this->fromPortHistory_typedOut = new History(maxHistorySize); this->fromPortHistory_typedReturnOut = new History(maxHistorySize); // Initialize command history this->cmdResponseHistory = new History(maxHistorySize); // Clear history this->clearHistory(); } PassiveCommandsTesterBase :: ~PassiveCommandsTesterBase() { // Destroy port histories delete this->fromPortHistory_typedOut; delete this->fromPortHistory_typedReturnOut; // Destroy command history delete this->cmdResponseHistory; } // ---------------------------------------------------------------------- // Handler base-class functions for from ports // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: from_noArgsOut_handlerBase(FwIndexType portNum) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_from_noArgsOut(), static_cast(portNum) ); this->from_noArgsOut_handler(portNum); } U32 PassiveCommandsTesterBase :: from_noArgsReturnOut_handlerBase(FwIndexType portNum) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_from_noArgsReturnOut(), static_cast(portNum) ); return this->from_noArgsReturnOut_handler(portNum); } void PassiveCommandsTesterBase :: from_typedOut_handlerBase( FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedPortStrings::StringSize80& str1, const E& e, const A& a, const S& s ) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_from_typedOut(), static_cast(portNum) ); this->from_typedOut_handler( portNum, u32, f32, b, str1, e, a, s ); } F32 PassiveCommandsTesterBase :: from_typedReturnOut_handlerBase( FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedReturnPortStrings::StringSize80& str2, const E& e, const A& a, const S& s ) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_from_typedReturnOut(), static_cast(portNum) ); return this->from_typedReturnOut_handler( portNum, u32, f32, b, str2, e, a, s ); } // ---------------------------------------------------------------------- // Invocation functions for to ports // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: invoke_to_noArgsGuarded(FwIndexType portNum) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_noArgsGuarded(), static_cast(portNum) ); this->m_to_noArgsGuarded[portNum].invoke(); } U32 PassiveCommandsTesterBase :: invoke_to_noArgsReturnGuarded(FwIndexType portNum) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_noArgsReturnGuarded(), static_cast(portNum) ); return this->m_to_noArgsReturnGuarded[portNum].invoke(); } U32 PassiveCommandsTesterBase :: invoke_to_noArgsReturnSync(FwIndexType portNum) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_noArgsReturnSync(), static_cast(portNum) ); return this->m_to_noArgsReturnSync[portNum].invoke(); } void PassiveCommandsTesterBase :: invoke_to_noArgsSync(FwIndexType portNum) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_noArgsSync(), static_cast(portNum) ); this->m_to_noArgsSync[portNum].invoke(); } void PassiveCommandsTesterBase :: invoke_to_typedGuarded( FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedPortStrings::StringSize80& str1, const E& e, const A& a, const S& s ) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_typedGuarded(), static_cast(portNum) ); this->m_to_typedGuarded[portNum].invoke( u32, f32, b, str1, e, a, s ); } F32 PassiveCommandsTesterBase :: invoke_to_typedReturnGuarded( FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedReturnPortStrings::StringSize80& str2, const E& e, const A& a, const S& s ) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_typedReturnGuarded(), static_cast(portNum) ); return this->m_to_typedReturnGuarded[portNum].invoke( u32, f32, b, str2, e, a, s ); } F32 PassiveCommandsTesterBase :: invoke_to_typedReturnSync( FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedReturnPortStrings::StringSize80& str2, const E& e, const A& a, const S& s ) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_typedReturnSync(), static_cast(portNum) ); return this->m_to_typedReturnSync[portNum].invoke( u32, f32, b, str2, e, a, s ); } void PassiveCommandsTesterBase :: invoke_to_typedSync( FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedPortStrings::StringSize80& str1, const E& e, const A& a, const S& s ) { // Make sure port number is valid FW_ASSERT( portNum < this->getNum_to_typedSync(), static_cast(portNum) ); this->m_to_typedSync[portNum].invoke( u32, f32, b, str1, e, a, s ); } // ---------------------------------------------------------------------- // Getters for port counts // ---------------------------------------------------------------------- FwIndexType PassiveCommandsTesterBase :: getNum_to_cmdIn() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_cmdIn)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_noArgsGuarded() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_noArgsGuarded)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_noArgsReturnGuarded() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_noArgsReturnGuarded)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_noArgsReturnSync() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_noArgsReturnSync)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_noArgsSync() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_noArgsSync)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_typedGuarded() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_typedGuarded)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_typedReturnGuarded() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_typedReturnGuarded)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_typedReturnSync() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_typedReturnSync)); } FwIndexType PassiveCommandsTesterBase :: getNum_to_typedSync() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_to_typedSync)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_cmdRegOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_cmdRegOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_cmdResponseOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_cmdResponseOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_eventOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_eventOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_prmGetOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_prmGetOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_prmSetOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_prmSetOut)); } #if FW_ENABLE_TEXT_LOGGING == 1 FwIndexType PassiveCommandsTesterBase :: getNum_from_textEventOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_textEventOut)); } #endif FwIndexType PassiveCommandsTesterBase :: getNum_from_timeGetOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_timeGetOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_tlmOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_tlmOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_noArgsOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_noArgsOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_noArgsReturnOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_noArgsReturnOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_typedOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_typedOut)); } FwIndexType PassiveCommandsTesterBase :: getNum_from_typedReturnOut() const { return static_cast(FW_NUM_ARRAY_ELEMENTS(this->m_from_typedReturnOut)); } // ---------------------------------------------------------------------- // Connection status queries for to ports // ---------------------------------------------------------------------- bool PassiveCommandsTesterBase :: isConnected_to_cmdIn(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_cmdIn(), static_cast(portNum) ); return this->m_to_cmdIn[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_noArgsGuarded(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_noArgsGuarded(), static_cast(portNum) ); return this->m_to_noArgsGuarded[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_noArgsReturnGuarded(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_noArgsReturnGuarded(), static_cast(portNum) ); return this->m_to_noArgsReturnGuarded[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_noArgsReturnSync(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_noArgsReturnSync(), static_cast(portNum) ); return this->m_to_noArgsReturnSync[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_noArgsSync(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_noArgsSync(), static_cast(portNum) ); return this->m_to_noArgsSync[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_typedGuarded(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_typedGuarded(), static_cast(portNum) ); return this->m_to_typedGuarded[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_typedReturnGuarded(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_typedReturnGuarded(), static_cast(portNum) ); return this->m_to_typedReturnGuarded[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_typedReturnSync(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_typedReturnSync(), static_cast(portNum) ); return this->m_to_typedReturnSync[portNum].isConnected(); } bool PassiveCommandsTesterBase :: isConnected_to_typedSync(FwIndexType portNum) { FW_ASSERT( portNum < this->getNum_to_typedSync(), static_cast(portNum) ); return this->m_to_typedSync[portNum].isConnected(); } // ---------------------------------------------------------------------- // Functions for testing commands // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: cmdResponseIn( FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response ) { CmdResponse e = { opCode, cmdSeq, response }; this->cmdResponseHistory->push_back(e); } void PassiveCommandsTesterBase :: sendRawCmd( FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer& buf ) { const U32 idBase = this->getIdBase(); FwOpcodeType _opcode = opCode + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_SYNC( const FwEnumStoreType instance, U32 cmdSeq ) { Fw::CmdArgBuffer buf; // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_SYNC + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_SYNC_PRIMITIVE( const FwEnumStoreType instance, U32 cmdSeq, U32 u32, F32 f32, bool b ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(u32); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); _status = buf.serialize(f32); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); _status = buf.serialize(b); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_SYNC_PRIMITIVE + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_SYNC_STRING( const FwEnumStoreType instance, U32 cmdSeq, const Fw::CmdStringArg& str1, const Fw::CmdStringArg& str2 ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(str1); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); _status = buf.serialize(str2); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_SYNC_STRING + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_SYNC_ENUM( const FwEnumStoreType instance, U32 cmdSeq, E e ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(e); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_SYNC_ENUM + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_SYNC_ARRAY( const FwEnumStoreType instance, U32 cmdSeq, A a ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(a); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_SYNC_ARRAY + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_SYNC_STRUCT( const FwEnumStoreType instance, U32 cmdSeq, S s ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(s); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_SYNC_STRUCT + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_GUARDED( const FwEnumStoreType instance, U32 cmdSeq ) { Fw::CmdArgBuffer buf; // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_GUARDED + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_GUARDED_PRIMITIVE( const FwEnumStoreType instance, U32 cmdSeq, U32 u32, F32 f32, bool b ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(u32); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); _status = buf.serialize(f32); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); _status = buf.serialize(b); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_GUARDED_PRIMITIVE + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_GUARDED_STRING( const FwEnumStoreType instance, U32 cmdSeq, const Fw::CmdStringArg& str1, const Fw::CmdStringArg& str2 ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(str1); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); _status = buf.serialize(str2); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_GUARDED_STRING + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_GUARDED_ENUM( const FwEnumStoreType instance, U32 cmdSeq, E e ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(e); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_GUARDED_ENUM + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_GUARDED_ARRAY( const FwEnumStoreType instance, U32 cmdSeq, A a ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(a); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_GUARDED_ARRAY + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } void PassiveCommandsTesterBase :: sendCmd_CMD_GUARDED_STRUCT( const FwEnumStoreType instance, U32 cmdSeq, S s ) { // Serialize arguments Fw::CmdArgBuffer buf; Fw::SerializeStatus _status; _status = buf.serialize(s); FW_ASSERT( _status == Fw::FW_SERIALIZE_OK, static_cast(_status) ); // Call output command port FwOpcodeType _opcode; const U32 idBase = this->getIdBase(); _opcode = PassiveCommandsComponentBase::OPCODE_CMD_GUARDED_STRUCT + idBase; if (this->m_to_cmdIn[0].isConnected()) { this->m_to_cmdIn[0].invoke( _opcode, cmdSeq, buf ); } else { printf("Test Command Output port not connected!\n"); } } // ---------------------------------------------------------------------- // Functions to test time // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: setTestTime(const Fw::Time& timeTag) { this->m_testTime = timeTag; } // ---------------------------------------------------------------------- // History functions // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: clearHistory() { this->clearFromPortHistory(); this->cmdResponseHistory->clear(); } void PassiveCommandsTesterBase :: clearFromPortHistory() { this->fromPortHistorySize = 0; this->fromPortHistorySize_noArgsOut = 0; this->fromPortHistorySize_noArgsReturnOut = 0; this->fromPortHistory_typedOut->clear(); this->fromPortHistory_typedReturnOut->clear(); } void PassiveCommandsTesterBase :: pushFromPortEntry_noArgsOut() { this->fromPortHistorySize_noArgsOut++; this->fromPortHistorySize++; } void PassiveCommandsTesterBase :: pushFromPortEntry_noArgsReturnOut() { this->fromPortHistorySize_noArgsReturnOut++; this->fromPortHistorySize++; } void PassiveCommandsTesterBase :: pushFromPortEntry_typedOut( U32 u32, F32 f32, bool b, const Ports::TypedPortStrings::StringSize80& str1, const E& e, const A& a, const S& s ) { FromPortEntry_typedOut _e = { u32, f32, b, str1, e, a, s }; this->fromPortHistory_typedOut->push_back(_e); this->fromPortHistorySize++; } void PassiveCommandsTesterBase :: pushFromPortEntry_typedReturnOut( U32 u32, F32 f32, bool b, const Ports::TypedReturnPortStrings::StringSize80& str2, const E& e, const A& a, const S& s ) { FromPortEntry_typedReturnOut _e = { u32, f32, b, str2, e, a, s }; this->fromPortHistory_typedReturnOut->push_back(_e); this->fromPortHistorySize++; } // ---------------------------------------------------------------------- // Static functions for output ports // ---------------------------------------------------------------------- void PassiveCommandsTesterBase :: from_cmdRegOut_static( Fw::PassiveComponentBase* const callComp, FwIndexType portNum, FwOpcodeType opCode ) { } void PassiveCommandsTesterBase :: from_cmdResponseOut_static( Fw::PassiveComponentBase* const callComp, FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse& response ) { PassiveCommandsTesterBase* _testerBase = static_cast(callComp); _testerBase->cmdResponseIn(opCode, cmdSeq, response); } void PassiveCommandsTesterBase :: from_timeGetOut_static( Fw::PassiveComponentBase* const callComp, FwIndexType portNum, Fw::Time& time ) { PassiveCommandsTesterBase* _testerBase = static_cast(callComp); time = _testerBase->m_testTime; } void PassiveCommandsTesterBase :: from_noArgsOut_static( Fw::PassiveComponentBase* const callComp, FwIndexType portNum ) { FW_ASSERT(callComp != nullptr); PassiveCommandsTesterBase* _testerBase = static_cast(callComp); _testerBase->from_noArgsOut_handlerBase(portNum); } U32 PassiveCommandsTesterBase :: from_noArgsReturnOut_static( Fw::PassiveComponentBase* const callComp, FwIndexType portNum ) { FW_ASSERT(callComp != nullptr); PassiveCommandsTesterBase* _testerBase = static_cast(callComp); return _testerBase->from_noArgsReturnOut_handlerBase(portNum); } void PassiveCommandsTesterBase :: from_typedOut_static( Fw::PassiveComponentBase* const callComp, FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedPortStrings::StringSize80& str1, const E& e, const A& a, const S& s ) { FW_ASSERT(callComp != nullptr); PassiveCommandsTesterBase* _testerBase = static_cast(callComp); _testerBase->from_typedOut_handlerBase( portNum, u32, f32, b, str1, e, a, s ); } F32 PassiveCommandsTesterBase :: from_typedReturnOut_static( Fw::PassiveComponentBase* const callComp, FwIndexType portNum, U32 u32, F32 f32, bool b, const Ports::TypedReturnPortStrings::StringSize80& str2, const E& e, const A& a, const S& s ) { FW_ASSERT(callComp != nullptr); PassiveCommandsTesterBase* _testerBase = static_cast(callComp); return _testerBase->from_typedReturnOut_handlerBase( portNum, u32, f32, b, str2, e, a, s ); }