#pragma once #include "zbasic.h" namespace iflytop { class ZGPIO { private: zaf_gpio_t m_gpio; bool inited = false; public: ZGPIO() {}; void initAsInput(Pin_t pin, zaf_gpio_mode_t mode, zaf_gpio_irq_t irqtype, bool mirror); void initAsOutput(Pin_t pin, zaf_gpio_mode_t mode, bool mirror, bool initLevel); bool read(); int32_t readint32() { return read() ? 1 : 0; } void write(bool level); void toggle(); bool getState() { return read(); } bool setState(bool state) { write(state); return true; } bool isInited() { return inited; } Pin_t pin() { return m_gpio.pin; } GPIO_TypeDef* port() { return m_gpio.gpio; } uint32_t pinoff() { return m_gpio.pinoff; } }; } // namespace iflytop