29 if (this->m_configuration < GpioConfiguration::MAX_GPIO_CONFIGURATION &&
30 this->m_configuration >= GpioConfiguration::GPIO_INTERRUPT_RISING_EDGE) {
34 this->m_running =
true;
38 Os::Task::Arguments arguments(name, &this->interruptFunction,
this, priority, stackSize, cpuAffinity,
40 this->m_poller.
start(arguments);
47 this->m_running =
false;
51 this->m_poller.
join();
54 void LinuxGpioDriver ::interruptFunction(
void*
self) {
57 component->pollLoop();
60 bool LinuxGpioDriver ::getRunning() {
62 return this->m_running;
void stop()
stop interrupt detection thread
PlatformSizeType FwSizeType
Status start(const Arguments &arguments) override
start the task
Drv::GpioStatus start(const FwSizeType priority=Os::Task::TASK_DEFAULT, const FwSizeType stackSize=Os::Task::TASK_DEFAULT, const FwSizeType cpuAffinity=Os::Task::TASK_DEFAULT, const PlatformUIntType identifier=static_cast< PlatformUIntType >(Os::Task::TASK_DEFAULT))
start interrupt detection thread
Auto-generated base for LinuxGpioDriver component.
Operation not permitted with current configuration.
#define FW_OPTIONAL_NAME(name)
unsigned int PlatformUIntType
Status join() override
block until the task has ended
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
C++-compatible configuration header for fprime configuration.
LinuxGpioDriver(const char *const compName)
locks a mutex within the current scope
void join()
join interrupt detection thread