/* *地图,存储全场定位点位 * */ #include "map.h" #include "define.h" /* Private variables -------------------------------------------------------- */ /* 1 ________ 7 / \ 2 6 | | 3 ---- 4 ---- 5 1-7: 根2 2-3:2.5-x 3-4:1.25+x 4-5:1.25+x 5-6:根2 7-1:2.5m x≈0.8(量的) */ 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; point_t path_4; sick_t sick_4; point_t path_5; sick_t sick_5; point_t path_6; sick_t sick_6; point_t path_7; sick_t sick_7; //点位坐标x轴朝前,y轴朝右 void block_select(Action_POS_t*pos,CMD_t*cmd){ // 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; // path_2.x = pos->pos_x; // path_2.y = pos->pos_y; // path_2.angle= 0; // sick_2.sick_qian = 0; // sick_2.sick_you = 0; // sick_2.sick_hou = 0; // sick_2.sick_zuo = 0; // sick_2.sick_flag = 0; //1 path_1.x = -800; path_1.y = -800; 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 = -2500; path_2.y = -800; path_2.angle=0; sick_2.sick_qian = 0; sick_2.sick_you = 0; sick_2.sick_hou = 0; sick_2.sick_zuo = 0; sick_2.sick_flag = 0; //3 path_3.x = -2500; path_3.y = 1250; path_3.angle= 0; 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; //4 path_4.x = -2500; path_4.y = 3300; path_4.angle= 0; sick_4.sick_qian = 0; sick_4.sick_you = 0; sick_4.sick_hou = 0; sick_4.sick_zuo = 0; sick_4.sick_flag = 0; //5 path_5.x = -800; path_5.y = 3300; path_5.angle= 0; sick_5.sick_qian = 0; sick_5.sick_you = 0; sick_5.sick_hou = 0; sick_5.sick_zuo = 0; sick_5.sick_flag = 0; //6 path_6.x = 0; path_6.y = 2500; path_6.angle= 0; sick_6.sick_qian = 0; sick_6.sick_you = 0; sick_6.sick_hou = 0; sick_6.sick_zuo = 0; sick_6.sick_flag = 0; //7 path_7.x = 0; path_7.y = 0; path_7.angle= 0; sick_7.sick_qian = 0; sick_7.sick_you = 0; sick_7.sick_hou = 0; sick_7.sick_zuo = 0; sick_7.sick_flag = 0; } /** * 路径选择 * * 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; case POS_4: path_state.target = &path_4; path_state.sick = &sick_4; break; case POS_5: path_state.target = &path_5; path_state.sick = &sick_5; break; case POS_6: path_state.target = &path_6; path_state.sick = &sick_6; break; case POS_7: path_state.target = &path_7; path_state.sick = &sick_7; 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; }