自瞄,底盘低通滤波
This commit is contained in:
parent
a0b54b3cdd
commit
5a320042a0
|
@ -22,6 +22,7 @@
|
|||
#include "bsp_dwt.h"
|
||||
#include "referee_UI.h"
|
||||
#include "arm_math.h"
|
||||
#include "user_lib.h"
|
||||
|
||||
#include "vofa.h"
|
||||
|
||||
|
@ -43,9 +44,11 @@ attitude_t *Chassis_IMU_data;
|
|||
static Publisher_t *chassis_pub; // 用于发布底盘的数据
|
||||
static Subscriber_t *chassis_sub; // 用于订阅底盘的控制命令
|
||||
#endif // !ONE_BOARD
|
||||
static Chassis_Ctrl_Cmd_s chassis_cmd_recv ; // 底盘接收到的控制命令
|
||||
static Chassis_Ctrl_Cmd_s chassis_cmd_recv; // 底盘接收到的控制命令
|
||||
static Chassis_Upload_Data_s chassis_feedback_data; // 底盘回传的反馈数据
|
||||
static Chassis_Ctrl_Cmd_s Chassis_Power_Mx;
|
||||
const static float CHASSIS_ACCEL_X_NUM=0.1666666667f;
|
||||
const static float CHASSIS_ACCEL_Y_NUM=0.3333333333f;
|
||||
|
||||
|
||||
|
||||
|
@ -58,6 +61,8 @@ static DJIMotorInstance *motor_lf, *motor_rf, *motor_lb, *motor_rb; // left righ
|
|||
/* 私有函数计算的中介变量,设为静态避免参数传递的开销 */
|
||||
static float chassis_vx, chassis_vy; // 将云台系的速度投影到底盘
|
||||
static float vt_lf, vt_rf, vt_lb, vt_rb; // 底盘速度解算后的临时输出,待进行限幅
|
||||
first_order_filter_type_t vx_filter;
|
||||
first_order_filter_type_t vy_filter;
|
||||
|
||||
void ChassisInit() {
|
||||
// 四个轮子的参数一样,改tx_id和反转标志位即可
|
||||
|
@ -117,6 +122,9 @@ void ChassisInit() {
|
|||
}};
|
||||
cap = SuperCapInit(&cap_conf); // 超级电容初始化
|
||||
|
||||
//用一阶滤波代替斜波函数生成
|
||||
first_order_filter_init(&vx_filter, 0.002f, &CHASSIS_ACCEL_X_NUM);
|
||||
first_order_filter_init(&vx_filter, 0.002f, &CHASSIS_ACCEL_Y_NUM);
|
||||
// PowerMeter_Init_Config_s
|
||||
|
||||
// 发布订阅初始化,如果为双板,则需要can comm来传递消息
|
||||
|
@ -270,7 +278,9 @@ void ChassisTask() {
|
|||
|
||||
chassis_vx = chassis_cmd_recv.vx * cos_theta - chassis_cmd_recv.vy * sin_theta;
|
||||
chassis_vy = chassis_cmd_recv.vx * sin_theta + chassis_cmd_recv.vy * cos_theta;
|
||||
|
||||
//一阶低通滤波计算
|
||||
first_order_filter_cali(&vx_filter, chassis_vx);
|
||||
first_order_filter_cali(&vy_filter, chassis_vy);
|
||||
// 根据控制模式进行正运动学解算,计算底盘输出
|
||||
//MecanumCalculate();
|
||||
OmniCalculate();
|
||||
|
|
|
@ -119,8 +119,7 @@ static void CalcOffsetAngle() {
|
|||
* @brief 控制输入为遥控器(调试时)的模式和控制量设置
|
||||
*
|
||||
*/
|
||||
static void update_ui_data()
|
||||
{
|
||||
static void update_ui_data() {
|
||||
ui_data.chassis_mode = chassis_cmd_send.chassis_mode;
|
||||
ui_data.gimbal_mode = gimbal_cmd_send.gimbal_mode;
|
||||
ui_data.friction_mode = shoot_cmd_send.friction_mode;
|
||||
|
@ -129,6 +128,51 @@ static void update_ui_data()
|
|||
ui_data.Chassis_Power_Data.chassis_power_mx = referee_data->GameRobotState.chassis_power_limit;
|
||||
}
|
||||
|
||||
static void auto_aim_mode() {
|
||||
trajectory_cal.v0 = 25; //弹速30
|
||||
if (vision_recv_data->x == 0 && vision_recv_data->y == 0 && vision_recv_data->z == 0
|
||||
&& vision_recv_data->vx == 0 && vision_recv_data->vy == 0 && vision_recv_data->vz == 0) {
|
||||
aim_select.suggest_fire = 0;
|
||||
//未发现目标
|
||||
no_find_cnt++;
|
||||
|
||||
if (no_find_cnt >= 2000) {
|
||||
//gimbal_scan_flag = 1;
|
||||
//auto_aim_flag = 0;
|
||||
}
|
||||
//else
|
||||
//auto_aim_flag = 1;
|
||||
} else {
|
||||
//弹道解算
|
||||
no_find_cnt = 0;
|
||||
auto_aim_flag = 1;
|
||||
|
||||
auto_aim(&aim_select, &trajectory_cal, vision_recv_data);
|
||||
|
||||
VisionSetAim(aim_select.aim_point[0], aim_select.aim_point[1], aim_select.aim_point[2]);
|
||||
|
||||
float single_angle_yaw_now = gimbal_fetch_data.gimbal_imu_data.Yaw;
|
||||
float diff_yaw = trajectory_cal.cmd_yaw * 180 / PI - single_angle_yaw_now;
|
||||
float yaw_err = diff_yaw;
|
||||
|
||||
if(diff_yaw>180)
|
||||
diff_yaw -= 360;
|
||||
else if(diff_yaw<-180)
|
||||
diff_yaw += 360;
|
||||
|
||||
gimbal_cmd_send.yaw = gimbal_fetch_data.gimbal_imu_data.YawTotalAngle + diff_yaw;
|
||||
|
||||
gimbal_cmd_send.pitch = -trajectory_cal.cmd_pitch * 180 / PI;
|
||||
|
||||
if (yaw_err <= 3) //3度
|
||||
{
|
||||
aim_select.suggest_fire = 1;
|
||||
}
|
||||
else
|
||||
aim_select.suggest_fire = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void RemoteControlSet() {
|
||||
// 控制底盘和云台运行模式,云台待添加,云台是否始终使用IMU数据?
|
||||
if (switch_is_down(rc_data[TEMP].rc.switch_right)) // 右侧开关状态[下],小陀螺
|
||||
|
@ -167,38 +211,7 @@ static void RemoteControlSet() {
|
|||
}
|
||||
// 左侧开关状态为[下],视觉模式
|
||||
if (switch_is_down(rc_data[TEMP].rc.switch_left)) {
|
||||
trajectory_cal.v0 = 25; //弹速30
|
||||
if (vision_recv_data->x == 0 && vision_recv_data->y == 0 && vision_recv_data->z == 0
|
||||
&& vision_recv_data->vx == 0 && vision_recv_data->vy == 0 && vision_recv_data->vz == 0) {
|
||||
aim_select.suggest_fire = 0;
|
||||
//未发现目标
|
||||
no_find_cnt++;
|
||||
|
||||
if (no_find_cnt >= 2000) {
|
||||
//gimbal_scan_flag = 1;
|
||||
//auto_aim_flag = 0;
|
||||
}
|
||||
//else
|
||||
//auto_aim_flag = 1;
|
||||
} else {
|
||||
//弹道解算
|
||||
no_find_cnt = 0;
|
||||
auto_aim_flag = 1;
|
||||
|
||||
auto_aim(&aim_select, &trajectory_cal, vision_recv_data);
|
||||
|
||||
VisionSetAim(aim_select.aim_point[0], aim_select.aim_point[1], aim_select.aim_point[2]);
|
||||
|
||||
gimbal_cmd_send.yaw = truncf(gimbal_fetch_data.gimbal_imu_data.YawTotalAngle / 360) + trajectory_cal.cmd_yaw * 180 / PI;
|
||||
|
||||
gimbal_cmd_send.pitch = trajectory_cal.cmd_pitch * 180 / PI;
|
||||
|
||||
float yaw_err = fabsf(gimbal_cmd_send.yaw - gimbal_fetch_data.gimbal_imu_data.Yaw);
|
||||
if (yaw_err <= 5) //3度
|
||||
aim_select.suggest_fire = 1;
|
||||
else
|
||||
aim_select.suggest_fire = 0;
|
||||
}
|
||||
auto_aim_mode();
|
||||
}
|
||||
// 云台软件限位
|
||||
|
||||
|
@ -244,41 +257,6 @@ static void hand_aim_mode() {
|
|||
|
||||
}
|
||||
|
||||
static void auto_aim_mode() {
|
||||
trajectory_cal.v0 = 25; //弹速30
|
||||
if (vision_recv_data->x == 0 && vision_recv_data->y == 0 && vision_recv_data->z == 0
|
||||
&& vision_recv_data->vx == 0 && vision_recv_data->vy == 0 && vision_recv_data->vz == 0) {
|
||||
aim_select.suggest_fire = 0;
|
||||
//未发现目标
|
||||
no_find_cnt++;
|
||||
|
||||
if (no_find_cnt >= 2000) {
|
||||
//gimbal_scan_flag = 1;
|
||||
//auto_aim_flag = 0;
|
||||
}
|
||||
//else
|
||||
//auto_aim_flag = 1;
|
||||
} else {
|
||||
//弹道解算
|
||||
no_find_cnt = 0;
|
||||
auto_aim_flag = 1;
|
||||
|
||||
auto_aim(&aim_select, &trajectory_cal, vision_recv_data);
|
||||
|
||||
VisionSetAim(aim_select.aim_point[0], aim_select.aim_point[1], aim_select.aim_point[2]);
|
||||
|
||||
gimbal_cmd_send.yaw = truncf(gimbal_fetch_data.gimbal_imu_data.YawTotalAngle / 360) + trajectory_cal.cmd_yaw * 180 / PI;
|
||||
|
||||
gimbal_cmd_send.pitch = trajectory_cal.cmd_pitch * 180 / PI;
|
||||
|
||||
float yaw_err = fabsf(gimbal_cmd_send.yaw - gimbal_fetch_data.gimbal_imu_data.Yaw);
|
||||
if (yaw_err <= 5) //3度
|
||||
aim_select.suggest_fire = 1;
|
||||
else
|
||||
aim_select.suggest_fire = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 输入为键鼠时模式和控制量设置
|
||||
*
|
||||
|
@ -310,10 +288,7 @@ static void MouseKeySet() {
|
|||
vision_recv_data->vz == 0))
|
||||
{
|
||||
shoot_cmd_send.load_mode = LOAD_STOP;
|
||||
}
|
||||
|
||||
|
||||
else {
|
||||
} else {
|
||||
auto_aim_mode();
|
||||
if (aim_select.suggest_fire == 1 && rc_data[TEMP].mouse.press_l &&
|
||||
shoot_cmd_send.friction_mode == FRICTION_ON) {
|
||||
|
@ -432,7 +407,7 @@ void RobotCMDTask() {
|
|||
EmergencyHandler(); // 处理模块离线和遥控器急停等紧急情况
|
||||
|
||||
// 设置视觉发送数据,还需增加加速度和角速度数据
|
||||
VisionSetFlag(referee_data->referee_id.Robot_Color);
|
||||
VisionSetFlag(!referee_data->referee_id.Robot_Color);
|
||||
|
||||
//根据裁判系统反馈确定底盘功率上限
|
||||
chassis_cmd_send.chassis_power_limit = referee_data->GameRobotState.chassis_power_limit;
|
||||
|
|
Binary file not shown.
|
@ -124,4 +124,15 @@ CMakeFiles/basic_framework.elf.dir/application/chassis/chassis.c.obj: \
|
|||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/mpu_wrappers.h \
|
||||
D:\zhandui\cqdm\basic_framework\modules/general_def.h \
|
||||
D:\zhandui\cqdm\basic_framework\modules\referee/referee_UI.h \
|
||||
D:\zhandui\cqdm\basic_framework\modules\algorithm/user_lib.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS/cmsis_os.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/task.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/list.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/timers.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/task.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/queue.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/semphr.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/queue.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/event_groups.h \
|
||||
D:\zhandui\cqdm\basic_framework\Middlewares\Third_Party\FreeRTOS\Source\include/timers.h \
|
||||
D:\zhandui\cqdm\basic_framework\modules\vofa/vofa.h
|
||||
|
|
|
@ -4154,6 +4154,17 @@ CMakeFiles/basic_framework.elf.dir/application/chassis/chassis.c.obj
|
|||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h
|
||||
D:/zhandui/cqdm/basic_framework/modules/general_def.h
|
||||
D:/zhandui/cqdm/basic_framework/modules/referee/referee_UI.h
|
||||
D:/zhandui/cqdm/basic_framework/modules/algorithm/user_lib.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/task.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/list.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/task.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h
|
||||
D:/zhandui/cqdm/basic_framework/modules/vofa/vofa.h
|
||||
|
||||
CMakeFiles/basic_framework.elf.dir/application/cmd/robot_cmd.c.obj
|
||||
|
|
|
@ -4081,6 +4081,17 @@ CMakeFiles/basic_framework.elf.dir/application/chassis/chassis.c.obj: D:/zhandui
|
|||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h \
|
||||
D:/zhandui/cqdm/basic_framework/modules/general_def.h \
|
||||
D:/zhandui/cqdm/basic_framework/modules/referee/referee_UI.h \
|
||||
D:/zhandui/cqdm/basic_framework/modules/algorithm/user_lib.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/list.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h \
|
||||
D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
|
||||
D:/zhandui/cqdm/basic_framework/modules/vofa/vofa.h
|
||||
|
||||
CMakeFiles/basic_framework.elf.dir/application/cmd/robot_cmd.c.obj: D:/zhandui/cqdm/basic_framework/application/cmd/robot_cmd.c \
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -212,3 +212,33 @@ void MatInit(mat *m, uint8_t row, uint8_t col)
|
|||
m->numRows = row;
|
||||
m->pData = (float *)zmalloc(row * col * sizeof(float));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 一阶低通滤波初始化
|
||||
* @author RM
|
||||
* @param[in] 一阶低通滤波结构体
|
||||
* @param[in] 间隔的时间,单位 s
|
||||
* @param[in] 滤波参数
|
||||
* @retval 返回空
|
||||
*/
|
||||
void first_order_filter_init(first_order_filter_type_t *first_order_filter_type, float frame_period, const float num[1])
|
||||
{
|
||||
first_order_filter_type->frame_period = frame_period;
|
||||
first_order_filter_type->num[0] = num[0];
|
||||
first_order_filter_type->input = 0.0f;
|
||||
first_order_filter_type->out = 0.0f;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 一阶低通滤波计算
|
||||
* @author RM
|
||||
* @param[in] 一阶低通滤波结构体
|
||||
* @param[in] 间隔的时间,单位 s
|
||||
* @retval 返回空
|
||||
*/
|
||||
void first_order_filter_cali(first_order_filter_type_t *first_order_filter_type, float input)
|
||||
{
|
||||
first_order_filter_type->input = input;
|
||||
first_order_filter_type->out =
|
||||
first_order_filter_type->num[0] / (first_order_filter_type->num[0] + first_order_filter_type->frame_period) * first_order_filter_type->out + first_order_filter_type->frame_period / (first_order_filter_type->num[0] + first_order_filter_type->frame_period) * first_order_filter_type->input;
|
||||
}
|
||||
|
|
|
@ -53,6 +53,13 @@ void MatInit(mat *m, uint8_t row, uint8_t col);
|
|||
#ifndef PI
|
||||
#define PI 3.14159265354f
|
||||
#endif
|
||||
typedef __packed struct
|
||||
{
|
||||
float input; //输入数据
|
||||
float out; //滤波输出的数据
|
||||
float num[1]; //滤波参数
|
||||
float frame_period; //滤波的时间间隔 单位 s
|
||||
} first_order_filter_type_t;
|
||||
|
||||
#define VAL_LIMIT(val, min, max) \
|
||||
do \
|
||||
|
@ -120,6 +127,10 @@ void Cross3d(float *v1, float *v2, float *res);
|
|||
float Dot3d(float *v1, float *v2);
|
||||
|
||||
float AverageFilter(float new_data, float *buf, uint8_t len);
|
||||
//一阶低通滤波初始化
|
||||
void first_order_filter_init(first_order_filter_type_t *first_order_filter_type, float frame_period, const float num[1]);
|
||||
//一阶低通滤波计算
|
||||
void first_order_filter_cali(first_order_filter_type_t *first_order_filter_type, float input);
|
||||
|
||||
#define rad_format(Ang) loop_float_constrain((Ang), -PI, PI)
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ void INS_Task(void) {
|
|||
INS.YawTotalAngle = QEKF_INS.YawTotalAngle;
|
||||
|
||||
//VisionSetAltitude(INS.Yaw, INS.Pitch, INS.Roll);
|
||||
VisionSetAltitude(INS.Yaw * PI / 180, INS.Roll * PI / 180);
|
||||
VisionSetAltitude(INS.Yaw * PI / 180, -INS.Roll * PI / 180);
|
||||
}
|
||||
|
||||
// temperature control
|
||||
|
|
|
@ -103,7 +103,6 @@ void MyUIInit()
|
|||
UICharDraw(&UI_State_dyn[4], "sd4", UI_Graph_ADD, 8, UI_Color_Pink, 15, 2, 270, 550, "open ");
|
||||
UICharRefresh(&referee_recv_info->referee_id, UI_State_dyn[4]);
|
||||
|
||||
|
||||
// 底盘功率显示,静态
|
||||
UICharDraw(&UI_State_sta[5], "ss5", UI_Graph_ADD, 8, UI_Color_Green, 18, 2, 620, 230, "Power_MAX:");
|
||||
UICharRefresh(&referee_recv_info->referee_id, UI_State_sta[5]);
|
||||
|
|
|
@ -33,6 +33,7 @@ void OnProjectLoad (void) {
|
|||
//
|
||||
// User settings
|
||||
//
|
||||
Project.SetOSPlugin ("FreeRTOSPlugin_CM4");
|
||||
Edit.SysVar (VAR_HSS_SPEED, FREQ_500_HZ);
|
||||
File.Open ("$(ProjectDir)/cmake-build-debug/basic_framework.elf");
|
||||
}
|
||||
|
|
|
@ -1,32 +1,38 @@
|
|||
|
||||
|
||||
OpenDocument="main.c", FilePath="D:/zhandui/cqdm/basic_framework/Src/main.c", Line=64
|
||||
OpenDocument="bsp_dwt.c", FilePath="D:/zhandui/cqdm/basic_framework/bsp/dwt/bsp_dwt.c", Line=79
|
||||
OpenDocument="xs.jdebug", FilePath="D:/zhandui/cqdm/basic_framework/xs.jdebug", Line=0
|
||||
OpenDocument="ins_task.c", FilePath="D:/zhandui/cqdm/basic_framework/modules/imu/ins_task.c", Line=192
|
||||
OpenDocument="referee_task.c", FilePath="D:/zhandui/cqdm/basic_framework/modules/referee/referee_task.c", Line=75
|
||||
OpenDocument="main.c", FilePath="D:/zhandui/cqdm/basic_framework/Src/main.c", Line=63
|
||||
OpenDocument="bsp_dwt.c", FilePath="D:/zhandui/cqdm/basic_framework/bsp/dwt/bsp_dwt.c", Line=75
|
||||
OpenDocument="startup_stm32f407ighx.s", FilePath="D:/zhandui/cqdm/basic_framework/Startup/startup_stm32f407ighx.s", Line=46
|
||||
OpenDocument="stm32f4xx_it.c", FilePath="D:/zhandui/cqdm/basic_framework/Src/stm32f4xx_it.c", Line=102
|
||||
OpenDocument="controller.c", FilePath="D:/zhandui/cqdm/basic_framework/modules/algorithm/controller.c", Line=133
|
||||
OpenDocument="controller.h", FilePath="D:/zhandui/cqdm/basic_framework/modules/algorithm/controller.h", Line=42
|
||||
OpenDocument="SEGGER_RTT.c", FilePath="D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.c", Line=1181
|
||||
OpenDocument="gimbal.c", FilePath="D:/zhandui/cqdm/basic_framework/application/gimbal/gimbal.c", Line=105
|
||||
OpenDocument="chassis.c", FilePath="D:/zhandui/cqdm/basic_framework/application/chassis/chassis.c", Line=51
|
||||
OpenDocument="chassis.c", FilePath="D:/zhandui/cqdm/basic_framework/application/chassis/chassis.c", Line=180
|
||||
OpenDocument="tasks.c", FilePath="D:/zhandui/cqdm/basic_framework/Middlewares/Third_Party/FreeRTOS/Source/tasks.c", Line=3394
|
||||
OpenToolbar="Debug", Floating=0, x=0, y=0
|
||||
OpenWindow="Source Files", DockArea=LEFT, x=0, y=0, w=651, h=534, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Disassembly", DockArea=RIGHT, x=0, y=0, w=1649, h=158, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Memory 1", DockArea=BOTTOM, x=3, y=0, w=929, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, EditorAddress=0x30A3D70C
|
||||
OpenWindow="Watched Data 1", DockArea=LEFT, x=0, y=1, w=651, h=558, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Terminal", DockArea=BOTTOM, x=0, y=0, w=645, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Data Sampling", DockArea=BOTTOM, x=2, y=0, w=379, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0
|
||||
OpenWindow="Timeline", DockArea=RIGHT, x=0, y=1, w=1649, h=934, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="2 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="0;0", DataGraphShowNamesAtCursor=0, PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="1422;-71", CodeGraphLegendShown=0, CodeGraphLegendPosition="1438;0"
|
||||
OpenWindow="Console", DockArea=BOTTOM, x=1, y=0, w=604, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Source Files", DockArea=LEFT, x=0, y=0, w=651, h=544, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Memory 1", DockArea=BOTTOM, x=3, y=0, w=1045, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, EditorAddress=0x30A3D70C
|
||||
OpenWindow="Watched Data 1", DockArea=LEFT, x=0, y=1, w=651, h=568, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Terminal", DockArea=BOTTOM, x=0, y=0, w=725, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
OpenWindow="Data Sampling", DockArea=BOTTOM, x=2, y=0, w=426, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0
|
||||
OpenWindow="Console", DockArea=BOTTOM, x=1, y=0, w=681, h=328, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0
|
||||
SmartViewPlugin="", Page="", Toolbar="Hidden", Window="SmartView 1"
|
||||
TableHeader="Source Files", SortCol="File", SortOrder="ASCENDING", VisibleCols=["File";"Status";"Size";"#Insts";"Path"], ColWidths=[263;100;100;100;950]
|
||||
TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time"], ColWidths=[100;100]
|
||||
TableHeader="Data Sampling Setup", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Type";"Value";"Min";"Max";"Average";"# Changes";"Min. Change";"Max. Change"], ColWidths=[438;100;100;100;100;100;110;126;126]
|
||||
TableHeader="Power Sampling", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";"Ch 0"], ColWidths=[100;100;100]
|
||||
TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[238;100;104;183]
|
||||
TableHeader="Task List", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Name";"Run Count";"Priority";"Status";"Timeout";"Stack Info";"ID";"Mutex Count";"Notified Value";"Notify State"], ColWidths=[110;110;110;110;110;110;110;110;110;110]
|
||||
TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[238;100;104;209]
|
||||
TableHeader="RegisterSelectionDialog", SortCol="None", SortOrder="ASCENDING", VisibleCols=[], ColWidths=[]
|
||||
TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[27;27;27;685]
|
||||
TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[27;27;27;27]
|
||||
WatchedExpression="yaw_motor", RefreshRate=2, Window=Watched Data 1
|
||||
WatchedExpression="pitch_motor", RefreshRate=2, Window=Watched Data 1
|
||||
WatchedExpression="motor_rf", RefreshRate=2, Window=Watched Data 1
|
||||
WatchedExpression="motor_rf", RefreshRate=2, Window=Watched Data 1
|
||||
WatchedExpression="referee_data", RefreshRate=2, Window=Watched Data 1
|
||||
WatchedExpression="referee_recv_info", Window=Watched Data 1
|
||||
WatchedExpression="chassis_power_limit", Window=Watched Data 1
|
||||
WatchedExpression="chassis_cmd_recv", RefreshRate=2, Window=Watched Data 1
|
Loading…
Reference in New Issue