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