47 lines
1.5 KiB
C++
47 lines
1.5 KiB
C++
|
|
/*
|
|||
|
|
* 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_ */
|