forked from logzhan/RobotHardware-UESTC
50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
|
#ifndef PIBOT_DATA_FRAME_H_
|
|||
|
#define PIBOT_DATA_FRAME_H_
|
|||
|
|
|||
|
// 协议接口类
|
|||
|
|
|||
|
//消息id定义
|
|||
|
enum MESSAGE_ID
|
|||
|
{
|
|||
|
ID_GET_VERSION = 0, // 获取version信息
|
|||
|
ID_SET_ROBOT_PARAMTER = 1, // 设置机器人参数
|
|||
|
ID_GET_ROBOT_PARAMTER = 2, // 获取机器人参数
|
|||
|
ID_CLEAR_ODOM = 3, // 清除里程计
|
|||
|
ID_SET_VELOCITY = 4, // 下发速度值
|
|||
|
ID_GET_ODOM = 5, // 获取里程计值
|
|||
|
ID_GET_PID_DATA = 6, // 获取PID值的输入和反馈(用于PID参数调节)
|
|||
|
ID_GET_IMU_DATA = 7, // 获取imu值
|
|||
|
ID_GET_ENCODER_COUNT = 8,
|
|||
|
ID_SET_MOTOR_PWM = 9,
|
|||
|
ID_MESSGAE_MAX
|
|||
|
};
|
|||
|
|
|||
|
// 通知接口
|
|||
|
class Notify
|
|||
|
{
|
|||
|
public:
|
|||
|
virtual void update(const MESSAGE_ID id, void* data) = 0;
|
|||
|
};
|
|||
|
|
|||
|
// 协议接口, 继承改接口实现一种协议
|
|||
|
class Dataframe
|
|||
|
{
|
|||
|
public:
|
|||
|
//初始化
|
|||
|
virtual bool init()=0;
|
|||
|
|
|||
|
// 注册notify, 对需要关注的id添加关注
|
|||
|
virtual void register_notify(const MESSAGE_ID id, Notify* _nf)=0;
|
|||
|
|
|||
|
// 数据接收接口
|
|||
|
virtual bool data_recv(unsigned char c)=0;
|
|||
|
|
|||
|
// 解析协议
|
|||
|
virtual bool data_parse()=0;
|
|||
|
|
|||
|
// 用于主动交互信息 预留
|
|||
|
virtual bool interact(const MESSAGE_ID id)=0;
|
|||
|
};
|
|||
|
|
|||
|
#endif
|