/* * IGpio.h * * Created on: 20 окт. 2016 г. * Author: titov */ #ifndef SOURCE_PERIPHERAL_IGPIO_H_ #define SOURCE_PERIPHERAL_IGPIO_H_ namespace peripheral { /*! \brief Интерфейс для штатной работы с дискретным вводом/выводом. * \details Предоставляет функции для чтения/записи в порт ввода/вывода. * * Дискретным вводом/выводом является любой вывод любой микросхемы доступный * для считывания или формирования дискретного уровня напряжения из ПО. * */ struct IGpio { /*! \brief Функция устанавливает на выводе логическое состояние. * \param[in] value - Состояние на выводе. */ virtual void write(bool value) = 0; //! Функция устанавливает на выводе логическую единицу. virtual void set() = 0; //! Функия устанавливает на выводе логический ноль. virtual void clear() = 0; //! Функция переключает значение на выводе. virtual void toggle() = 0; /*! \brief Функция считывает значение на выводе. * \return Состояние на выводе. */ virtual bool read() const = 0; virtual ~IGpio() = default; }; } /* namespace peripheral */ #endif /* SOURCE_PERIPHERAL_IGPIO_H_ */