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

41 lines
1.1 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.

/*
* IEncoder.h
*
* Created on: 20 мар. 2019 г.
* Author: krugliy
*/
#ifndef SOURCE_DRIVER_IENCODER_H_
#define SOURCE_DRIVER_IENCODER_H_
#include <utility>
namespace driver {
//!Интерфейс взаимодействия с энкодерами.
struct IEncoder {
typedef float Turn;
typedef float Angle;
typedef std::pair<Turn, Angle> Position;
//!Функция возращает номер оборота.
virtual Turn getTurn() const = 0;
//!Функция возращает угол в радианах от 0 до 2*pi или NaN.
virtual Angle getAngle() const = 0;
//!Метод позволяет получить консистентные данные позиции энкодера в формате (оборот, угол).
virtual Position getPosition() const = 0;
static std::pair<Turn, Angle> delta( std::pair<Turn, Angle> point_0, std::pair<Turn, Angle> point_1 );
static Angle in_turn( std::pair<Turn, Angle> point, Turn base );
static std::pair<Turn, Angle> normalize( std::pair<Turn, Angle> point );
};
}
#endif /* SOURCE_DRIVER_IENCODER_H_ */