/* * IGpioOverride.h * * Created on: 20 окт. 2016 г. * Author: titov */ #ifndef SOURCE_PERIPHERAL_IGPIOOVERRIDE_H_ #define SOURCE_PERIPHERAL_IGPIOOVERRIDE_H_ namespace peripheral { /*! \brief Интерфейс для перезаписи значений дискретного ввода/вывода * \details С помощью этого интерфеса есть возможность подменять * считываемые с порта или выводимые в порт значения. */ struct IGpioOverride { //! Перечисление возможных вариантов вывода на пин. enum /*class*/ TOutValue { hi_z, //!< Высокоимпедансное состояние. high, //!< Высокий уровень сигнала. low //!< Низкий уровень сигнала. }; /*!\brief Функция запроса статуса перезаписи */ virtual bool getOverrideStatus() const = 0; /*!\brief Функция включения режима перезаписи значения. * На выводе фиксируется текущее значение. */ virtual void setupOverride() = 0; /*!\brief Функция задания значения для перезаписи. * \param[in] value значение для перезаписи * \return Успешность задания значения (находимся в режиме замещения) */ virtual void setOverrideValue(TOutValue value) = 0; /*!\brief Функция получение фактического состояния на выводе. * \return Перезаписанное значение. */ virtual bool getHidenValue() const = 0; /*!\brief Функция выключения режима перезаписи. * */ virtual void resetOverride() = 0; virtual ~IGpioOverride() = default; }; } /* namespace peripheral */ #endif /* SOURCE_PERIPHERAL_IGPIOOVERRIDE_H_ */