RobotHardware-UESTC/Hardware/Pibot驱动底盘/PiRobot_Firmware v1.0/STM32/Lib/Transport/dataframe.h

50 lines
1.2 KiB
C
Raw Permalink Normal View History

2023-12-12 10:36:56 +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添加关注
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