F´ Flight Software - C/C++ Documentation
NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
|
Go to the documentation of this file.
17 #if FW_ENABLE_TEXT_LOGGING
46 class ComponentIpcSerializableBuffer :
61 return sizeof(m_buff);
64 U8* getBuffAddr(
void) {
68 const U8* getBuffAddr(
void)
const {
74 U8 m_buff[SERIALIZATION_SIZE];
88 return &this->m_TlmRecv_InputPort[
portNum];
123 this->m_PktSend_OutputPort[
portNum].addCallPort(port);
140 #if FW_PORT_SERIALIZATION
145 Fw::InputSerializePort *port
149 return this->m_PktSend_OutputPort[
portNum].registerSerialPort(port);
155 Fw::InputSerializePort *port
168 TlmChanComponentBase ::
169 #if FW_OBJECT_NAMES == 1
170 TlmChanComponentBase(
const char* compName) :
171 Fw::ActiveComponentBase(compName)
173 TlmChanComponentBase() :
174 Fw::ActiveComponentBase()
195 port < this->getNum_TlmRecv_InputPorts();
199 this->m_TlmRecv_InputPort[port].init();
200 this->m_TlmRecv_InputPort[port].addCallComp(
204 this->m_TlmRecv_InputPort[port].setPortNum(port);
206 #if FW_OBJECT_NAMES == 1
211 "%s_TlmRecv_InputPort[%d]",
215 this->m_TlmRecv_InputPort[port].setObjName(portName);
234 #if FW_OBJECT_NAMES == 1
239 "%s_TlmGet_InputPort[%d]",
262 #if FW_OBJECT_NAMES == 1
267 "%s_Run_InputPort[%d]",
290 #if FW_OBJECT_NAMES == 1
295 "%s_pingIn_InputPort[%d]",
307 port < this->getNum_PktSend_OutputPorts();
310 this->m_PktSend_OutputPort[port].
init();
312 #if FW_OBJECT_NAMES == 1
317 "%s_PktSend_OutputPort[%d]",
321 this->m_PktSend_OutputPort[port].setObjName(portName);
334 #if FW_OBJECT_NAMES == 1
339 "%s_pingOut_OutputPort[%d]",
351 ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
369 void TlmChanComponentBase ::
394 getNum_TlmRecv_InputPorts(
void)
397 this->m_TlmRecv_InputPort
418 getNum_PktSend_OutputPorts(
void)
421 this->m_PktSend_OutputPort
445 bool TlmChanComponentBase ::
449 portNum < this->getNum_PktSend_OutputPorts(),
452 return this->m_PktSend_OutputPort[
portNum].isConnected();
469 void TlmChanComponentBase ::
472 this->m_guardedPortMutex.lock();
478 this->m_guardedPortMutex.unLock();
485 void TlmChanComponentBase ::
541 void TlmChanComponentBase ::
599 ComponentIpcSerializableBuffer msg;
602 _status = msg.serialize(
610 _status = msg.serialize(
portNum);
617 _status = msg.serialize(
context);
652 ComponentIpcSerializableBuffer msg;
655 _status = msg.serialize(
663 _status = msg.serialize(
portNum);
670 _status = msg.serialize(key);
693 void TlmChanComponentBase ::
719 ComponentIpcSerializableBuffer msg;
738 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
740 if (msgType == TLMCHAN_COMPONENT_EXIT) {
745 deserStatus = msg.deserialize(
portNum);
758 deserStatus = msg.deserialize(
context);
779 deserStatus = msg.deserialize(key);
Svc::InputSchedPort m_Run_InputPort[NUM_RUN_INPUT_PORTS]
virtual void Run_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port Run.
static void m_p_Run_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
void set_PktSend_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
virtual MsgDispatchStatus doDispatch(void)=0
method to dispatch a single message in the queue.
SerializeStatus
forward declaration for string
#define FwChanIdType
Type representation for a channel id.
NATIVE_INT_TYPE getNum_TlmGet_InputPorts(void)
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
uint8_t U8
8-bit unsigned integer
Fw::InputTlmPort * get_TlmGet_InputPort(NATIVE_INT_TYPE portNum)
Os::Queue m_queue
queue object for active component
PROTECTED Fw::ComBuffer & data
virtual void pingIn_handler(NATIVE_INT_TYPE portNum, U32 key)=0
Handler for input port pingIn.
Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS]
void set_pingOut_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
PROTECTED FwChanIdType Fw::Time & timeTag
static void m_p_TlmGet_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
PRIVATE NATIVE_INT_TYPE portNum
PROTECTED NATIVE_UINT_TYPE context
Fw::InputTlmPort * get_TlmRecv_InputPort(NATIVE_INT_TYPE portNum)
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
QueueStatus send(const Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE priority, QueueBlocking block)
send a message
void addCallPort(InputPingPort *callPort)
void init(void)
Object initializer.
@ MSG_DISPATCH_OK
Dispatch was normal.
virtual void pingIn_preMsgHook(NATIVE_INT_TYPE portNum, U32 key)
QueueStatus receive(Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE &priority, QueueBlocking block)
receive a message
Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS]
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
Svc::InputSchedPort * get_Run_InputPort(NATIVE_INT_TYPE portNum)
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
NATIVE_INT_TYPE getNum_pingIn_InputPorts(void)
BYTE port1[Svc::InputSchedPort::SERIALIZED_SIZE]
Auto-generated base for TlmChan component.
@ MSG_DISPATCH_ERROR
Errors dispatching messages.
@ QUEUE_OK
message sent/received okay
PROTECTED FwChanIdType Fw::Time Fw::TlmBuffer & val
Fw::InputTlmPort m_TlmGet_InputPort[NUM_TLMGET_INPUT_PORTS]
void Run_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
void pingIn_handlerBase(NATIVE_INT_TYPE portNum, U32 key)
Svc::InputPingPort * get_pingIn_InputPort(NATIVE_INT_TYPE portNum)
void TlmGet_handlerBase(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
bool isConnected_pingOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual ~TlmChanComponentBase(void)
@ MSG_DISPATCH_EXIT
A message was sent requesting an exit of the loop.
static void m_p_pingIn_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, U32 key)
@ QUEUE_NONBLOCKING
Queue receive always returns even if there is no message.
NATIVE_INT_TYPE getNum_pingOut_OutputPorts(void)
NATIVE_INT_TYPE getNum_Run_InputPorts(void)
virtual void TlmGet_handler(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmGet.
virtual void unLock(void)
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
int NATIVE_INT_TYPE
native integer type declaration
BYTE port2[Svc::InputPingPort::SERIALIZED_SIZE]
Os::Queue::QueueStatus createQueue(NATIVE_INT_TYPE depth, NATIVE_INT_TYPE msgSize)
@ QUEUE_BLOCKING
Queue receive blocks until a message arrives.