11 #if FW_ENABLE_TEXT_LOGGING
33 class ComponentIpcSerializableBuffer :
48 return sizeof(m_buff);
55 const U8* getBuffAddr()
const {
61 U8 m_buff[SERIALIZATION_SIZE];
85 this->m_Run_InputPort[port].
init();
92 #if FW_OBJECT_NAMES == 1
107 this->m_Run_InputPort[port].setObjName(portName);
117 this->m_TlmGet_InputPort[port].
init();
122 this->m_TlmGet_InputPort[port].
setPortNum(port);
124 #if FW_OBJECT_NAMES == 1
139 this->m_TlmGet_InputPort[port].setObjName(portName);
149 this->m_TlmRecv_InputPort[port].
init();
154 this->m_TlmRecv_InputPort[port].
setPortNum(port);
156 #if FW_OBJECT_NAMES == 1
171 this->m_TlmRecv_InputPort[port].setObjName(portName);
181 this->m_pingIn_InputPort[port].
init();
186 this->m_pingIn_InputPort[port].
setPortNum(port);
188 #if FW_OBJECT_NAMES == 1
203 this->m_pingIn_InputPort[port].setObjName(portName);
213 this->m_PktSend_OutputPort[port].
init();
215 #if FW_OBJECT_NAMES == 1
230 this->m_PktSend_OutputPort[port].setObjName(portName);
240 this->m_pingOut_OutputPort[port].
init();
242 #if FW_OBJECT_NAMES == 1
257 this->m_pingOut_OutputPort[port].setObjName(portName);
263 ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
283 return &this->m_Run_InputPort[portNum];
294 return &this->m_TlmGet_InputPort[portNum];
305 return &this->m_TlmRecv_InputPort[portNum];
316 return &this->m_pingIn_InputPort[portNum];
334 this->m_PktSend_OutputPort[portNum].
addCallPort(port);
348 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
351 #if FW_PORT_SERIALIZATION
360 Fw::InputSerializePort* port
368 this->m_PktSend_OutputPort[portNum].registerSerialPort(port);
374 Fw::InputSerializePort* port
382 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
393 Fw::ActiveComponentBase(compName)
460 return this->m_PktSend_OutputPort[portNum].
isConnected();
471 return this->m_pingOut_OutputPort[portNum].
isConnected();
497 ComponentIpcSerializableBuffer msg;
501 _status = msg.serialize(
510 _status = msg.serialize(portNum);
517 _status = msg.serialize(context);
608 ComponentIpcSerializableBuffer msg;
612 _status = msg.serialize(
621 _status = msg.serialize(portNum);
628 _status = msg.serialize(key);
685 this->m_PktSend_OutputPort[portNum].
invoke(
701 this->m_pingOut_OutputPort[portNum].
invoke(
716 this->m_guardedPortMutex.
lock();
722 this->m_guardedPortMutex.
unLock();
732 ComponentIpcSerializableBuffer msg;
755 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
757 if (msgType == TLMCHAN_COMPONENT_EXIT) {
762 deserStatus = msg.deserialize(portNum);
773 deserStatus = msg.deserialize(context);
791 deserStatus = msg.deserialize(key);
816 void TlmChanComponentBase ::
825 compPtr->Run_handlerBase(
831 void TlmChanComponentBase ::
842 compPtr->TlmGet_handlerBase(
850 void TlmChanComponentBase ::
861 compPtr->TlmRecv_handlerBase(
869 void TlmChanComponentBase ::
878 compPtr->pingIn_handlerBase(
PlatformIntType NATIVE_INT_TYPE
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
PlatformUIntType NATIVE_UINT_TYPE
int PlatformIntType
DefaultTypes.hpp provides fallback defaults for the platform types.
#define PRI_PlatformIntType
PlatformAssertArgType FwAssertArgType
#define FW_OBJ_NAME_MAX_SIZE
Size of object name (if object names enabled). AC Limits to 80, truncation occurs above 80.
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
void init()
Object initializer.
void addCallPort(InputComPort *callPort)
Register an input port.
void init()
Initialization function.
void invoke(Fw::ComBuffer &data, U32 context)
Invoke a port interface.
Os::Queue::QueueStatus createQueue(NATIVE_INT_TYPE depth, NATIVE_INT_TYPE msgSize)
Os::Queue m_queue
queue object for active component
@ MSG_DISPATCH_OK
Dispatch was normal.
@ MSG_DISPATCH_EXIT
A message was sent requesting an exit of the loop.
@ MSG_DISPATCH_ERROR
Errors dispatching messages.
void unLock()
unlock the mutex
void lock()
lock the mutex
@ QUEUE_OK
message sent/received okay
QueueStatus send(const Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE priority, QueueBlocking block)
send a message
QueueStatus receive(Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE &priority, QueueBlocking block)
receive a message
@ QUEUE_BLOCKING
Queue receive blocks until a message arrives.
@ QUEUE_NONBLOCKING
Queue receive always returns even if there is no message.
void invoke(U32 key)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputPingPort *callPort)
Register an input port.
virtual void pingIn_handler(NATIVE_INT_TYPE portNum, U32 key)=0
Handler for input port pingIn.
void set_pingOut_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
bool isConnected_PktSend_OutputPort(NATIVE_INT_TYPE portNum)
virtual void Run_preMsgHook(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Pre-message hook for async input port Run.
virtual void unLock()
Unlock the guarded mutex.
virtual ~TlmChanComponentBase()
Destroy TlmChanComponentBase object.
Fw::InputTlmPort * get_TlmRecv_InputPort(NATIVE_INT_TYPE portNum)
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
Invoke output port pingOut.
bool isConnected_pingOut_OutputPort(NATIVE_INT_TYPE portNum)
Fw::InputTlmGetPort * get_TlmGet_InputPort(NATIVE_INT_TYPE portNum)
virtual void Run_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port Run.
Svc::InputPingPort * get_pingIn_InputPort(NATIVE_INT_TYPE portNum)
virtual void TlmRecv_handler(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmRecv.
NATIVE_INT_TYPE getNum_TlmGet_InputPorts() const
NATIVE_INT_TYPE getNum_pingOut_OutputPorts() const
void TlmRecv_handlerBase(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmRecv.
void TlmGet_handlerBase(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmGet.
NATIVE_INT_TYPE getNum_Run_InputPorts() const
void Run_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler base-class function for input port Run.
TlmChanComponentBase(const char *compName="")
Construct TlmChanComponentBase object.
Svc::InputSchedPort * get_Run_InputPort(NATIVE_INT_TYPE portNum)
void PktSend_out(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Invoke output port PktSend.
void pingIn_handlerBase(NATIVE_INT_TYPE portNum, U32 key)
Handler base-class function for input port pingIn.
NATIVE_INT_TYPE getNum_PktSend_OutputPorts() const
virtual void pingIn_preMsgHook(NATIVE_INT_TYPE portNum, U32 key)
Pre-message hook for async input port pingIn.
NATIVE_INT_TYPE getNum_pingIn_InputPorts() const
void set_PktSend_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
Connect port to PktSend[portNum].
NATIVE_INT_TYPE getNum_TlmRecv_InputPorts() const
virtual void lock()
Lock the guarded mutex.
virtual void TlmGet_handler(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmGet.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.