MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/driver/IEncoder.hh

41 lines
973 B
C++
Raw Normal View History

/*
* IEncoder.h
*
* Created on: 20 <EFBFBD><EFBFBD><EFBFBD>. 2019 <EFBFBD>.
* Author: krugliy
*/
#ifndef SOURCE_DRIVER_IENCODER_H_
#define SOURCE_DRIVER_IENCODER_H_
#include <utility>
namespace driver {
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
struct IEncoder {
typedef float Turn;
typedef float Angle;
typedef std::pair<Turn, Angle> Position;
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
virtual Turn getTurn() const = 0;
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 0 <20><> 2*pi <20><><EFBFBD> NaN.
virtual Angle getAngle() const = 0;
//!<21><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>).
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_ */