码迷,mamicode.com
首页 > 其他好文 > 详细

车牌计算

时间:2016-06-28 10:39:48      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

void Get_CP_MSG(u8 * src_dat,u8 * des_dat)		//解析出车牌的5bit值
{
    u8 temp,i;
    //分离
	//  [      0      ] [      1      ] [      2      ] [      3      ] [      4      ] [      5      ] [      6      ] 
	//  * * * * * * * * + + + + + + + + * * * * * * * * + + + + + + + + * * * * * * * * + + + + + + + + * * * * * * * * 
	//  7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
	//  1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 # * * * * * * # # # # $ $ $ $
	//  1表示检测,2表示区 3-7表示车牌
	//  *表示年   #表示日   $表示月

    des_dat[0]=(src_dat[0]>>2)&0X3F;//1

	temp=(src_dat[0]<<3)&0X18;
	des_dat[1]=(src_dat[1]>>5)&0X07;//2
	des_dat[1]=des_dat[1]+temp;

	temp=(src_dat[1]<<1)&0X3E;
	des_dat[2]=(src_dat[2]>>7)&0X01;//3
	des_dat[2]=des_dat[2]+temp;

	des_dat[3]=(src_dat[2]>>1)&0X3F;//4

    temp=(src_dat[2]<<5)&0X20;//5
	des_dat[4]=(src_dat[3]>>3)&0X1F;
	des_dat[4]=des_dat[4]+temp;

	temp=(src_dat[3]<<3)&0X38;//6
	des_dat[5]=(src_dat[4]>>5)&0X07;
	des_dat[5]=des_dat[5]+temp;

	temp=(src_dat[4]<<1)&0X3E;
	des_dat[6]=(src_dat[5]>>7)&0X01;//3
	des_dat[6]=des_dat[6]+temp;

	//年  
	des_dat[7]=src_dat[5]&0X3F;//     
	//月  
	des_dat[8]=src_dat[6]&0X0F;//  
	//日
	temp=(src_dat[5]>>2)&0X10;
    des_dat[9]=(src_dat[6]>>4)&0X0F;//  
	des_dat[9]=des_dat[9]+temp;


	//映射
	des_dat[0]=jianchen(des_dat[0]);

	for(i=1;i<7;i++)
	{
	    des_dat[i]=Check_Plate_Num(des_dat[i]);
	}
}

