huan 分支

This commit is contained in:
Xiaocheng 2026-01-14 17:50:12 +08:00
parent 88acd92609
commit a1fe767681
3 changed files with 35 additions and 2 deletions

View File

@ -146,15 +146,19 @@ int8_t CMD_CtrlSet(Chassis_CMD_t *c_cmd, const CMD_RC_t *rc, Gimbal_CMD_t *g_cmd
{
case CMD_SW_UP:
g_cmd->ctrl_mode = GIMBAL_MODE_REMOTE;
s_cmd->control_mode = SHOOT_REMOTE;
break;
case CMD_SW_MID:
g_cmd->ctrl_mode = GIMBAL_MODE_AI;
s_cmd->control_mode = SHOOT_AI;
break;
case CMD_SW_DOWN:
g_cmd->ctrl_mode = GIMBAL_MODE_AI;
s_cmd->control_mode = SHOOT_AI;
break;
case CMD_SW_ERR:
g_cmd->ctrl_mode = GIMBAL_MODE_REMOTE;
s_cmd->control_mode = SHOOT_REMOTE;
break;
}

View File

@ -126,8 +126,15 @@ typedef enum {
SHOOT_MODE_NUM
}Shoot_Mode_t;
typedef enum {
SHOOT_REMOTE = 0,/* 遥控器控制 */
SHOOT_AI, /* AI控制 */
} Shoot_Control_Mode_t;
typedef struct {
Shoot_Mode_t mode;/* 射击模式 */
Shoot_Control_Mode_t control_mode;/* 控制模式 */
bool ready; /* 准备射击 */
bool firecmd; /* 射击 */
}Shoot_CMD_t;

View File

@ -4,11 +4,12 @@
*/
/* Includes ----------------------------------------------------------------- */
#include "module/cmd.h"
#include "task/user_task.h"
/* USER INCLUDE BEGIN */
#include "module/shoot.h"
#include "module/config.h"
#include "device/ai.h"
/* USER INCLUDE END */
/* Private typedef ---------------------------------------------------------- */
@ -18,6 +19,7 @@
/* USER STRUCT BEGIN */
Shoot_t shoot;
Shoot_CMD_t shoot_cmd;
AI_cmd_t shoot_ai_cmd;
/* USER STRUCT END */
/* Private function --------------------------------------------------------- */
@ -42,8 +44,28 @@ Shoot_SetMode(&shoot,SHOOT_MODE_SINGLE);
tick += delay_tick; /* 计算下一个唤醒时刻 */
/* USER CODE BEGIN */
osMessageQueueGet(task_runtime.msgq.shoot.cmd, &shoot_cmd, NULL, 0);
osMessageQueueGet(task_runtime.msgq.gimbal.ai.s_cmd, &shoot_ai_cmd, NULL, 0);
if(shoot_cmd.control_mode==SHOOT_REMOTE)
{
//do nothing使用遥控器的指令
}
else if(shoot_cmd.control_mode==SHOOT_AI)
{
shoot_cmd.mode = SHOOT_MODE_SINGLE;
if(shoot_ai_cmd.mode==0 || shoot_ai_cmd.mode==1)
{
shoot_cmd.firecmd=false;
shoot_cmd.ready=true;
}
else if(shoot_ai_cmd.mode==2)
{
shoot_cmd.firecmd=true;
shoot_cmd.ready=true;
}
}
Shoot_UpdateFeedback(&shoot);
Shoot_SetMode(&shoot,shoot_cmd.mode);