my_map.c 4.4 KB
//#include "hardware.h"
//#include "all_value.h"
//#include "math.h"
//#include "my_map.h"
//u8 getCurrentMapPointNum(u32 *buff)//获取当前地图中的
//{
//	u8 num=0;
//	u8 i=0;
//	for(i=0;i<4;i++)
//	{
//		if(buff[i]!=0)num++;
//	}
//	
//	return num;
//}

//void getCurrentMapDirDis(u8 pointNum,u8 *dir,double *dis)//获取当前地图中的每点的方向和距离
//{
//	u8 i=0;
//	for(i=0;i<3;i++)
//	{
//		dir[i]=0;
//		dis[i]=0;
//	}
//	i=0;
//	if(pointNum>1)
//	{
//		for(i=0;i<(pointNum-1);i++)
//		{
//			dir[i] = Judge_dir_run(x[i],y[i],x[i+1],y[i+1]);
//			switch(dir[i])
//			{
//				case 1: dis[i] = xdis[i];	break;
//				case 2: dis[i] = ydis[i];	break;
//				case 3: dis[i] = xdis[i+1];	break;
//				case 4: dis[i] = ydis[i+1];	break;
//				default:dis[i] = 0;			break;
//			}
//		}
//	}		
//}

//u8 getCurrnetRoungDir(u8 dir1,u8 dir2)//获取当前的走弧方向,左拐1,,右拐2,,直走0
//{
//	u8 rounddir=0;
//	if((dir1-dir2)==-1||(dir1-dir2)==3)rounddir=1;else
//	if((dir1-dir2)==1||(dir1-dir2)==-3)rounddir=2;else rounddir=0;
//	return rounddir;
//}

//u8 getCurrentMapRoundMsg(u8 pointNum,u8 *dir,double *dis,u32 *startendpoint)//获取走弧的信息,入弧点,,出弧点,,走弧的方向,,返回值是否需要走弧
//{
//	u8 flag=0;
//	switch(pointNum)
//	{
//		case 3: if(dir[0]!=dir[1]&&pt[1]==14)
//				{
//					flag=1;
//					startendpoint[0]=codeValue[0];
//					startendpoint[1]=codeValue[2];
//					startendpoint[2]=getCurrnetRoungDir(dir[0],dir[1]);
//				}else
//				{
//					flag=0;
//					startendpoint[0]=0;
//					startendpoint[1]=0;
//					startendpoint[2]=0;
//				}
//				break;
//		case 4:	if(dir[0]!=dir[1]&&pt[1]==14)
//				{
//					flag=1;
//					startendpoint[0]=codeValue[0];
//					startendpoint[1]=codeValue[2];
//					startendpoint[2]=getCurrnetRoungDir(dir[0],dir[1]);
//				}else 
//				if(dir[1]!=dir[2]&&pt[2]==14)
//				{
//					flag=1;
//					startendpoint[0]=codeValue[1];
//					startendpoint[1]=codeValue[3];
//					startendpoint[2]=getCurrnetRoungDir(dir[1],dir[2]);
//				}else 
//				{
//					flag=0;
//					startendpoint[0]=0;
//					startendpoint[1]=0;
//					startendpoint[2]=0;
//				}
//				break;
//		default:flag=0;
//				startendpoint[0]=0;
//				startendpoint[1]=0;
//				startendpoint[2]=0;
//				break;
//	}
//	return flag;
//}


//u32 RoundStartEndPoint[3]={0};
//u8 roundFlag=0;

//u8 CurrentMapPointNum=0;
//u8 DirInCurrentMap[3] = {0};
//double DisInCurrentMap[3] = {0};

//void get_scheduler_msg(void)  	//地图信息
//{
//	u8 turnpointnum=0;
//	CurrentMapPointNum = getCurrentMapPointNum(codeValue);														//获取当前地图中有几个二维码
//	getCurrentMapDirDis(CurrentMapPointNum,DirInCurrentMap,DisInCurrentMap);									//获取当前地图中的有效方向和有效的距离
//	roundFlag = getCurrentMapRoundMsg(CurrentMapPointNum,DirInCurrentMap,DisInCurrentMap,RoundStartEndPoint);	//获取当前地图中是否存在走胡,入弧点和出弧点
//	
//	switch(CurrentMapPointNum)
//	{
//		case 2: if(pt[1]==14)
//				{
//					turnpointnum=1;
//				}else 
//				{
//					turnpointnum=2;
//				}break;
//		case 3: if(DirInCurrentMap[0]!=DirInCurrentMap[1])
//				{
//					if(pt[1]==14)
//					{
//						turnpointnum=1;
//					}else
//					{
//						turnpointnum=2;
//					}
//				}else 
//				if(DirInCurrentMap[0]==DirInCurrentMap[1])
//				{
//					if(pt[2]==14)
//					{
//						turnpointnum=2;
//					}else
//					{
//						turnpointnum=3;
//					}
//				}
//				break;
//		case 4: if(DirInCurrentMap[0]!=DirInCurrentMap[1])
//				{
//					if(pt[1]==14)
//					{
//						turnpointnum=1;
//					}else
//					{
//						turnpointnum=2;
//					}
//				}else 
//				if(DirInCurrentMap[1]!=DirInCurrentMap[2])
//				{
//					if(pt[2]==14)
//					{
//						turnpointnum=2;
//					}else
//					{
//						turnpointnum=3;
//					}
//				}else
//				{
//					if(pt[3]==14)
//					{
//						turnpointnum=3;
//					}else
//					{
//						turnpointnum=4;
//					}
//				}
//				break;
//		default:turnpointnum=1;break;
//	}
//	
//	get_startstopcode_dir[0]=codeValue[0];
//	get_startstopcode_dir[1]=codeValue[turnpointnum-1];
//	get_startstopcode_dir[2]=DirInCurrentMap[0];
//	get_startstopcode_dir[3]=turnpointnum;
//}
///****************************************************************/
//float get_distance(double *dis,u8 cnt,u8 cntnew)//计算行走距离,dis是当前地图中的每两点间的距离,cnt是在一条直线上的点的个数,cntnew相较上一次地图中多了几个点
//{
//	float i=0;
//	u8 j=0;
//	
//	if(cnt<2||cnt>4)
//	{
//		i=0;
//	}else
//	{
//		for(j=0;j<cntnew;j++)
//		{
//			i+=dis[cnt-2-j];
//		}
//	}

//	return i;
//}