10 #if FW_ENABLE_TEXT_LOGGING 26 #if !FW_DIRECT_PORT_CALLS 33 this->m_gpioRead_InputPort[port].
init();
38 this->m_gpioRead_InputPort[port].
setPortNum(port);
40 #if FW_OBJECT_NAMES == 1 44 this->m_objName.toChar(),
47 this->m_gpioRead_InputPort[port].setObjName(portName.
toChar());
52 #if !FW_DIRECT_PORT_CALLS 59 this->m_gpioWrite_InputPort[port].
init();
64 this->m_gpioWrite_InputPort[port].
setPortNum(port);
66 #if FW_OBJECT_NAMES == 1 70 this->m_objName.toChar(),
73 this->m_gpioWrite_InputPort[port].setObjName(portName.
toChar());
78 #if !FW_DIRECT_PORT_CALLS 85 this->m_Log_OutputPort[port].
init();
87 #if FW_OBJECT_NAMES == 1 91 this->m_objName.toChar(),
94 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
99 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 103 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
106 this->m_LogText_OutputPort[port].
init();
108 #if FW_OBJECT_NAMES == 1 112 this->m_objName.toChar(),
115 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
120 #if !FW_DIRECT_PORT_CALLS 127 this->m_Time_OutputPort[port].
init();
129 #if FW_OBJECT_NAMES == 1 133 this->m_objName.toChar(),
136 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
141 #if !FW_DIRECT_PORT_CALLS 148 this->m_gpioInterrupt_OutputPort[port].
init();
150 #if FW_OBJECT_NAMES == 1 154 this->m_objName.toChar(),
157 this->m_gpioInterrupt_OutputPort[port].setObjName(portName.
toChar());
163 #if !FW_DIRECT_PORT_CALLS 174 static_cast<FwAssertArgType>(portNum)
177 return &this->m_gpioRead_InputPort[portNum];
185 static_cast<FwAssertArgType>(portNum)
188 return &this->m_gpioWrite_InputPort[portNum];
193 #if !FW_DIRECT_PORT_CALLS 207 static_cast<FwAssertArgType>(portNum)
213 #if FW_ENABLE_TEXT_LOGGING == 1 215 void LinuxGpioDriverComponentBase ::
216 set_LogText_OutputPort(
222 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
223 static_cast<FwAssertArgType>(portNum)
226 this->m_LogText_OutputPort[portNum].addCallPort(port);
239 static_cast<FwAssertArgType>(portNum)
242 this->m_Time_OutputPort[portNum].
addCallPort(port);
247 #if !FW_DIRECT_PORT_CALLS 261 static_cast<FwAssertArgType>(portNum)
264 this->m_gpioInterrupt_OutputPort[portNum].
addCallPort(port);
269 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 278 Fw::InputSerializePort* port
283 static_cast<FwAssertArgType>(portNum)
286 this->m_Log_OutputPort[portNum].registerSerialPort(port);
289 #if FW_ENABLE_TEXT_LOGGING == 1 291 void LinuxGpioDriverComponentBase ::
292 set_LogText_OutputPort(
294 Fw::InputSerializePort* port
298 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
299 static_cast<FwAssertArgType>(portNum)
302 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
310 Fw::InputSerializePort* port
315 static_cast<FwAssertArgType>(portNum)
318 this->m_Time_OutputPort[portNum].registerSerialPort(port);
323 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 332 Fw::InputSerializePort* port
337 static_cast<FwAssertArgType>(portNum)
340 this->m_gpioInterrupt_OutputPort[portNum].registerSerialPort(port);
351 Fw::PassiveComponentBase(compName)
362 #if !FW_DIRECT_PORT_CALLS 373 static_cast<FwAssertArgType>(portNum)
376 return this->m_Log_OutputPort[portNum].
isConnected();
379 #if FW_ENABLE_TEXT_LOGGING == 1 381 bool LinuxGpioDriverComponentBase ::
382 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 385 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
386 static_cast<FwAssertArgType>(portNum)
389 return this->m_LogText_OutputPort[portNum].isConnected();
399 static_cast<FwAssertArgType>(portNum)
402 return this->m_Time_OutputPort[portNum].
isConnected();
407 #if !FW_DIRECT_PORT_CALLS 418 static_cast<FwAssertArgType>(portNum)
421 return this->m_gpioInterrupt_OutputPort[portNum].
isConnected();
441 static_cast<FwAssertArgType>(portNum)
464 static_cast<FwAssertArgType>(portNum)
478 #if !FW_DIRECT_PORT_CALLS 492 static_cast<FwAssertArgType>(portNum)
496 this->m_gpioInterrupt_OutputPort[portNum].isConnected(),
497 static_cast<FwAssertArgType>(portNum)
499 this->m_gpioInterrupt_OutputPort[portNum].
invoke(
521 this->Time_out(0, _logTime);
531 #if FW_AMPCS_COMPATIBLE 536 static_cast<FwAssertArgType>(_status)
546 static_cast<FwAssertArgType>(_status)
555 static_cast<FwAssertArgType>(_status)
558 #if FW_AMPCS_COMPATIBLE 561 static_cast<U8>(
sizeof(U32))
565 static_cast<FwAssertArgType>(_status)
571 static_cast<FwAssertArgType>(_status)
580 static_cast<FwAssertArgType>(_status)
593 #if FW_ENABLE_TEXT_LOGGING 594 if (this->isConnected_LogText_OutputPort(0)) {
595 #if FW_OBJECT_NAMES == 1 596 const char* _formatString =
597 "(%s) %s: Opened GPIO chip %s[%s] pin %" PRIu32
"[%s]";
599 const char* _formatString =
600 "%s: Opened GPIO chip %s[%s] pin %" PRIu32
"[%s]";
607 this->m_objName.toChar(),
636 this->Time_out(0, _logTime);
646 #if FW_AMPCS_COMPATIBLE 651 static_cast<FwAssertArgType>(_status)
661 static_cast<FwAssertArgType>(_status)
664 #if FW_AMPCS_COMPATIBLE 671 static_cast<FwAssertArgType>(_status)
677 static_cast<FwAssertArgType>(_status)
690 #if FW_ENABLE_TEXT_LOGGING 691 if (this->isConnected_LogText_OutputPort(0)) {
692 #if FW_OBJECT_NAMES == 1 693 const char* _formatString =
694 "(%s) %s: Failed to open GPIO chip %s: %s";
696 const char* _formatString =
697 "%s: Failed to open GPIO chip %s: %s";
701 status.toString(statusStr);
707 this->m_objName.toChar(),
736 this->Time_out(0, _logTime);
746 #if FW_AMPCS_COMPATIBLE 751 static_cast<FwAssertArgType>(_status)
761 static_cast<FwAssertArgType>(_status)
764 #if FW_AMPCS_COMPATIBLE 767 static_cast<U8>(
sizeof(U32))
771 static_cast<FwAssertArgType>(_status)
777 static_cast<FwAssertArgType>(_status)
786 static_cast<FwAssertArgType>(_status)
789 #if FW_AMPCS_COMPATIBLE 796 static_cast<FwAssertArgType>(_status)
802 static_cast<FwAssertArgType>(_status)
815 #if FW_ENABLE_TEXT_LOGGING 816 if (this->isConnected_LogText_OutputPort(0)) {
817 #if FW_OBJECT_NAMES == 1 818 const char* _formatString =
819 "(%s) %s: Failed to open GPIO chip %s pin %" PRIu32
" [%s]: %s";
821 const char* _formatString =
822 "%s: Failed to open GPIO chip %s pin %" PRIu32
" [%s]: %s";
826 status.toString(statusStr);
832 this->m_objName.toChar(),
861 this->Time_out(0, _logTime);
871 #if FW_AMPCS_COMPATIBLE 876 static_cast<FwAssertArgType>(_status)
880 #if FW_AMPCS_COMPATIBLE 883 static_cast<U8>(
sizeof(U32))
887 static_cast<FwAssertArgType>(_status)
893 static_cast<FwAssertArgType>(_status)
896 #if FW_AMPCS_COMPATIBLE 899 static_cast<U8>(
sizeof(U32))
903 static_cast<FwAssertArgType>(_status)
909 static_cast<FwAssertArgType>(_status)
922 #if FW_ENABLE_TEXT_LOGGING 923 if (this->isConnected_LogText_OutputPort(0)) {
924 #if FW_OBJECT_NAMES == 1 925 const char* _formatString =
926 "(%s) %s: Interrupt data read expected %" PRIu32
" byes and got %" PRIu32
"";
928 const char* _formatString =
929 "%s: Interrupt data read expected %" PRIu32
" byes and got %" PRIu32
"";
936 this->m_objName.toChar(),
938 "InterruptReadError ",
960 this->Time_out(0, _logTime);
970 #if FW_AMPCS_COMPATIBLE 975 static_cast<FwAssertArgType>(_status)
979 #if FW_AMPCS_COMPATIBLE 982 static_cast<U8>(
sizeof(I32))
986 static_cast<FwAssertArgType>(_status)
992 static_cast<FwAssertArgType>(_status)
1005 #if FW_ENABLE_TEXT_LOGGING 1006 if (this->isConnected_LogText_OutputPort(0)) {
1007 #if FW_OBJECT_NAMES == 1 1008 const char* _formatString =
1009 "(%s) %s: Interrupt polling returned errno: %" PRIi32
"";
1011 const char* _formatString =
1012 "%s: Interrupt polling returned errno: %" PRIi32
"";
1019 this->m_objName.toChar(),
1045 this->Time_out(0, _time);
1081 return compPtr->gpioWrite_handlerBase(
1087 #if !FW_DIRECT_PORT_CALLS 1093 void LinuxGpioDriverComponentBase ::
1104 static_cast<FwAssertArgType>(portNum)
1108 this->m_Log_OutputPort[portNum].isConnected(),
1109 static_cast<FwAssertArgType>(portNum)
1111 this->m_Log_OutputPort[portNum].
invoke(
1119 #if FW_ENABLE_TEXT_LOGGING 1121 void LinuxGpioDriverComponentBase ::
1131 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
1132 static_cast<FwAssertArgType>(portNum)
1136 this->m_LogText_OutputPort[portNum].isConnected(),
1137 static_cast<FwAssertArgType>(portNum)
1139 this->m_LogText_OutputPort[portNum].invoke(
1149 void LinuxGpioDriverComponentBase ::
1157 static_cast<FwAssertArgType>(portNum)
1161 this->m_Time_OutputPort[portNum].isConnected(),
1162 static_cast<FwAssertArgType>(portNum)
1164 this->m_Time_OutputPort[portNum].
invoke(
Serialization/Deserialization operation was successful.
void addCallPort(InputTimePort *callPort)
Register an input port.
Drv::InputGpioReadPort * get_gpioRead_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_Time_OutputPorts()
Drv::InputGpioWritePort * get_gpioWrite_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_gpioRead_InputPorts()
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
FwIdType getIdBase() const
void log_WARNING_HI_InterruptReadError(U32 expected, U32 got) const
Log event InterruptReadError.
const char * toChar() const
Convert to a C-style char*.
LinuxGpioDriverComponentBase(const char *compName="")
Construct LinuxGpioDriverComponentBase object.
void gpioInterrupt_out(FwIndexType portNum, Os::RawTime &cycleStart) const
Invoke output port gpioInterrupt.
void set_gpioInterrupt_OutputPort(FwIndexType portNum, Svc::InputCyclePort *port)
Connect port to gpioInterrupt[portNum].
Drv::GpioStatus gpioWrite_handlerBase(FwIndexType portNum, const Fw::Logic &state)
Handler base-class function for input port gpioWrite.
static constexpr FwIndexType getNum_gpioInterrupt_OutputPorts()
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
virtual Drv::GpioStatus gpioWrite_handler(FwIndexType portNum, const Fw::Logic &state)=0
Handler for input port gpioWrite.
void log_WARNING_HI_OpenPinError(const Fw::StringBase &chip, U32 pin, const Fw::StringBase &pinMessage, Os::FileStatus status) const
Log event OpenPinError.
No time base has been established (Required)
virtual Drv::GpioStatus gpioRead_handler(FwIndexType portNum, Fw::Logic &state)=0
Handler for input port gpioRead.
Software diagnostic events.
void init()
Object initializer.
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
bool isConnected_Log_OutputPort(FwIndexType portNum) const
Drv::GpioStatus gpioRead_handlerBase(FwIndexType portNum, Fw::Logic &state)
Handler base-class function for input port gpioRead.
SerializeStatus
forward declaration for string
void addCallPort(InputCyclePort *callPort)
Register an input port.
static constexpr FwIndexType getNum_gpioWrite_InputPorts()
FwIdType FwEventIdType
The type of an event identifier.
#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.
void init()
Initialization function.
static constexpr FwIndexType getNum_Log_OutputPorts()
#define FW_MIN(a, b)
MIN macro (deprecated in C++, use std::min)
void log_WARNING_HI_OpenChipError(const Fw::StringBase &chip, Os::FileStatus status) const
Log event OpenChipError.
void invoke(Fw::Time &time) const
Invoke a port connection.
const char * toChar() const
Convert to a C-style char*.
void log_DIAGNOSTIC_OpenChip(const Fw::StringBase &chip, const Fw::StringBase &chipLabel, U32 pin, const Fw::StringBase &pinMessage) const
Log event OpenChip.
A serious but recoverable event.
Enum representing event severity.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
void init()
Initialization function.
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
PlatformIndexType FwIndexType
void log_WARNING_HI_PollingError(I32 error_number) const
Log event PollingError.
void addCallPort(InputLogPort *callPort)
Register an input port.
bool isConnected_Time_OutputPort(FwIndexType portNum) const
void invoke(Os::RawTime &cycleStart) const
Invoke a port connection.
Implementation of malloc based allocator.
virtual ~LinuxGpioDriverComponentBase()
Destroy LinuxGpioDriverComponentBase object.
FPP shadow-enum representing Os::File::Status.
bool isConnected_gpioInterrupt_OutputPort(FwIndexType portNum) const
The size of the serial representation.
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.