11 #if FW_ENABLE_TEXT_LOGGING
33 this->m_send_InputPort[port].
init();
40 #if FW_OBJECT_NAMES == 1
55 this->m_send_InputPort[port].setObjName(portName);
65 this->m_Log_OutputPort[port].
init();
67 #if FW_OBJECT_NAMES == 1
82 this->m_Log_OutputPort[port].setObjName(portName);
86 #if FW_ENABLE_TEXT_LOGGING == 1
90 port < static_cast<PlatformIntType>(this->getNum_LogText_OutputPorts());
93 this->m_LogText_OutputPort[port].
init();
95 #if FW_OBJECT_NAMES == 1
110 this->m_LogText_OutputPort[port].setObjName(portName);
121 this->m_Time_OutputPort[port].
init();
123 #if FW_OBJECT_NAMES == 1
138 this->m_Time_OutputPort[port].setObjName(portName);
148 this->m_Tlm_OutputPort[port].
init();
150 #if FW_OBJECT_NAMES == 1
165 this->m_Tlm_OutputPort[port].setObjName(portName);
175 this->m_allocate_OutputPort[port].
init();
177 #if FW_OBJECT_NAMES == 1
192 this->m_allocate_OutputPort[port].setObjName(portName);
202 this->m_deallocate_OutputPort[port].
init();
204 #if FW_OBJECT_NAMES == 1
219 this->m_deallocate_OutputPort[port].setObjName(portName);
229 this->m_ready_OutputPort[port].
init();
231 #if FW_OBJECT_NAMES == 1
246 this->m_ready_OutputPort[port].setObjName(portName);
256 this->m_recv_OutputPort[port].
init();
258 #if FW_OBJECT_NAMES == 1
273 this->m_recv_OutputPort[port].setObjName(portName);
290 return &this->m_send_InputPort[portNum];
311 #if FW_ENABLE_TEXT_LOGGING == 1
313 void LinuxUartDriverComponentBase ::
314 set_LogText_OutputPort(
320 portNum < this->getNum_LogText_OutputPorts(),
324 this->m_LogText_OutputPort[portNum].addCallPort(port);
340 this->m_Time_OutputPort[portNum].
addCallPort(port);
372 this->m_allocate_OutputPort[portNum].
addCallPort(port);
386 this->m_deallocate_OutputPort[portNum].
addCallPort(port);
400 this->m_ready_OutputPort[portNum].
addCallPort(port);
414 this->m_recv_OutputPort[portNum].
addCallPort(port);
417 #if FW_PORT_SERIALIZATION
426 Fw::InputSerializePort* port
434 this->m_Log_OutputPort[portNum].registerSerialPort(port);
437 #if FW_ENABLE_TEXT_LOGGING == 1
439 void LinuxUartDriverComponentBase ::
440 set_LogText_OutputPort(
442 Fw::InputSerializePort* port
446 portNum < this->getNum_LogText_OutputPorts(),
450 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
458 Fw::InputSerializePort* port
466 this->m_Time_OutputPort[portNum].registerSerialPort(port);
472 Fw::InputSerializePort* port
480 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
485 #if FW_PORT_SERIALIZATION
494 Fw::InputSerializePort* port
502 this->m_deallocate_OutputPort[portNum].registerSerialPort(port);
508 Fw::InputSerializePort* port
516 this->m_ready_OutputPort[portNum].registerSerialPort(port);
522 Fw::InputSerializePort* port
530 this->m_recv_OutputPort[portNum].registerSerialPort(port);
541 Fw::PassiveComponentBase(compName)
543 this->m_WriteErrorThrottle = 0;
544 this->m_ReadErrorThrottle = 0;
545 this->m_NoBuffersThrottle = 0;
574 #if FW_ENABLE_TEXT_LOGGING == 1
577 getNum_LogText_OutputPorts()
const
636 return this->m_Log_OutputPort[portNum].
isConnected();
639 #if FW_ENABLE_TEXT_LOGGING == 1
641 bool LinuxUartDriverComponentBase ::
645 portNum < this->getNum_LogText_OutputPorts(),
649 return this->m_LogText_OutputPort[portNum].isConnected();
662 return this->m_Time_OutputPort[portNum].
isConnected();
673 return this->m_Tlm_OutputPort[portNum].
isConnected();
688 return this->m_allocate_OutputPort[portNum].
isConnected();
699 return this->m_deallocate_OutputPort[portNum].
isConnected();
710 return this->m_ready_OutputPort[portNum].
isConnected();
721 return this->m_recv_OutputPort[portNum].
isConnected();
773 return this->m_allocate_OutputPort[portNum].
invoke(
788 this->m_deallocate_OutputPort[portNum].
invoke(
800 this->m_ready_OutputPort[portNum].
invoke();
814 this->m_recv_OutputPort[portNum].
invoke(
833 if (this->m_Time_OutputPort[0].isConnected()) {
834 this->m_Time_OutputPort[0].
invoke(_logTime);
842 if (this->m_Log_OutputPort[0].isConnected()) {
846 #if FW_AMPCS_COMPATIBLE
855 _status = device.
serialize(_logBuff, 40);
861 #if FW_AMPCS_COMPATIBLE
864 static_cast<U8>(
sizeof(I32))
883 this->m_Log_OutputPort[0].
invoke(
892 #if FW_ENABLE_TEXT_LOGGING
893 if (this->m_LogText_OutputPort[0].isConnected()) {
894 #if FW_OBJECT_NAMES == 1
895 const char* _formatString =
896 "(%s) %s: Error opening UART device %s: %" PRIi32
" %s";
898 const char* _formatString =
899 "%s: Error opening UART device %s: %" PRIi32
" %s";
920 this->m_LogText_OutputPort[0].invoke(
938 if (this->m_Time_OutputPort[0].isConnected()) {
939 this->m_Time_OutputPort[0].
invoke(_logTime);
947 if (this->m_Log_OutputPort[0].isConnected()) {
951 #if FW_AMPCS_COMPATIBLE
960 _status = device.
serialize(_logBuff, 40);
966 #if FW_AMPCS_COMPATIBLE
969 static_cast<U8>(
sizeof(I32))
982 this->m_Log_OutputPort[0].
invoke(
991 #if FW_ENABLE_TEXT_LOGGING
992 if (this->m_LogText_OutputPort[0].isConnected()) {
993 #if FW_OBJECT_NAMES == 1
994 const char* _formatString =
995 "(%s) %s: Error configuring UART device %s: %" PRIi32
"";
997 const char* _formatString =
998 "%s: Error configuring UART device %s: %" PRIi32
"";
1018 this->m_LogText_OutputPort[0].invoke(
1039 this->m_WriteErrorThrottle++;
1044 if (this->m_Time_OutputPort[0].isConnected()) {
1045 this->m_Time_OutputPort[0].
invoke(_logTime);
1053 if (this->m_Log_OutputPort[0].isConnected()) {
1057 #if FW_AMPCS_COMPATIBLE
1066 _status = device.
serialize(_logBuff, 40);
1072 #if FW_AMPCS_COMPATIBLE
1075 static_cast<U8>(
sizeof(I32))
1088 this->m_Log_OutputPort[0].
invoke(
1097 #if FW_ENABLE_TEXT_LOGGING
1098 if (this->m_LogText_OutputPort[0].isConnected()) {
1099 #if FW_OBJECT_NAMES == 1
1100 const char* _formatString =
1101 "(%s) %s: Error writing UART device %s: %" PRIi32
"";
1103 const char* _formatString =
1104 "%s: Error writing UART device %s: %" PRIi32
"";
1124 this->m_LogText_OutputPort[0].invoke(
1145 this->m_ReadErrorThrottle++;
1150 if (this->m_Time_OutputPort[0].isConnected()) {
1151 this->m_Time_OutputPort[0].
invoke(_logTime);
1159 if (this->m_Log_OutputPort[0].isConnected()) {
1163 #if FW_AMPCS_COMPATIBLE
1172 _status = device.
serialize(_logBuff, 40);
1178 #if FW_AMPCS_COMPATIBLE
1181 static_cast<U8>(
sizeof(I32))
1194 this->m_Log_OutputPort[0].
invoke(
1203 #if FW_ENABLE_TEXT_LOGGING
1204 if (this->m_LogText_OutputPort[0].isConnected()) {
1205 #if FW_OBJECT_NAMES == 1
1206 const char* _formatString =
1207 "(%s) %s: Error reading UART device %s: %" PRIi32
"";
1209 const char* _formatString =
1210 "%s: Error reading UART device %s: %" PRIi32
"";
1230 this->m_LogText_OutputPort[0].invoke(
1245 if (this->m_Time_OutputPort[0].isConnected()) {
1246 this->m_Time_OutputPort[0].
invoke(_logTime);
1254 if (this->m_Log_OutputPort[0].isConnected()) {
1258 #if FW_AMPCS_COMPATIBLE
1267 _status = device.
serialize(_logBuff, 40);
1273 this->m_Log_OutputPort[0].
invoke(
1282 #if FW_ENABLE_TEXT_LOGGING
1283 if (this->m_LogText_OutputPort[0].isConnected()) {
1284 #if FW_OBJECT_NAMES == 1
1285 const char* _formatString =
1286 "(%s) %s: UART Device %s configured";
1288 const char* _formatString =
1289 "%s: UART Device %s configured";
1308 this->m_LogText_OutputPort[0].invoke(
1326 this->m_NoBuffersThrottle++;
1331 if (this->m_Time_OutputPort[0].isConnected()) {
1332 this->m_Time_OutputPort[0].
invoke(_logTime);
1340 if (this->m_Log_OutputPort[0].isConnected()) {
1344 #if FW_AMPCS_COMPATIBLE
1353 _status = device.
serialize(_logBuff, 40);
1359 this->m_Log_OutputPort[0].
invoke(
1368 #if FW_ENABLE_TEXT_LOGGING
1369 if (this->m_LogText_OutputPort[0].isConnected()) {
1370 #if FW_OBJECT_NAMES == 1
1371 const char* _formatString =
1372 "(%s) %s: UART Device %s ran out of buffers";
1374 const char* _formatString =
1375 "%s: UART Device %s ran out of buffers";
1394 this->m_LogText_OutputPort[0].invoke(
1413 if (this->m_Time_OutputPort[0].isConnected()) {
1414 this->m_Time_OutputPort[0].
invoke(_logTime);
1422 if (this->m_Log_OutputPort[0].isConnected()) {
1426 #if FW_AMPCS_COMPATIBLE
1435 _status = device.
serialize(_logBuff, 40);
1441 #if FW_AMPCS_COMPATIBLE
1444 static_cast<U8>(
sizeof(U32))
1457 #if FW_AMPCS_COMPATIBLE
1460 static_cast<U8>(
sizeof(U32))
1473 this->m_Log_OutputPort[0].
invoke(
1482 #if FW_ENABLE_TEXT_LOGGING
1483 if (this->m_LogText_OutputPort[0].isConnected()) {
1484 #if FW_OBJECT_NAMES == 1
1485 const char* _formatString =
1486 "(%s) %s: UART Device %s target buffer too small. Size: %" PRIu32
" Needs: %" PRIu32
"";
1488 const char* _formatString =
1489 "%s: UART Device %s target buffer too small. Size: %" PRIu32
" Needs: %" PRIu32
"";
1510 this->m_LogText_OutputPort[0].invoke(
1528 this->m_WriteErrorThrottle = 0;
1535 this->m_ReadErrorThrottle = 0;
1542 this->m_NoBuffersThrottle = 0;
1555 if (this->m_Tlm_OutputPort[0].isConnected()) {
1557 this->m_Time_OutputPort[0].isConnected() &&
1560 this->m_Time_OutputPort[0].
invoke(_tlmTime);
1574 this->m_Tlm_OutputPort[0].
invoke(
1588 if (this->m_Tlm_OutputPort[0].isConnected()) {
1590 this->m_Time_OutputPort[0].isConnected() &&
1593 this->m_Time_OutputPort[0].
invoke(_tlmTime);
1607 this->m_Tlm_OutputPort[0].
invoke(
1622 if (this->m_Time_OutputPort[0].isConnected()) {
1624 this->m_Time_OutputPort[0].
invoke(_time);
1642 this->m_guardedPortMutex.
lock();
1648 this->m_guardedPortMutex.
unLock();
PlatformIntType NATIVE_INT_TYPE
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
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)
Auto-generated base for LinuxUartDriver component.
Drv::SendStatus send_handlerBase(NATIVE_INT_TYPE portNum, Fw::Buffer &sendBuffer)
Handler base-class function for input port send.
void deallocate_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port deallocate.
void log_WARNING_HI_WriteError_ThrottleClear()
Reset throttle value for WriteError.
bool isConnected_deallocate_OutputPort(NATIVE_INT_TYPE portNum)
void log_WARNING_HI_WriteError(const Fw::LogStringArg &device, I32 error)
void log_ACTIVITY_HI_PortOpened(const Fw::LogStringArg &device)
bool isConnected_Log_OutputPort(NATIVE_INT_TYPE portNum)
@ CHANNELID_BYTESRECV
Channel ID for BytesRecv.
@ CHANNELID_BYTESSENT
Channel ID for BytesSent.
NATIVE_INT_TYPE getNum_send_InputPorts() const
LinuxUartDriverComponentBase(const char *compName="")
Construct LinuxUartDriverComponentBase object.
@ EVENTID_CONFIGERROR
UART config error.
@ EVENTID_WRITEERROR
UART write error.
@ EVENTID_BUFFERTOOSMALL
UART ran out of buffers.
@ EVENTID_OPENERROR
UART open error.
@ EVENTID_PORTOPENED
UART port opened event.
@ EVENTID_NOBUFFERS
UART ran out of buffers.
@ EVENTID_READERROR
UART read error.
void log_WARNING_HI_ConfigError(const Fw::LogStringArg &device, I32 error)
NATIVE_INT_TYPE getNum_allocate_OutputPorts() const
NATIVE_INT_TYPE getNum_deallocate_OutputPorts() const
void log_WARNING_HI_NoBuffers_ThrottleClear()
Reset throttle value for NoBuffers.
NATIVE_INT_TYPE getNum_recv_OutputPorts() const
@ EVENTID_WRITEERROR_THROTTLE
Throttle reset count for WriteError.
@ EVENTID_READERROR_THROTTLE
Throttle reset count for ReadError.
@ EVENTID_NOBUFFERS_THROTTLE
Throttle reset count for NoBuffers.
void tlmWrite_BytesSent(U32 arg, Fw::Time _tlmTime=Fw::Time())
void log_WARNING_HI_ReadError_ThrottleClear()
Reset throttle value for ReadError.
void set_Time_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
NATIVE_INT_TYPE getNum_Time_OutputPorts() const
void set_deallocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to deallocate[portNum].
NATIVE_INT_TYPE getNum_Tlm_OutputPorts() const
void log_WARNING_HI_OpenError(const Fw::LogStringArg &device, I32 error, const Fw::LogStringArg &name)
void tlmWrite_BytesRecv(U32 arg, Fw::Time _tlmTime=Fw::Time())
bool isConnected_Time_OutputPort(NATIVE_INT_TYPE portNum)
void set_Log_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void log_WARNING_HI_ReadError(const Fw::LogStringArg &device, I32 error)
Fw::Buffer allocate_out(NATIVE_INT_TYPE portNum, U32 size)
Invoke output port allocate.
bool isConnected_Tlm_OutputPort(NATIVE_INT_TYPE portNum)
bool isConnected_recv_OutputPort(NATIVE_INT_TYPE portNum)
void set_ready_OutputPort(NATIVE_INT_TYPE portNum, Drv::InputByteStreamReadyPort *port)
Connect port to ready[portNum].
void recv_out(NATIVE_INT_TYPE portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
Invoke output port recv.
void set_recv_OutputPort(NATIVE_INT_TYPE portNum, Drv::InputByteStreamRecvPort *port)
Connect port to recv[portNum].
bool isConnected_allocate_OutputPort(NATIVE_INT_TYPE portNum)
void log_WARNING_HI_NoBuffers(const Fw::LogStringArg &device)
virtual ~LinuxUartDriverComponentBase()
Destroy LinuxUartDriverComponentBase object.
void ready_out(NATIVE_INT_TYPE portNum)
Invoke output port ready.
NATIVE_INT_TYPE getNum_Log_OutputPorts() const
void set_allocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferGetPort *port)
Connect port to allocate[portNum].
void log_WARNING_HI_BufferTooSmall(const Fw::LogStringArg &device, U32 size, U32 needed)
virtual Drv::SendStatus send_handler(NATIVE_INT_TYPE portNum, Fw::Buffer &sendBuffer)=0
Handler for input port send.
bool isConnected_ready_OutputPort(NATIVE_INT_TYPE portNum)
Drv::InputByteStreamSendPort * get_send_InputPort(NATIVE_INT_TYPE portNum)
void set_Tlm_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
virtual void lock()
Lock the guarded mutex.
virtual void unLock()
Unlock the guarded mutex.
NATIVE_INT_TYPE getNum_ready_OutputPorts() const
void invoke()
Invoke a port interface.
void addCallPort(InputByteStreamReadyPort *callPort)
Register an input port.
void init()
Initialization function.
void init()
Initialization function.
void addCallPort(InputByteStreamRecvPort *callPort)
Register an input port.
void invoke(Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
Invoke a port interface.
Status associated with the received data.
Status returned by the send call.
@ WARNING_HI
A serious but recoverable event.
@ ACTIVITY_HI
Important informational events.
const char * toChar() const override
SerializeStatus serialize(SerializeBufferBase &buffer) const override
serialization function
void init()
Object initializer.
void init()
Initialization function.
void addCallPort(InputBufferGetPort *callPort)
Register an input port.
Fw::Buffer invoke(U32 size)
Invoke a port interface.
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
void invoke(Fw::Buffer &fwBuffer)
Invoke a port interface.
void init()
Initialization function.
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.
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Initialization function.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Invoke a port interface.
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
void unLock()
unlock the mutex
void lock()
lock the mutex
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.