#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 : 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; static RaspiGpioPin DUMMY_GPIO; private: uint8_t pin_; GpioMode mode_; }; class DummyGpioPin : RaspiGpioPin { DummyGpioPin(); void setState(GpioPinState state) override; } } // namespace sta #endif // STA_RASPI_GPIO_ENABLED #endif // STA_CORE_RASPI_GPIO_PIN_HPP