2022-03-28 09:12:29 +02:00
|
|
|
#ifndef FSFW_HAL_SRC_FSFW_HAL_LINUX_GPIO_GPIO_H_
|
|
|
|
#define FSFW_HAL_SRC_FSFW_HAL_LINUX_GPIO_GPIO_H_
|
|
|
|
|
|
|
|
#include "fsfw_hal/common/gpio/GpioIF.h"
|
|
|
|
#include "fsfw_hal/common/gpio/gpioDefinitions.h"
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Additional abstraction layer for handling GPIOs.
|
|
|
|
*
|
|
|
|
* @author J. Meier
|
|
|
|
*/
|
|
|
|
class Gpio {
|
|
|
|
public:
|
|
|
|
Gpio(gpioId_t gpioId, GpioIF* gpioIF) : gpioId(gpioId), gpioIF(gpioIF) {
|
2022-04-01 14:08:29 +02:00
|
|
|
if (gpioIF == nullptr) {
|
|
|
|
sif::error << "Gpio::Gpio: Invalid GpioIF" << std::endl;
|
|
|
|
}
|
2022-03-28 09:12:29 +02:00
|
|
|
}
|
2022-04-01 14:08:29 +02:00
|
|
|
ReturnValue_t pullHigh() { return gpioIF->pullHigh(gpioId); }
|
|
|
|
ReturnValue_t pullLow() { return gpioIF->pullLow(gpioId); }
|
|
|
|
|
2022-03-28 09:12:29 +02:00
|
|
|
private:
|
|
|
|
gpioId_t gpioId = gpio::NO_GPIO;
|
|
|
|
GpioIF* gpioIF = nullptr;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* FSFW_HAL_SRC_FSFW_HAL_LINUX_GPIO_GPIO_H_ */
|