11 #if FW_ENABLE_TEXT_LOGGING 
   35     class ComponentIpcSerializableBuffer :
 
   50           return sizeof(m_buff);
 
   57         const U8* getBuffAddr()
 const {
 
   63         U8 m_buff[SERIALIZATION_SIZE];
 
   87       this->m_cmdIn_InputPort[port].
init();
 
   92       this->m_cmdIn_InputPort[port].
setPortNum(port);
 
   94 #if FW_OBJECT_NAMES == 1 
  109       this->m_cmdIn_InputPort[port].setObjName(portName);
 
  119       this->m_comIn_InputPort[port].
init();
 
  124       this->m_comIn_InputPort[port].
setPortNum(port);
 
  126 #if FW_OBJECT_NAMES == 1 
  141       this->m_comIn_InputPort[port].setObjName(portName);
 
  151       this->m_pingIn_InputPort[port].
init();
 
  156       this->m_pingIn_InputPort[port].
setPortNum(port);
 
  158 #if FW_OBJECT_NAMES == 1 
  173       this->m_pingIn_InputPort[port].setObjName(portName);
 
  177 #if FW_ENABLE_TEXT_LOGGING == 1 
  181       port < static_cast<PlatformIntType>(this->getNum_LogText_OutputPorts());
 
  184       this->m_LogText_OutputPort[port].
init();
 
  186 #if FW_OBJECT_NAMES == 1 
  201       this->m_LogText_OutputPort[port].setObjName(portName);
 
  212       this->m_cmdRegOut_OutputPort[port].
init();
 
  214 #if FW_OBJECT_NAMES == 1 
  229       this->m_cmdRegOut_OutputPort[port].setObjName(portName);
 
  239       this->m_cmdResponseOut_OutputPort[port].
init();
 
  241 #if FW_OBJECT_NAMES == 1 
  256       this->m_cmdResponseOut_OutputPort[port].setObjName(portName);
 
  266       this->m_logOut_OutputPort[port].
init();
 
  268 #if FW_OBJECT_NAMES == 1 
  283       this->m_logOut_OutputPort[port].setObjName(portName);
 
  293       this->m_timeCaller_OutputPort[port].
init();
 
  295 #if FW_OBJECT_NAMES == 1 
  310       this->m_timeCaller_OutputPort[port].setObjName(portName);
 
  320       this->m_pingOut_OutputPort[port].
init();
 
  322 #if FW_OBJECT_NAMES == 1 
  337       this->m_pingOut_OutputPort[port].setObjName(portName);
 
  343       ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
 
  363     return &this->m_cmdIn_InputPort[portNum];
 
  378     return &this->m_comIn_InputPort[portNum];
 
  389     return &this->m_pingIn_InputPort[portNum];
 
  396 #if FW_ENABLE_TEXT_LOGGING == 1 
  398   void ComLoggerComponentBase ::
 
  399     set_LogText_OutputPort(
 
  405       portNum < this->getNum_LogText_OutputPorts(),
 
  409     this->m_LogText_OutputPort[portNum].addCallPort(port);
 
  425     this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
 
  439     this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
 
  453     this->m_logOut_OutputPort[portNum].
addCallPort(port);
 
  467     this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
 
  485     this->m_pingOut_OutputPort[portNum].
addCallPort(port);
 
  488 #if FW_PORT_SERIALIZATION 
  494 #if FW_ENABLE_TEXT_LOGGING == 1 
  496   void ComLoggerComponentBase ::
 
  497     set_LogText_OutputPort(
 
  499         Fw::InputSerializePort* port
 
  503       portNum < this->getNum_LogText_OutputPorts(),
 
  507     this->m_LogText_OutputPort[portNum].registerSerialPort(port);
 
  515         Fw::InputSerializePort* port
 
  523     this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
 
  529         Fw::InputSerializePort* port
 
  537     this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
 
  543         Fw::InputSerializePort* port
 
  551     this->m_logOut_OutputPort[portNum].registerSerialPort(port);
 
  557         Fw::InputSerializePort* port
 
  565     this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
 
  570 #if FW_PORT_SERIALIZATION 
  579         Fw::InputSerializePort* port
 
  587     this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
 
  599     FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
 
  601     this->m_cmdRegOut_OutputPort[0].
invoke(
 
  612       Fw::ActiveComponentBase(compName)
 
  614     this->m_FileNotInitializedThrottle = 0;
 
  653 #if FW_ENABLE_TEXT_LOGGING == 1 
  656     getNum_LogText_OutputPorts()
 const 
  701 #if FW_ENABLE_TEXT_LOGGING == 1 
  703   bool ComLoggerComponentBase ::
 
  707       portNum < this->getNum_LogText_OutputPorts(),
 
  711     return this->m_LogText_OutputPort[portNum].isConnected();
 
  724     return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
 
  735     return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
 
  746     return this->m_logOut_OutputPort[portNum].
isConnected();
 
  757     return this->m_timeCaller_OutputPort[portNum].
isConnected();
 
  772     return this->m_pingOut_OutputPort[portNum].
isConnected();
 
  800     ComponentIpcSerializableBuffer msg;
 
  804     _status = msg.serialize(
 
  813     _status = msg.serialize(portNum);
 
  820     _status = msg.serialize(data);
 
  827     _status = msg.serialize(context);
 
  860     ComponentIpcSerializableBuffer msg;
 
  864     _status = msg.serialize(
 
  873     _status = msg.serialize(portNum);
 
  880     _status = msg.serialize(key);
 
  937     this->m_pingOut_OutputPort[portNum].
invoke(
 
  953     FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
 
  954     this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
 
  975     ComponentIpcSerializableBuffer msg;
 
  988     _status = msg.serialize(port);
 
  994     _status = msg.serialize(opCode);
 
 1000     _status = msg.serialize(cmdSeq);
 
 1006     _status = msg.serialize(args);
 
 1053     if (this->m_timeCaller_OutputPort[0].isConnected()) {
 
 1054       this->m_timeCaller_OutputPort[0].
invoke(_logTime);
 
 1062     if (this->m_logOut_OutputPort[0].isConnected()) {
 
 1066 #if FW_AMPCS_COMPATIBLE 
 1075 #if FW_AMPCS_COMPATIBLE 
 1078         static_cast<U8>(
sizeof(U32))
 
 1091       _status = file.
serialize(_logBuff, 240);
 
 1097       this->m_logOut_OutputPort[0].
invoke(
 
 1106 #if FW_ENABLE_TEXT_LOGGING 
 1107     if (this->m_LogText_OutputPort[0].isConnected()) {
 
 1108 #if FW_OBJECT_NAMES == 1 
 1109       const char* _formatString =
 
 1110         "(%s) %s: Error %" PRIu32 
" opening file %s";
 
 1112       const char* _formatString =
 
 1113         "%s: Error %" PRIu32 
" opening file %s";
 
 1133       this->m_LogText_OutputPort[0].invoke(
 
 1153     if (this->m_timeCaller_OutputPort[0].isConnected()) {
 
 1154       this->m_timeCaller_OutputPort[0].
invoke(_logTime);
 
 1162     if (this->m_logOut_OutputPort[0].isConnected()) {
 
 1166 #if FW_AMPCS_COMPATIBLE 
 1175 #if FW_AMPCS_COMPATIBLE 
 1178         static_cast<U8>(
sizeof(U32))
 
 1191 #if FW_AMPCS_COMPATIBLE 
 1194         static_cast<U8>(
sizeof(U32))
 
 1201       _status = _logBuff.
serialize(bytesWritten);
 
 1207 #if FW_AMPCS_COMPATIBLE 
 1210         static_cast<U8>(
sizeof(U32))
 
 1217       _status = _logBuff.
serialize(bytesToWrite);
 
 1223       _status = file.
serialize(_logBuff, 240);
 
 1229       this->m_logOut_OutputPort[0].
invoke(
 
 1238 #if FW_ENABLE_TEXT_LOGGING 
 1239     if (this->m_LogText_OutputPort[0].isConnected()) {
 
 1240 #if FW_OBJECT_NAMES == 1 
 1241       const char* _formatString =
 
 1242         "(%s) %s: Error %" PRIu32 
" while writing %" PRIu32 
" of %" PRIu32 
" bytes to %s";
 
 1244       const char* _formatString =
 
 1245         "%s: Error %" PRIu32 
" while writing %" PRIu32 
" of %" PRIu32 
" bytes to %s";
 
 1267       this->m_LogText_OutputPort[0].invoke(
 
 1286     if (this->m_timeCaller_OutputPort[0].isConnected()) {
 
 1287       this->m_timeCaller_OutputPort[0].
invoke(_logTime);
 
 1295     if (this->m_logOut_OutputPort[0].isConnected()) {
 
 1299 #if FW_AMPCS_COMPATIBLE 
 1308       _status = validationFile.
serialize(_logBuff, 240);
 
 1314       _status = file.
serialize(_logBuff, 240);
 
 1320 #if FW_AMPCS_COMPATIBLE 
 1323         static_cast<U8>(
sizeof(U32))
 
 1336       this->m_logOut_OutputPort[0].
invoke(
 
 1345 #if FW_ENABLE_TEXT_LOGGING 
 1346     if (this->m_LogText_OutputPort[0].isConnected()) {
 
 1347 #if FW_OBJECT_NAMES == 1 
 1348       const char* _formatString =
 
 1349         "(%s) %s: The ComLogger failed to create a validation file %s for %s with error %" PRIu32 
".";
 
 1351       const char* _formatString =
 
 1352         "%s: The ComLogger failed to create a validation file %s for %s with error %" PRIu32 
".";
 
 1364         "FileValidationError ",
 
 1373       this->m_LogText_OutputPort[0].invoke(
 
 1388     if (this->m_timeCaller_OutputPort[0].isConnected()) {
 
 1389       this->m_timeCaller_OutputPort[0].
invoke(_logTime);
 
 1397     if (this->m_logOut_OutputPort[0].isConnected()) {
 
 1401 #if FW_AMPCS_COMPATIBLE 
 1410       _status = file.
serialize(_logBuff, 240);
 
 1416       this->m_logOut_OutputPort[0].
invoke(
 
 1425 #if FW_ENABLE_TEXT_LOGGING 
 1426     if (this->m_LogText_OutputPort[0].isConnected()) {
 
 1427 #if FW_OBJECT_NAMES == 1 
 1428       const char* _formatString =
 
 1429         "(%s) %s: File %s closed successfully.";
 
 1431       const char* _formatString =
 
 1432         "%s: File %s closed successfully.";
 
 1451       this->m_LogText_OutputPort[0].invoke(
 
 1469       this->m_FileNotInitializedThrottle++;
 
 1474     if (this->m_timeCaller_OutputPort[0].isConnected()) {
 
 1475       this->m_timeCaller_OutputPort[0].
invoke(_logTime);
 
 1483     if (this->m_logOut_OutputPort[0].isConnected()) {
 
 1486 #if FW_AMPCS_COMPATIBLE 
 1496       this->m_logOut_OutputPort[0].
invoke(
 
 1505 #if FW_ENABLE_TEXT_LOGGING 
 1506     if (this->m_LogText_OutputPort[0].isConnected()) {
 
 1507 #if FW_OBJECT_NAMES == 1 
 1508       const char* _formatString =
 
 1509         "(%s) %s: Could not open ComLogger file. File not initialized";
 
 1511       const char* _formatString =
 
 1512         "%s: Could not open ComLogger file. File not initialized";
 
 1524         "FileNotInitialized " 
 1530       this->m_LogText_OutputPort[0].invoke(
 
 1548     this->m_FileNotInitializedThrottle = 0;
 
 1558     if (this->m_timeCaller_OutputPort[0].isConnected()) {
 
 1560       this->m_timeCaller_OutputPort[0].
invoke(_time);
 
 1575     ComponentIpcSerializableBuffer msg;
 
 1598     MsgTypeEnum msgType = 
static_cast<MsgTypeEnum
>(desMsg);
 
 1600     if (msgType == COMLOGGER_COMPONENT_EXIT) {
 
 1605     deserStatus = msg.deserialize(portNum);
 
 1624         deserStatus = msg.deserialize(context);
 
 1643         deserStatus = msg.deserialize(key);
 
 1658       case CMD_CLOSEFILE: {
 
 1661         deserStatus = msg.deserialize(opCode);
 
 1669         deserStatus = msg.deserialize(cmdSeq);
 
 1688 #if FW_CMD_CHECK_RESIDUAL 
 1690           if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
 
 1715   void ComLoggerComponentBase ::
 
 1727     const U32 idBase = callComp->
getIdBase();
 
 1728     FW_ASSERT(opCode >= idBase, opCode, idBase);
 
 1731     switch (opCode - idBase) {
 
 1733         compPtr->CloseFile_cmdHandlerBase(
 
 1747   void ComLoggerComponentBase ::
 
 1757     compPtr->comIn_handlerBase(
 
 1764   void ComLoggerComponentBase ::
 
 1773     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
@ TB_NONE
No time base has been established.
PlatformAssertArgType FwAssertArgType
#define FW_LOG_TEXT_BUFFER_SIZE
Max size of string for text log message.
#define FW_OBJ_NAME_MAX_SIZE
Size of object name (if object names enabled). AC Limits to 80, truncation occurs above 80.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects)
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
Enum representing a command response.
@ FORMAT_ERROR
Command failed to deserialize.
@ WARNING_HI
A serious but recoverable event.
@ WARNING_LO
A less serious but recoverable event.
@ DIAGNOSTIC
Software diagnostic events.
const char * toChar() const override
SerializeStatus serialize(SerializeBufferBase &buffer) const override
serialization function
void init()
Object initializer.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode)
Invoke a port interface.
void init()
Initialization function.
void init()
Initialization function.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke a port interface.
void init()
Initialization function.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args)
Invoke a port interface.
void addCallPort(InputLogPort *callPort)
Register an input port.
void addCallPort(InputTimePort *callPort)
Register an input port.
void invoke(Fw::Time &time)
Invoke a port interface.
void init()
Initialization function.
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.
NATIVE_UINT_TYPE getBuffLeft() const
returns how much deserialization buffer is left
void resetDeser()
reset deserialization to beginning
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
@ 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.
NATIVE_INT_TYPE getNum_pingIn_InputPorts() const
void log_WARNING_HI_FileOpenError(U32 errornum, const Fw::LogStringArg &file)
virtual ~ComLoggerComponentBase()
Destroy ComLoggerComponentBase object.
NATIVE_INT_TYPE getNum_pingOut_OutputPorts() const
bool isConnected_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_cmdRegOut_OutputPorts() const
void log_DIAGNOSTIC_FileClosed(const Fw::LogStringArg &file)
bool isConnected_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum)
Fw::InputCmdPort * get_cmdIn_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_comIn_InputPorts() const
ComLoggerComponentBase(const char *compName="")
Construct ComLoggerComponentBase object.
@ EVENTID_FILENOTINITIALIZED_THROTTLE
Throttle reset count for FileNotInitialized.
virtual void comIn_handler(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port comIn.
Fw::InputComPort * get_comIn_InputPort(NATIVE_INT_TYPE portNum)
virtual void pingIn_handler(NATIVE_INT_TYPE portNum, U32 key)=0
Handler for input port pingIn.
void log_WARNING_LO_FileValidationError(const Fw::LogStringArg &validationFile, const Fw::LogStringArg &file, U32 status)
virtual void comIn_preMsgHook(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Pre-message hook for async input port comIn.
virtual void pingIn_preMsgHook(NATIVE_INT_TYPE portNum, U32 key)
Pre-message hook for async input port pingIn.
void comIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port comIn.
bool isConnected_pingOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void CloseFile_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_WARNING_LO_FileNotInitialized()
Log event FileNotInitialized.
NATIVE_INT_TYPE getNum_timeCaller_OutputPorts() const
void CloseFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_timeCaller_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void regCommands()
Register commands with the Command Dispatcher.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
virtual void CloseFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CloseFile.
bool isConnected_timeCaller_OutputPort(NATIVE_INT_TYPE portNum)
Svc::InputPingPort * get_pingIn_InputPort(NATIVE_INT_TYPE portNum)
void set_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
NATIVE_INT_TYPE getNum_logOut_OutputPorts() const
void pingIn_handlerBase(NATIVE_INT_TYPE portNum, U32 key)
Handler base-class function for input port pingIn.
void set_logOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
@ EVENTID_FILECLOSED
The ComLogger successfully closed a file on command.
@ EVENTID_FILENOTINITIALIZED
@ EVENTID_FILEWRITEERROR
The ComLogger encountered an error writing to a file.
@ EVENTID_FILEVALIDATIONERROR
The ComLogger encountered an error writing the validation file.
@ EVENTID_FILEOPENERROR
The ComLogger encountered an error opening a file.
NATIVE_INT_TYPE getNum_cmdResponseOut_OutputPorts() const
void set_pingOut_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
NATIVE_INT_TYPE getNum_cmdIn_InputPorts() const
@ OPCODE_CLOSEFILE
Forces a close of the currently opened file.
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
Invoke output port pingOut.
bool isConnected_logOut_OutputPort(NATIVE_INT_TYPE portNum)
void log_WARNING_HI_FileWriteError(U32 errornum, U32 bytesWritten, U32 bytesToWrite, const Fw::LogStringArg &file)
void set_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void log_WARNING_LO_FileNotInitialized_ThrottleClear()
Reset throttle value for FileNotInitialized.
void invoke(U32 key)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputPingPort *callPort)
Register an input port.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.