177 lines
3.4 KiB
C
177 lines
3.4 KiB
C
/*
|
||
*地图,存储全场定位点位
|
||
*
|
||
*/
|
||
#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;
|
||
}
|