#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) { if (gpioIF == nullptr) { sif::error << "Gpio::Gpio: Invalid GpioIF" << std::endl; } } ReturnValue_t pullHigh() { return gpioIF->pullHigh(gpioId); } ReturnValue_t pullLow() { return gpioIF->pullLow(gpioId); } private: gpioId_t gpioId = gpio::NO_GPIO; GpioIF* gpioIF = nullptr; }; #endif /* FSFW_HAL_SRC_FSFW_HAL_LINUX_GPIO_GPIO_H_ */