23 INT_IF_INTERRUPTREPORT,
40 class ComponentIpcSerializableBuffer :
55 return sizeof(m_buff);
62 const U8* getBuffAddr()
const {
68 U8 m_buff[SERIALIZATION_SIZE];
77 void BlockDriverComponentBase ::
89 port < static_cast<PlatformIntType>(this->getNum_BufferIn_InputPorts());
92 this->m_BufferIn_InputPort[port].init();
93 this->m_BufferIn_InputPort[port].addCallComp(
97 this->m_BufferIn_InputPort[port].setPortNum(port);
99#if FW_OBJECT_NAMES == 1
106 char portName[2*FW_OBJ_NAME_MAX_SIZE];
114 this->m_BufferIn_InputPort[port].setObjName(portName);
121 port < static_cast<PlatformIntType>(this->getNum_PingIn_InputPorts());
124 this->m_PingIn_InputPort[port].init();
125 this->m_PingIn_InputPort[port].addCallComp(
129 this->m_PingIn_InputPort[port].setPortNum(port);
131#if FW_OBJECT_NAMES == 1
138 char portName[2*FW_OBJ_NAME_MAX_SIZE];
146 this->m_PingIn_InputPort[port].setObjName(portName);
153 port < static_cast<PlatformIntType>(this->getNum_Sched_InputPorts());
156 this->m_Sched_InputPort[port].init();
157 this->m_Sched_InputPort[port].addCallComp(
161 this->m_Sched_InputPort[port].setPortNum(port);
163#if FW_OBJECT_NAMES == 1
170 char portName[2*FW_OBJ_NAME_MAX_SIZE];
178 this->m_Sched_InputPort[port].setObjName(portName);
185 port < static_cast<PlatformIntType>(this->getNum_Time_OutputPorts());
188 this->m_Time_OutputPort[port].init();
190#if FW_OBJECT_NAMES == 1
197 char portName[2*FW_OBJ_NAME_MAX_SIZE];
205 this->m_Time_OutputPort[port].setObjName(portName);
212 port < static_cast<PlatformIntType>(this->getNum_Tlm_OutputPorts());
215 this->m_Tlm_OutputPort[port].init();
217#if FW_OBJECT_NAMES == 1
224 char portName[2*FW_OBJ_NAME_MAX_SIZE];
232 this->m_Tlm_OutputPort[port].setObjName(portName);
239 port < static_cast<PlatformIntType>(this->getNum_BufferOut_OutputPorts());
242 this->m_BufferOut_OutputPort[port].init();
244#if FW_OBJECT_NAMES == 1
251 char portName[2*FW_OBJ_NAME_MAX_SIZE];
259 this->m_BufferOut_OutputPort[port].setObjName(portName);
266 port < static_cast<PlatformIntType>(this->getNum_CycleOut_OutputPorts());
269 this->m_CycleOut_OutputPort[port].init();
271#if FW_OBJECT_NAMES == 1
278 char portName[2*FW_OBJ_NAME_MAX_SIZE];
286 this->m_CycleOut_OutputPort[port].setObjName(portName);
293 port < static_cast<PlatformIntType>(this->getNum_PingOut_OutputPorts());
296 this->m_PingOut_OutputPort[port].init();
298#if FW_OBJECT_NAMES == 1
305 char portName[2*FW_OBJ_NAME_MAX_SIZE];
313 this->m_PingOut_OutputPort[port].setObjName(portName);
319 ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
77 void BlockDriverComponentBase :: {
…}
335 portNum < this->getNum_BufferIn_InputPorts(),
339 return &this->m_BufferIn_InputPort[portNum];
346 portNum < this->getNum_PingIn_InputPorts(),
350 return &this->m_PingIn_InputPort[portNum];
357 portNum < this->getNum_Sched_InputPorts(),
361 return &this->m_Sched_InputPort[portNum];
368 void BlockDriverComponentBase ::
375 portNum < this->getNum_Time_OutputPorts(),
379 this->m_Time_OutputPort[portNum].addCallPort(port);
368 void BlockDriverComponentBase :: {
…}
382 void BlockDriverComponentBase ::
389 portNum < this->getNum_Tlm_OutputPorts(),
393 this->m_Tlm_OutputPort[portNum].addCallPort(port);
382 void BlockDriverComponentBase :: {
…}
400 void BlockDriverComponentBase ::
401 set_BufferOut_OutputPort(
407 portNum < this->getNum_BufferOut_OutputPorts(),
411 this->m_BufferOut_OutputPort[portNum].addCallPort(port);
400 void BlockDriverComponentBase :: {
…}
414 void BlockDriverComponentBase ::
415 set_CycleOut_OutputPort(
421 portNum < this->getNum_CycleOut_OutputPorts(),
425 this->m_CycleOut_OutputPort[portNum].addCallPort(port);
414 void BlockDriverComponentBase :: {
…}
428 void BlockDriverComponentBase ::
429 set_PingOut_OutputPort(
435 portNum < this->getNum_PingOut_OutputPorts(),
439 this->m_PingOut_OutputPort[portNum].addCallPort(port);
428 void BlockDriverComponentBase :: {
…}
442#if FW_PORT_SERIALIZATION
448 void BlockDriverComponentBase ::
451 Fw::InputSerializePort* port
455 portNum < this->getNum_Time_OutputPorts(),
459 this->m_Time_OutputPort[portNum].registerSerialPort(port);
462 void BlockDriverComponentBase ::
465 Fw::InputSerializePort* port
469 portNum < this->getNum_Tlm_OutputPorts(),
473 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
478#if FW_PORT_SERIALIZATION
484 void BlockDriverComponentBase ::
485 set_BufferOut_OutputPort(
487 Fw::InputSerializePort* port
491 portNum < this->getNum_BufferOut_OutputPorts(),
495 this->m_BufferOut_OutputPort[portNum].registerSerialPort(port);
498 void BlockDriverComponentBase ::
499 set_CycleOut_OutputPort(
501 Fw::InputSerializePort* port
505 portNum < this->getNum_CycleOut_OutputPorts(),
509 this->m_CycleOut_OutputPort[portNum].registerSerialPort(port);
512 void BlockDriverComponentBase ::
513 set_PingOut_OutputPort(
515 Fw::InputSerializePort* port
519 portNum < this->getNum_PingOut_OutputPorts(),
523 this->m_PingOut_OutputPort[portNum].registerSerialPort(port);
532 BlockDriverComponentBase ::
533 BlockDriverComponentBase(
const char* compName) :
534 Fw::ActiveComponentBase(compName)
532 BlockDriverComponentBase :: {
…}
539 BlockDriverComponentBase ::
540 ~BlockDriverComponentBase()
539 BlockDriverComponentBase :: {
…}
550 getNum_BufferIn_InputPorts()
const
556 getNum_PingIn_InputPorts()
const
562 getNum_Sched_InputPorts()
const
572 getNum_Time_OutputPorts()
const
578 getNum_Tlm_OutputPorts()
const
588 getNum_BufferOut_OutputPorts()
const
594 getNum_CycleOut_OutputPorts()
const
600 getNum_PingOut_OutputPorts()
const
609 bool BlockDriverComponentBase ::
613 portNum < this->getNum_Time_OutputPorts(),
617 return this->m_Time_OutputPort[portNum].isConnected();
609 bool BlockDriverComponentBase :: {
…}
620 bool BlockDriverComponentBase ::
624 portNum < this->getNum_Tlm_OutputPorts(),
628 return this->m_Tlm_OutputPort[portNum].isConnected();
620 bool BlockDriverComponentBase :: {
…}
635 bool BlockDriverComponentBase ::
639 portNum < this->getNum_BufferOut_OutputPorts(),
643 return this->m_BufferOut_OutputPort[portNum].isConnected();
635 bool BlockDriverComponentBase :: {
…}
646 bool BlockDriverComponentBase ::
650 portNum < this->getNum_CycleOut_OutputPorts(),
654 return this->m_CycleOut_OutputPort[portNum].isConnected();
646 bool BlockDriverComponentBase :: {
…}
657 bool BlockDriverComponentBase ::
661 portNum < this->getNum_PingOut_OutputPorts(),
665 return this->m_PingOut_OutputPort[portNum].isConnected();
657 bool BlockDriverComponentBase :: {
…}
674 void BlockDriverComponentBase ::
675 BufferIn_handlerBase(
682 portNum < this->getNum_BufferIn_InputPorts(),
691 ComponentIpcSerializableBuffer msg;
695 _status = msg.serialize(
704 _status = msg.serialize(portNum);
711 _status = msg.serialize(buff);
674 void BlockDriverComponentBase :: {
…}
727 void BlockDriverComponentBase ::
735 portNum < this->getNum_PingIn_InputPorts(),
744 ComponentIpcSerializableBuffer msg;
748 _status = msg.serialize(
757 _status = msg.serialize(portNum);
764 _status = msg.serialize(key);
727 void BlockDriverComponentBase :: {
…}
780 void BlockDriverComponentBase ::
788 portNum < this->getNum_Sched_InputPorts(),
797 ComponentIpcSerializableBuffer msg;
801 _status = msg.serialize(
810 _status = msg.serialize(portNum);
817 _status = msg.serialize(context);
780 void BlockDriverComponentBase :: {
…}
841 void BlockDriverComponentBase ::
841 void BlockDriverComponentBase :: {
…}
850 void BlockDriverComponentBase ::
850 void BlockDriverComponentBase :: {
…}
859 void BlockDriverComponentBase ::
859 void BlockDriverComponentBase :: {
…}
872 void BlockDriverComponentBase ::
879 portNum < this->getNum_BufferOut_OutputPorts(),
882 this->m_BufferOut_OutputPort[portNum].invoke(
872 void BlockDriverComponentBase :: {
…}
887 void BlockDriverComponentBase ::
894 portNum < this->getNum_CycleOut_OutputPorts(),
897 this->m_CycleOut_OutputPort[portNum].invoke(
887 void BlockDriverComponentBase :: {
…}
902 void BlockDriverComponentBase ::
909 portNum < this->getNum_PingOut_OutputPorts(),
912 this->m_PingOut_OutputPort[portNum].invoke(
902 void BlockDriverComponentBase :: {
…}
921 void BlockDriverComponentBase ::
922 InterruptReport_internalInterfaceInvoke(U32 interrupt)
924 ComponentIpcSerializableBuffer msg;
928 _status = msg.serialize(
static_cast<NATIVE_INT_TYPE>(INT_IF_INTERRUPTREPORT));
941 _status = msg.serialize(interrupt);
921 void BlockDriverComponentBase :: {
…}
961 void BlockDriverComponentBase ::
967 if (this->m_Tlm_OutputPort[0].isConnected()) {
969 this->m_Time_OutputPort[0].isConnected() &&
972 this->m_Time_OutputPort[0].invoke(_tlmTime);
984 _id = this->getIdBase() + CHANNELID_BD_CYCLES;
986 this->m_Tlm_OutputPort[0].invoke(
961 void BlockDriverComponentBase :: {
…}
1001 if (this->m_Time_OutputPort[0].isConnected()) {
1003 this->m_Time_OutputPort[0].invoke(_time);
1018 ComponentIpcSerializableBuffer msg;
1041 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
1043 if (msgType == BLOCKDRIVER_COMPONENT_EXIT) {
1044 return MSG_DISPATCH_EXIT;
1048 deserStatus = msg.deserialize(portNum);
1056 case BUFFERIN_DATABUFFER: {
1059 deserStatus = msg.deserialize(buff);
1065 this->BufferIn_handler(
1077 deserStatus = msg.deserialize(key);
1083 this->PingIn_handler(
1095 deserStatus = msg.deserialize(context);
1101 this->Sched_handler(
1110 case INT_IF_INTERRUPTREPORT: {
1112 deserStatus = msg.deserialize(interrupt);
1123 msg.getBuffLeft() == 0,
1128 this->InterruptReport_internalInterfaceHandler(
1136 return MSG_DISPATCH_ERROR;
1139 return MSG_DISPATCH_OK;
1146 void BlockDriverComponentBase ::
1154 BlockDriverComponentBase* compPtr =
static_cast<BlockDriverComponentBase*
>(callComp);
1155 compPtr->BufferIn_handlerBase(
1161 void BlockDriverComponentBase ::
1169 BlockDriverComponentBase* compPtr =
static_cast<BlockDriverComponentBase*
>(callComp);
1170 compPtr->PingIn_handlerBase(
1176 void BlockDriverComponentBase ::
1184 BlockDriverComponentBase* compPtr =
static_cast<BlockDriverComponentBase*
>(callComp);
1185 compPtr->Sched_handlerBase(