109 lines
2.1 KiB
C
109 lines
2.1 KiB
C
/*
|
||
*地图,存储全场定位点位
|
||
*
|
||
*/
|
||
#include "map.h"
|
||
/* Private variables -------------------------------------------------------- */
|
||
|
||
|
||
Path_t path_state;
|
||
point_t path_1;
|
||
sick_t sick_1;
|
||
point_t path_2;
|
||
sick_t sick_2;
|
||
point_t path_3;
|
||
sick_t sick_3;
|
||
|
||
int finish_flag = 0;
|
||
|
||
//点位坐标x轴朝前,y轴朝右
|
||
void block_select(Action_POS_t*pos,CMD_t*cmd){
|
||
|
||
//1
|
||
path_1.x = 0;
|
||
path_1.y = 0;
|
||
path_1.angle=0;
|
||
sick_1.sick_qian = 0;
|
||
sick_1.sick_you = 0;
|
||
sick_1.sick_hou = 0;
|
||
sick_1.sick_zuo = 0;
|
||
sick_1.sick_flag = 0;
|
||
//2
|
||
path_2.x = 2000;
|
||
path_2.y = -2000;
|
||
path_2.angle=0;
|
||
sick_2.sick_qian = 1873;
|
||
sick_2.sick_you = 2180;
|
||
sick_2.sick_hou = 0;
|
||
sick_2.sick_zuo = 3350;
|
||
sick_2.sick_flag = 1;
|
||
//3
|
||
path_3.x = pos->pos_x;
|
||
path_3.y = pos->pos_y;
|
||
path_3.angle= 10;
|
||
sick_3.sick_qian = 0;
|
||
sick_3.sick_you = 0;
|
||
sick_3.sick_hou = 0;
|
||
sick_3.sick_zuo = 0;
|
||
sick_3.sick_flag = 0;
|
||
|
||
// static float target_angle = 0;
|
||
// static int finish_flag = 0;
|
||
// //检测是否使用相机
|
||
// if(cmd->camera_yaw != 0){
|
||
//
|
||
//// if(finish_flag == 0){
|
||
// target_angle += cmd->camera_yaw;
|
||
// if(target_angle<0){
|
||
// target_angle+=360;
|
||
// }
|
||
// if(target_angle>360){
|
||
// target_angle-=360;
|
||
// }
|
||
//// finish_flag = 1;
|
||
//// }
|
||
//// if(abs(pos->pos_yaw - target_angle)){
|
||
//// finish_flag = 0;
|
||
//// }
|
||
// }
|
||
// path_3.angle=target_angle;
|
||
}
|
||
|
||
/**
|
||
* 路径选择
|
||
*
|
||
* path_state.target
|
||
*/
|
||
void path_select(CMD_t*cmd){
|
||
|
||
static int8_t last_pos = -1;
|
||
|
||
if (cmd->C_cmd.pos != last_pos) {
|
||
|
||
switch (cmd->C_cmd.pos){
|
||
case POS_1:
|
||
path_state.target = &path_1;//选择路径
|
||
path_state.sick = &sick_1;
|
||
break;
|
||
case POS_2:
|
||
path_state.target = &path_2;//选择路径
|
||
path_state.sick = &sick_2;
|
||
break;
|
||
case POS_3:
|
||
path_state.target = &path_3;//选择路径
|
||
path_state.sick = &sick_3;
|
||
break;
|
||
}
|
||
path_state.points_flag = 0;
|
||
}
|
||
last_pos = cmd->C_cmd.pos; // 更新上一次的位置
|
||
|
||
if(cmd->C_cmd.mode != NAVI){
|
||
path_state.points_flag = 0;
|
||
}
|
||
}
|
||
|
||
Path_t *get_map_pointer(void){
|
||
return &path_state;
|
||
}
|