36 lines
745 B
C++
36 lines
745 B
C++
#ifndef PIBOT_ENCODER_IMP_H_
|
|
#define PIBOT_ENCODER_IMP_H_
|
|
|
|
#include "encoder.h"
|
|
|
|
//编码器实现 编码器原理具体可以参考https://www.jianshu.com/p/068fb9882655
|
|
class EncoderImp : public Encoder
|
|
{
|
|
public:
|
|
EncoderImp(unsigned char num, bool _reverse=0);
|
|
|
|
//初始化
|
|
virtual void init();
|
|
|
|
//清除编码器
|
|
virtual void clear();
|
|
|
|
//获取累计编码器值
|
|
virtual long get_total_count();
|
|
|
|
//获取编码器变化值, 用于pid计算
|
|
virtual long get_increment_count_for_dopid();
|
|
|
|
//获取编码器变化值, 用于odom计算
|
|
virtual long get_increment_count_for_odom();
|
|
|
|
unsigned char get_reverse(){return reverse;}
|
|
private:
|
|
bool reverse;
|
|
unsigned char num;
|
|
long pid_pos, odom_pos;
|
|
float total_count;
|
|
};
|
|
|
|
#endif
|