57 lines
2.0 KiB
C++
57 lines
2.0 KiB
C++
|
|
/*
|
|||
|
|
* 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_ */
|