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

47 lines
1.5 KiB
C++
Raw Permalink Normal View History

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