/****************************************************************************** 版权所有 (C), 2018-2099, Radkil ****************************************************************************** 文 件 名 : BHBF.h 版 本 号 : 初稿 作 者 : radkil 生成日期 : 2026年6月8日 最近修改 : 功能描述 : BHBF.c 的头文件 修改历史 : 1.日 期 : 2026年6月8日 作 者 : radkil 修改内容 : 创建文件 ******************************************************************************/ /*----------------------------------------------* * 外部变量说明 * *----------------------------------------------*/ /*----------------------------------------------* * 外部函数原型说明 * *----------------------------------------------*/ /*----------------------------------------------* * 内部函数原型说明 * *----------------------------------------------*/ /*----------------------------------------------* * 全局变量 * *----------------------------------------------*/ /*----------------------------------------------* * 模块级变量 * *----------------------------------------------*/ /*----------------------------------------------* * 常量定义 * *----------------------------------------------*/ /*----------------------------------------------* * 宏定义 * *----------------------------------------------*/ #ifndef __BHBF_H__ #define __BHBF_H__ #ifdef __cplusplus #if __cplusplus extern "C"{ #endif #endif /* __cplusplus */ /*==============================================* * include header files * *----------------------------------------------*/ #include "drv_interface.h" #include "rd_time.h" #include "cmsis_os.h" #include /*==============================================* * constants or macros define * *----------------------------------------------*/ #define MODULE_NAME_RBCORE "RBcore" #define MODULE_NAME_MOTOR "motor" #define MODULE_NAME_CUSTOM "custom" #define MODULE_NAME_SENDIV "sendiv" #define MODULE_NAME_DAEMON "daemon" #define MODULE_NAME_TIMER "timer" typedef enum { COMMON_CMD_SHOW_INFO, // 终端信息展示 COMMON_CMD_STOP_ALL, // 机器人停止(建议各个控制硬件的模块都要实现) MOTOR_START = 0x0100, // *电机命令开始* MOTOR_SET_SPEED, // 设置速度 MOTOR_POWER_ENABLE, // 电机上电 MOTOR_POWER_DISABLE, // 电机失电 RBCORE_START = 0x0200, // *机器人共性命令开始* RBCORE_CMD_STOP_ALL, // 此命令统一调用机器人各个模块的COMMON_CMD_STOP_ALL RBCORE_CMD_MANUAL_FORWARD, // 机器人手动前进 RBCORE_CMD_MANUAL_BACKWARD, // 机器人手动后退 RBCORE_CMD_MANUAL_TURNLEFT, // 机器人手动左转 RBCORE_CMD_MANUAL_TURNRIGHT, // 机器人手动右转 RBCORE_GET_VEHICLE_SPEED, // 获取机器人速度(内部速度归一化) CUSTOM_START = 0x0300, // *机器人特性命令开始* CUSTOM_GET_PV, // 获取PV CUSTOM_GET_MK32, // 获取MK32 CUSTOM_GET_TL720D_ROLL, // 获取陀螺仪横滚角(IV显示) CUSTOM_GET_SPEED, // 获取速度(电机回码) CUSTOM_GET_FAULT_CODE, // 获取错误码(电机回码) CUSTOM_GET_DAEMON_CODE, // 获取daemon错误码 CUSTOM_CMD_PAINTGUN, // 控制喷枪 CUSTOM_CMD_STRAIGHT_DRIVE, // RBCORE_CMD_STRAIGHT_DRIVE命令停止后回调 CUSTOM_CMD_TURN_ANGLE, // RBCORE_CMD_TURN_ANGLE命令停止后回调 CUSTOM_SET_STOP_OFF_PAINT, // 停车关枪标志位置1 SENDIV_START = 0x0400, // *IV发送线程命令(一般低优先级事项也放到这)* SENDIV_SET_IV, // 设置IV DAEMON_START = 0x0500, // *守护线程命令 DAEMON_SET_MK32_SBUS, // 置位ComError_MK32_SBus DAEMON_SET_TL720D, // 置位ComError_TL720D DAEMON_SET_LEFT_MOTOR, // 置位ComError_LS_LeftMotor DAEMON_SET_RIGHT_MOTOR, // 置位ComError_LS_RightMotor DAEMON_SET_BUTTON_RESET, // 置位ComError_Remote_Button_Reset_State DAEMON_SET_MK32_SERIAL, // 置位ComError_MK32_Serial DAEMON_SET_MK32_UDP, // 置位ComError_MK32_UDP TIMER_START = 0x0600, // *2ms定时器命令 TIMER_CMD_STRAIGHT_DRIVE, // 机器人直线行驶命令格式为BHBF_straight_drive_Cmd TIMER_CMD_RESET_STRAIGHT, // 上一条命令支持计时前进,这里重置计时 TIMER_CMD_TURN_ANGLE, // 机器人转向目标角度(带PID) } BHBF_Cmd_e; #define THREAD_DEFAULT_STACK 4096 typedef struct { int m_iMode; //正数表示前进,负数表示倒退 int m_iAngle; //目标角度 int m_iTime; //行驶时间(单位毫秒)计时,负数表示一直行走 int m_iSpeed; //车速 } BHBF_straight_drive_Cmd; /*==============================================* * project-wide global variables * *----------------------------------------------*/ int32_t Get_BIT(int32_t* num,int32_t k); /*==============================================* * routines' or functions' implementations * *----------------------------------------------*/ #ifdef __cplusplus #if __cplusplus } #endif #endif /* __cplusplus */ #endif /* __BHBF_ROBOT_H__ */