mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-23 19:25:09 +08:00
绘制基础UI
This commit is contained in:
@@ -441,6 +441,20 @@ static void WattLimitSet() /* 设定运动模态的输出 */
|
||||
LKMotorSetRef(r_driven, 195.3125 * -r_side.T_wheel);
|
||||
}
|
||||
|
||||
// 裁判系统,双板通信,电容功率控制等
|
||||
static void CommNPower()
|
||||
{
|
||||
// CANCommSend(cmd_can_comm, (void *)&chassis_feedback_data);
|
||||
|
||||
/* 更新ui数据 */
|
||||
ui_data.direction = chassis_cmd_recv.direction;
|
||||
ui_data.friction_mode = chassis_cmd_recv.friction_mode;
|
||||
ui_data.loader_mode = chassis_cmd_recv.loader_mode;
|
||||
ui_data.chassis_mode = chassis_cmd_recv.chassis_mode;
|
||||
ui_data.ui_mode = chassis_cmd_recv.ui_mode;
|
||||
ui_data.vision_mode = chassis_cmd_recv.vision_mode;
|
||||
}
|
||||
|
||||
void BalanceTask()
|
||||
{
|
||||
del_t = DWT_GetDeltaT(&balance_dwt_cnt);
|
||||
@@ -450,6 +464,8 @@ void BalanceTask()
|
||||
ControlSwitch();
|
||||
// 设置目标参数和工作模式
|
||||
WokingStateSet();
|
||||
// 裁判系统,双板通信,电容功率控制等
|
||||
CommNPower();
|
||||
// 参数组装
|
||||
ParamAssemble();
|
||||
// 将五连杆映射成单杆
|
||||
@@ -479,5 +495,4 @@ void BalanceTask()
|
||||
|
||||
// 运动模态,电机输出映射和限幅
|
||||
WattLimitSet();
|
||||
// CANCommSend(cmd_can_comm, (void *)&chassis_feedback_data);
|
||||
}
|
||||
@@ -249,6 +249,16 @@ static void MouseKeySet()
|
||||
else
|
||||
shoot_cmd_send.load_mode = LOAD_STOP;
|
||||
|
||||
switch (rc_data[TEMP].key[KEY_PRESS].z) // Z键刷新UI
|
||||
{
|
||||
case 0:
|
||||
chassis_cmd_send.ui_mode = UI_KEEP;
|
||||
break;
|
||||
default:
|
||||
chassis_cmd_send.ui_mode = UI_REFRESH;
|
||||
break;
|
||||
}
|
||||
|
||||
if (rc_data[TEMP].mouse.press_r)
|
||||
{
|
||||
gimbal_cmd_send.yaw = (vision_recv_data->yaw == 0 ? gimbal_cmd_send.yaw : vision_recv_data->yaw);
|
||||
@@ -330,6 +340,9 @@ void RobotCMDTask()
|
||||
EmergencyHandler(); // 处理模块离线和遥控器急停等紧急情况
|
||||
|
||||
chassis_cmd_send.direction = chassis_direction;
|
||||
// UI数据
|
||||
chassis_cmd_send.friction_mode = shoot_cmd_send.friction_mode;
|
||||
chassis_cmd_send.loader_mode = shoot_cmd_send.load_mode;
|
||||
|
||||
CANCommSend(cmd_can_comm, (void *)&chassis_cmd_send);
|
||||
|
||||
|
||||
@@ -72,6 +72,13 @@ typedef enum
|
||||
APP_ERROR,
|
||||
} App_Status_e;
|
||||
|
||||
// UI模式设置
|
||||
typedef enum
|
||||
{
|
||||
UI_KEEP = 0,
|
||||
UI_REFRESH,
|
||||
} ui_mode_e;
|
||||
|
||||
// 底盘模式设置
|
||||
/**
|
||||
* @brief 后续考虑修改为云台跟随底盘,而不是让底盘去追云台,云台的惯量比底盘小.
|
||||
@@ -122,6 +129,13 @@ typedef enum
|
||||
LOAD_BURSTFIRE, // 连发
|
||||
} loader_mode_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UNLOCK = 0, // 未开启自瞄或视觉未锁定
|
||||
CONVERGE, // 视觉锁定过程中,正在校准
|
||||
LOCK, // 视觉锁定, 可以开火
|
||||
} vision_mode_e;
|
||||
|
||||
// 功率限制,从裁判系统获取,是否有必要保留?
|
||||
typedef struct
|
||||
{ // 功率控制
|
||||
@@ -151,11 +165,12 @@ typedef struct
|
||||
chassis_direction_e direction;
|
||||
|
||||
// UI部分
|
||||
friction_mode_e friction_mode;
|
||||
Target_State_e target_state;
|
||||
loader_mode_e loader_mode;
|
||||
Chassis_Power_Data_s super_cap; // 超级电容
|
||||
friction_mode_e friction_mode; // 摩擦轮状态
|
||||
vision_mode_e vision_mode; // 视觉状态
|
||||
ui_mode_e ui_mode; // UI状态
|
||||
loader_mode_e loader_mode; // 拨盘状态
|
||||
|
||||
uint8_t ui_refresh_flag;
|
||||
} Chassis_Ctrl_Cmd_s;
|
||||
|
||||
// cmd发布的云台控制数据,由gimbal订阅
|
||||
|
||||
@@ -126,11 +126,12 @@ __attribute__((noreturn)) void StartROBOTTASK(void const *argument)
|
||||
__attribute__((noreturn)) void StartUITASK(void const *argument)
|
||||
{
|
||||
LOGINFO("[freeRTOS] UI Task Start");
|
||||
MyUIInit();
|
||||
// MyUIInit();
|
||||
LOGINFO("[freeRTOS] UI Init Done, communication with ref has established");
|
||||
for (;;)
|
||||
{
|
||||
// 每给裁判系统发送一包数据会挂起一次,详见UITask函数的refereeSend()
|
||||
MyUIInit();
|
||||
UITask();
|
||||
osDelay(1); // 即使没有任何UI需要刷新,也挂起一次,防止卡在UITask中无法切换
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user