MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/schematic/ReversCounter.hh
2024-06-07 11:12:56 +03:00

43 lines
1.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* ReversCounter.hh
*
* Created on: 19 мая 2021 г.
* Author: sozonov
*/
#ifndef UMLIBRARY_SCHEMATIC_REVERSCOUNTER_HH_
#define UMLIBRARY_SCHEMATIC_REVERSCOUNTER_HH_
/*!Класс реализует логику работы реверсивного счётчика:
*В зависимости от настройки direction, при вызове метода счёта, счетчик либо увеличивает, либо уменьшает свое значение
*Модуль счёта module отвечает за значение сброса счётчика
*При вызове метода сброса, счётчик принимает значение по сбросу reset_value */
class ReversCounter {
public:
//todo: В конструктор необходимо передавать енум. Решение о преобразовании - на вызывающем коде.
enum Direction{
Increment ,
Decrement
};
ReversCounter(unsigned int _dir, unsigned int _mod, unsigned int _r_v);
//!Дискретный шаг счёта.
void count();
//!Сброс значения счетчика.
void reset();
//!Получение значения счётчика.
unsigned int getCount() const{return counter;}
protected:
//Данные, задающиеся в настройках
Direction direction; //!<направление счета
const unsigned int module; //!<модуль счёта
const unsigned int reset_value; //!<значение по сбросу
unsigned int counter; //!<значение счётчика
//!метод при пересечении через границы счётчика
virtual void border_crossing();
};
#endif /* UMLIBRARY_SCHEMATIC_REVERSCOUNTER_HH_ */