2024-01-20 13:19:09 +08:00
|
|
|
|
#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添加关注
|
2024-01-24 22:08:32 +08:00
|
|
|
|
virtual void RegisterNotify(const MESSAGE_ID id, Notify* _nf)=0;
|
2024-01-20 13:19:09 +08:00
|
|
|
|
|
|
|
|
|
// 数据接收接口
|
|
|
|
|
virtual bool dataRecv(unsigned char c)=0;
|
|
|
|
|
|
|
|
|
|
// 解析协议
|
|
|
|
|
virtual bool dataParse()=0;
|
|
|
|
|
|
|
|
|
|
// 用于主动交互信息 预留
|
|
|
|
|
virtual bool interact(const MESSAGE_ID id)=0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|