MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/peripheral/IGpioOverride.hh

57 lines
2.0 KiB
C++
Raw Permalink Normal View History

2024-06-07 11:12:56 +03:00
/*
* 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_ */