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