11 #if FW_ENABLE_TEXT_LOGGING
33 this->m_gpioRead_InputPort[port].
init();
38 this->m_gpioRead_InputPort[port].
setPortNum(port);
40 #if FW_OBJECT_NAMES == 1
55 this->m_gpioRead_InputPort[port].setObjName(portName);
65 this->m_gpioWrite_InputPort[port].
init();
70 this->m_gpioWrite_InputPort[port].
setPortNum(port);
72 #if FW_OBJECT_NAMES == 1
87 this->m_gpioWrite_InputPort[port].setObjName(portName);
97 this->m_Log_OutputPort[port].
init();
99 #if FW_OBJECT_NAMES == 1
114 this->m_Log_OutputPort[port].setObjName(portName);
118 #if FW_ENABLE_TEXT_LOGGING == 1
122 port < static_cast<PlatformIntType>(this->getNum_LogText_OutputPorts());
125 this->m_LogText_OutputPort[port].
init();
127 #if FW_OBJECT_NAMES == 1
142 this->m_LogText_OutputPort[port].setObjName(portName);
153 this->m_Time_OutputPort[port].
init();
155 #if FW_OBJECT_NAMES == 1
170 this->m_Time_OutputPort[port].setObjName(portName);
180 this->m_intOut_OutputPort[port].
init();
182 #if FW_OBJECT_NAMES == 1
197 this->m_intOut_OutputPort[port].setObjName(portName);
214 return &this->m_gpioRead_InputPort[portNum];
225 return &this->m_gpioWrite_InputPort[portNum];
246 #if FW_ENABLE_TEXT_LOGGING == 1
248 void LinuxGpioDriverComponentBase ::
249 set_LogText_OutputPort(
255 portNum < this->getNum_LogText_OutputPorts(),
259 this->m_LogText_OutputPort[portNum].addCallPort(port);
275 this->m_Time_OutputPort[portNum].
addCallPort(port);
293 this->m_intOut_OutputPort[portNum].
addCallPort(port);
296 #if FW_PORT_SERIALIZATION
305 Fw::InputSerializePort* port
313 this->m_Log_OutputPort[portNum].registerSerialPort(port);
316 #if FW_ENABLE_TEXT_LOGGING == 1
318 void LinuxGpioDriverComponentBase ::
319 set_LogText_OutputPort(
321 Fw::InputSerializePort* port
325 portNum < this->getNum_LogText_OutputPorts(),
329 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
337 Fw::InputSerializePort* port
345 this->m_Time_OutputPort[portNum].registerSerialPort(port);
350 #if FW_PORT_SERIALIZATION
359 Fw::InputSerializePort* port
367 this->m_intOut_OutputPort[portNum].registerSerialPort(port);
378 Fw::PassiveComponentBase(compName)
380 this->m_GP_WriteErrorThrottle = 0;
381 this->m_GP_ReadErrorThrottle = 0;
416 #if FW_ENABLE_TEXT_LOGGING == 1
419 getNum_LogText_OutputPorts()
const
454 return this->m_Log_OutputPort[portNum].
isConnected();
457 #if FW_ENABLE_TEXT_LOGGING == 1
459 bool LinuxGpioDriverComponentBase ::
463 portNum < this->getNum_LogText_OutputPorts(),
467 return this->m_LogText_OutputPort[portNum].isConnected();
480 return this->m_Time_OutputPort[portNum].
isConnected();
495 return this->m_intOut_OutputPort[portNum].
isConnected();
556 this->m_intOut_OutputPort[portNum].
invoke(
574 if (this->m_Time_OutputPort[0].isConnected()) {
575 this->m_Time_OutputPort[0].
invoke(_logTime);
583 if (this->m_Log_OutputPort[0].isConnected()) {
587 #if FW_AMPCS_COMPATIBLE
596 #if FW_AMPCS_COMPATIBLE
599 static_cast<U8>(
sizeof(I32))
612 #if FW_AMPCS_COMPATIBLE
615 static_cast<U8>(
sizeof(I32))
634 this->m_Log_OutputPort[0].
invoke(
643 #if FW_ENABLE_TEXT_LOGGING
644 if (this->m_LogText_OutputPort[0].isConnected()) {
645 #if FW_OBJECT_NAMES == 1
646 const char* _formatString =
647 "(%s) %s: Error opening GPIO device %" PRIi32
": %" PRIi32
" (%s)";
649 const char* _formatString =
650 "%s: Error opening GPIO device %" PRIi32
": %" PRIi32
" (%s)";
671 this->m_LogText_OutputPort[0].invoke(
689 if (this->m_Time_OutputPort[0].isConnected()) {
690 this->m_Time_OutputPort[0].
invoke(_logTime);
698 if (this->m_Log_OutputPort[0].isConnected()) {
702 #if FW_AMPCS_COMPATIBLE
711 #if FW_AMPCS_COMPATIBLE
714 static_cast<U8>(
sizeof(I32))
727 #if FW_AMPCS_COMPATIBLE
730 static_cast<U8>(
sizeof(I32))
743 this->m_Log_OutputPort[0].
invoke(
752 #if FW_ENABLE_TEXT_LOGGING
753 if (this->m_LogText_OutputPort[0].isConnected()) {
754 #if FW_OBJECT_NAMES == 1
755 const char* _formatString =
756 "(%s) %s: Error configuring GPIO device %" PRIi32
": %" PRIi32
"";
758 const char* _formatString =
759 "%s: Error configuring GPIO device %" PRIi32
": %" PRIi32
"";
779 this->m_LogText_OutputPort[0].invoke(
800 this->m_GP_WriteErrorThrottle++;
805 if (this->m_Time_OutputPort[0].isConnected()) {
806 this->m_Time_OutputPort[0].
invoke(_logTime);
814 if (this->m_Log_OutputPort[0].isConnected()) {
818 #if FW_AMPCS_COMPATIBLE
827 #if FW_AMPCS_COMPATIBLE
830 static_cast<U8>(
sizeof(I32))
843 #if FW_AMPCS_COMPATIBLE
846 static_cast<U8>(
sizeof(I32))
859 this->m_Log_OutputPort[0].
invoke(
868 #if FW_ENABLE_TEXT_LOGGING
869 if (this->m_LogText_OutputPort[0].isConnected()) {
870 #if FW_OBJECT_NAMES == 1
871 const char* _formatString =
872 "(%s) %s: Error writing GPIO device %" PRIi32
": %" PRIi32
"";
874 const char* _formatString =
875 "%s: Error writing GPIO device %" PRIi32
": %" PRIi32
"";
895 this->m_LogText_OutputPort[0].invoke(
916 this->m_GP_ReadErrorThrottle++;
921 if (this->m_Time_OutputPort[0].isConnected()) {
922 this->m_Time_OutputPort[0].
invoke(_logTime);
930 if (this->m_Log_OutputPort[0].isConnected()) {
934 #if FW_AMPCS_COMPATIBLE
943 #if FW_AMPCS_COMPATIBLE
946 static_cast<U8>(
sizeof(I32))
959 #if FW_AMPCS_COMPATIBLE
962 static_cast<U8>(
sizeof(I32))
975 this->m_Log_OutputPort[0].
invoke(
984 #if FW_ENABLE_TEXT_LOGGING
985 if (this->m_LogText_OutputPort[0].isConnected()) {
986 #if FW_OBJECT_NAMES == 1
987 const char* _formatString =
988 "(%s) %s: Error reading GPIO device %" PRIi32
": %" PRIi32
"";
990 const char* _formatString =
991 "%s: Error reading GPIO device %" PRIi32
": %" PRIi32
"";
1011 this->m_LogText_OutputPort[0].invoke(
1026 if (this->m_Time_OutputPort[0].isConnected()) {
1027 this->m_Time_OutputPort[0].
invoke(_logTime);
1035 if (this->m_Log_OutputPort[0].isConnected()) {
1039 #if FW_AMPCS_COMPATIBLE
1048 #if FW_AMPCS_COMPATIBLE
1051 static_cast<U8>(
sizeof(I32))
1064 this->m_Log_OutputPort[0].
invoke(
1073 #if FW_ENABLE_TEXT_LOGGING
1074 if (this->m_LogText_OutputPort[0].isConnected()) {
1075 #if FW_OBJECT_NAMES == 1
1076 const char* _formatString =
1077 "(%s) %s: GPIO Device %" PRIi32
" configured";
1079 const char* _formatString =
1080 "%s: GPIO Device %" PRIi32
" configured";
1099 this->m_LogText_OutputPort[0].invoke(
1114 if (this->m_Time_OutputPort[0].isConnected()) {
1115 this->m_Time_OutputPort[0].
invoke(_logTime);
1123 if (this->m_Log_OutputPort[0].isConnected()) {
1127 #if FW_AMPCS_COMPATIBLE
1136 #if FW_AMPCS_COMPATIBLE
1139 static_cast<U8>(
sizeof(I32))
1152 this->m_Log_OutputPort[0].
invoke(
1161 #if FW_ENABLE_TEXT_LOGGING
1162 if (this->m_LogText_OutputPort[0].isConnected()) {
1163 #if FW_OBJECT_NAMES == 1
1164 const char* _formatString =
1165 "(%s) %s: GPIO Device %" PRIi32
" interrupt start error";
1167 const char* _formatString =
1168 "%s: GPIO Device %" PRIi32
" interrupt start error";
1180 "GP_IntStartError ",
1187 this->m_LogText_OutputPort[0].invoke(
1202 if (this->m_Time_OutputPort[0].isConnected()) {
1203 this->m_Time_OutputPort[0].
invoke(_logTime);
1211 if (this->m_Log_OutputPort[0].isConnected()) {
1215 #if FW_AMPCS_COMPATIBLE
1224 #if FW_AMPCS_COMPATIBLE
1227 static_cast<U8>(
sizeof(I32))
1240 this->m_Log_OutputPort[0].
invoke(
1249 #if FW_ENABLE_TEXT_LOGGING
1250 if (this->m_LogText_OutputPort[0].isConnected()) {
1251 #if FW_OBJECT_NAMES == 1
1252 const char* _formatString =
1253 "(%s) %s: GPIO Device %" PRIi32
" interrupt wait error";
1255 const char* _formatString =
1256 "%s: GPIO Device %" PRIi32
" interrupt wait error";
1275 this->m_LogText_OutputPort[0].invoke(
1293 this->m_GP_WriteErrorThrottle = 0;
1300 this->m_GP_ReadErrorThrottle = 0;
1310 if (this->m_Time_OutputPort[0].isConnected()) {
1312 this->m_Time_OutputPort[0].
invoke(_time);
1324 void LinuxGpioDriverComponentBase ::
1339 void LinuxGpioDriverComponentBase ::
1348 compPtr->gpioWrite_handlerBase(
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 LinuxGpioDriver component.
@ EVENTID_GP_READERROR_THROTTLE
Throttle reset count for GP_ReadError.
@ EVENTID_GP_WRITEERROR_THROTTLE
Throttle reset count for GP_WriteError.
void set_Log_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void log_WARNING_HI_GP_IntStartError(I32 gpio)
NATIVE_INT_TYPE getNum_intOut_OutputPorts() const
virtual ~LinuxGpioDriverComponentBase()
Destroy LinuxGpioDriverComponentBase object.
NATIVE_INT_TYPE getNum_Log_OutputPorts() const
void gpioWrite_handlerBase(NATIVE_INT_TYPE portNum, const Fw::Logic &state)
Handler base-class function for input port gpioWrite.
bool isConnected_Log_OutputPort(NATIVE_INT_TYPE portNum)
virtual void gpioRead_handler(NATIVE_INT_TYPE portNum, Fw::Logic &state)=0
Handler for input port gpioRead.
void log_WARNING_HI_GP_ReadError(I32 gpio, I32 error)
void set_intOut_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputCyclePort *port)
Connect port to intOut[portNum].
void log_WARNING_HI_GP_IntWaitError(I32 gpio)
bool isConnected_intOut_OutputPort(NATIVE_INT_TYPE portNum)
@ EVENTID_GP_WRITEERROR
GPIO write error.
@ EVENTID_GP_INTSTARTERROR
GPIO interrupt start error notification.
@ EVENTID_GP_CONFIGERROR
GPIO configure error.
@ EVENTID_GP_INTWAITERROR
GPIO interrupt wait error notification.
@ EVENTID_GP_OPENERROR
Open error.
@ EVENTID_GP_PORTOPENED
GPIO opened notification.
@ EVENTID_GP_READERROR
GPIO read error.
void log_WARNING_HI_GP_ReadError_ThrottleClear()
Reset throttle value for GP_ReadError.
void set_Time_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
NATIVE_INT_TYPE getNum_gpioWrite_InputPorts() const
void gpioRead_handlerBase(NATIVE_INT_TYPE portNum, Fw::Logic &state)
Handler base-class function for input port gpioRead.
void log_WARNING_HI_GP_WriteError(I32 gpio, I32 error)
Drv::InputGpioWritePort * get_gpioWrite_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_gpioRead_InputPorts() const
void log_WARNING_HI_GP_WriteError_ThrottleClear()
Reset throttle value for GP_WriteError.
virtual void gpioWrite_handler(NATIVE_INT_TYPE portNum, const Fw::Logic &state)=0
Handler for input port gpioWrite.
bool isConnected_Time_OutputPort(NATIVE_INT_TYPE portNum)
void intOut_out(NATIVE_INT_TYPE portNum, Svc::TimerVal &cycleStart)
Invoke output port intOut.
void log_WARNING_HI_GP_OpenError(I32 gpio, I32 error, const Fw::LogStringArg &msg)
NATIVE_INT_TYPE getNum_Time_OutputPorts() const
void log_WARNING_HI_GP_ConfigError(I32 gpio, I32 error)
Drv::InputGpioReadPort * get_gpioRead_InputPort(NATIVE_INT_TYPE portNum)
LinuxGpioDriverComponentBase(const char *compName="")
Construct LinuxGpioDriverComponentBase object.
void log_ACTIVITY_HI_GP_PortOpened(I32 gpio)
@ 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 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.
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
void init()
Initialization function.
void addCallPort(InputCyclePort *callPort)
Register an input port.
void invoke(Svc::TimerVal &cycleStart)
Invoke a port interface.
Serializable class for carrying timer values.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.