u8 jianchen(u8 dat)
{
    if(dat==1)
	{
        dat=36;//return _T("皖");
	}
	else if(dat==2)
	{
        dat=37;//return _T("京");
	}
	else if(dat==3)
	{
        dat=38;//return _T("闽");
	}
	else if(dat==4)
	{
        dat=39;//return _T("甘");
	}
	else if(dat==5)
	{
        dat=40;//return _T("粤");
	}
	else if(dat==6)
	{ 
        dat=41;//return _T("桂");
	}
	else if(dat==7)
	{
        dat=42;//return _T("贵");
	}
	else if(dat==8)
	{
        dat=43;//return _T("琼");
	}
	else if(dat==9)
	{
        dat=44;//return _T("翼");
	}
	else if(dat==10)
	{
        dat=45;//return _T("豫");
	}
    else if(dat==11)
	{
        dat=46;//return _T("黑");
	}
    else if(dat==12)
	{
        dat=47;//return _T("鄂");
	}
    else if(dat==13)
	{
        dat=48;//return _T("湘");
	}
    else if(dat==14)
	{
        dat=49;//return _T("吉");
	}
	else if(dat==15)
	{
        dat=50;//return _T("苏");
	}
	else if(dat==16)
	{
        dat=51;//return _T("赣");
	}
	else if(dat==17)
	{
        dat=52;//return _T("辽");
	}
	else if(dat==18)
	{
        dat=53;//return _T("蒙");
	}
	else if(dat==19)
	{
        dat=54;//return _T("宁");
	}
	else if(dat==20)
	{
        dat=55;//return _T("青");
	}
	else if(dat==21)
	{ 
        dat=56;//return _T("鲁");
	}
	else if(dat==22)
	{
        dat=57;//return _T("晋");
	}
	else if(dat==23)
	{
        dat=58;//return _T("陕");
	}
	else if(dat==24)
	{
        dat=59;//return _T("沪");
	}
	else if(dat==25)
	{
        dat=60;//return _T("川");
	}
	else if(dat==26)
	{
        dat=61;//return _T("津");
	}
	else if(dat==27)
	{
        dat=62;//return _T("藏");
	}
	else if(dat==28)
	{
        dat=63;//return _T("新");
	}
	else if(dat==29)
	{
        dat=64;//return _T("云");
	}
	else if(dat==30)
	{
        dat=65;//return _T("浙");
	}
	else if(dat==31)
	{
        dat=66;//return _T("渝");
	}
	else if(dat==32)
	{
        dat=67;//return _T("军");
	}
	else if(dat==33)
	{
        dat=68;//return _T("空");
	}
	else if(dat==34)
	{
        dat=69;//return _T("海");
	}
	else if(dat==35)
	{
        dat=70;//return _T("北");
	}
	else if(dat==36)
	{
        dat=71;//return _T("沈");
	}
	else if(dat==37)
	{
        dat=72;//return _T("兰");
	}
	else if(dat==38)
	{
        dat=73;//return _T("济");
	}
	else if(dat==39)
	{
        dat=74;//return _T("南");
	}
	else if(dat==40)
	{
        dat=75;//return _T("广");
	}
	else if(dat==41)
	{
        dat=76;//return _T("成");
	}
	return dat;
}

u8 Check_Plate_Num(u8 dat)
{
    if(dat==0)
	{
        dat=35;//return _T("0");
	}
	//1-9保持不变
	else if(dat==10)
	{
        dat=77;//return _T("A");
	}
	else if(dat==11)
	{
        dat=78;//return _T("B");
	}
	else if(dat==12)
	{
        dat=79;//return _T("C");
	}
	else if(dat==13)
	{
        dat=80;//return _T("D");
	}
	else if(dat==14)
	{
        dat=81;//return _T("E");
	}
	else if(dat==15)
	{
        dat=82;//return _T("F");
	}
	else if(dat==16)
	{
        dat=83;//return _T("G");
	}
	else if(dat==17)
	{
        dat=84;//return _T("H");
	}
	else if(dat==18)
	{
        dat=85;//return _T("I");
	}
	else if(dat==19)
	{
        dat=86;//return _T("J");
	}
	else if(dat==20)
	{
        dat=87;//return _T("K");
	}
	else if(dat==21)
	{
        dat=88;//return _T("L");
	}
	else if(dat==22)
	{
        dat=89;//return _T("M");
	}
	else if(dat==23)
	{
        dat=90;//return _T("N");
	}
	else if(dat==25)
	{
        dat=92;//return _T("P");
	}
	else if(dat==26)
	{
        dat=93;//return _T("Q");
	}
	else if(dat==27)
	{
        dat=94;//return _T("R");
	}
	else if(dat==28)
	{
        dat=95;//return _T("S");
	}
	else if(dat==29)
	{
        dat=96;//return _T("T");
	}
	else if(dat==30)
	{
        dat=97;//return _T("U");
	}
	else if(dat==31)
	{
        dat=98;//return _T("V");
	}
	else if(dat==32)
	{
        dat=99;//return _T("W");
	}
	else if(dat==33)
	{
        dat=100;//return _T("X");
	}
	else if(dat==34)
	{
        dat=101;//return _T("Y");
	}
	else if(dat==35)
	{
        dat=102;//return _T("Z");
	}
	return dat;
}

  

车牌计算

标签:

原文地址:http://www.cnblogs.com/EasyInvoice/p/5622409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!