// // Created by robtor on 10.01.23. // #ifndef FLOATPUMP_GPICHANNEL_H #define FLOATPUMP_GPICHANNEL_H #include "stm32f4xx_hal.h" namespace floatpump::io { class GPIChannel { public: enum state { ON, OFF }; GPIChannel(GPIO_TypeDef *gpio, uint16_t pin, bool inverted = false); void poll(); [[nodiscard]] state getState() const; [[nodiscard]] bool getStateBool() const; private: GPIO_TypeDef *m_gpio; uint16_t m_gpio_pin; bool m_inverted; state m_state = state::OFF; }; } // io #endif //FLOATPUMP_GPICHANNEL_H