#ifndef STA_CORE_RASPI_GPIO_PIN_HPP #define STA_CORE_RASPI_GPIO_PIN_HPP // Only enable module on Raspi platform w/ HAL GPIO module enabled #include #ifdef STA_PLATFORM_RASPI # include # define STA_RASPI_GPIO_ENABLED #endif // STA_PLATFORM_RASPI #if defined(STA_RASPI_GPIO_ENABLED) || defined(DOXYGEN) #include #include namespace sta { class RaspiGpioPin : public GpioPin { public: enum class GpioMode { GPIO_OUTPUT, GPIO_INPUT }; /** * @param pin Pin index * @param mode The mode of the GPIO pin. Either INPUT or OUTPUT */ RaspiGpioPin(uint8_t pin, GpioMode mode); void setState(GpioPinState state) override; GpioPinState getState() override; static RaspiGpioPin * DUMMY_GPIO; private: uint8_t pin_; GpioMode mode_; }; } // namespace sta #endif // STA_RASPI_GPIO_ENABLED #endif // STA_CORE_RASPI_GPIO_PIN_HPP