Index: yc_msr/libyc_msr.a
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: yc_msr/libyc_msr.a
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: yc_msr/yc_msr.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_msr/yc_msr.c	(revision 602)
+++ /YC3121_SDK/fw/sdk/yc_msr/yc_msr.c	(working copy)
@@ -19,8 +19,8 @@
 unsigned char T2data_buf[MAX_TRACK_RAW_DATA_SZIE] ={0};
 unsigned char T3data_buf[MAX_TRACK_RAW_DATA_SZIE] ={0};
 
-static swiping_direction SwipDirectionConfig =SD_BIDIRECTION;  //用户配置刷卡方向
-static swiping_direction SwipDirection =SD_FORWARD_DIRECTION;  //实际刷卡方向
+static swiping_direction SwipDirectionConfig =SD_BIDIRECTION;  //鐢ㄦ埛閰嶇疆鍒峰崱鏂瑰悜
+static swiping_direction SwipDirection =SD_FORWARD_DIRECTION;  //瀹為檯鍒峰崱鏂瑰悜
 
 static uint8_t  TrackDataHead[3] = {0x45,0x0B,0x0B};//1,0,0,0,1,0,1   ,0,1,0,1,1     0,1,0,1,1
 static uint8_t  TrackDataEnd[3]  = {0x1F,0x1F,0x1F};//0,0,1,1,1,1,1    1,1,1,1,1      1,1,1,1,1
@@ -78,8 +78,8 @@
 }MSR_DataStruct;
  MSR_DataStruct MsrData;
 
-#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)//a:bufindex,b:bitindex； bufindex是当前检索的字节数，bitindex是在当前字节的有效位
-#define indexdec(a,b) ((b)>0)?((b)--):((a)--, (b)=4)//反向刷卡的索引移动
+#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)//a:bufindex,b:bitindex锛 bufindex鏄綋鍓嶆绱㈢殑瀛楄妭鏁帮紝bitindex鏄湪褰撳墠瀛楄妭鐨勬湁鏁堜綅
+#define indexdec(a,b) ((b)>0)?((b)--):((a)--, (b)=4)//鍙嶅悜鍒峰崱鐨勭储寮曠Щ鍔
 
 static uint8_t  get_data_bit(uint8_t data, int bitindex)
 {
@@ -101,7 +101,7 @@
 	switch(direction)
 	{
 		case SD_FORWARD_DIRECTION:
-			while( bitnum < CodingBits)     //在包头的长度内读取对应位的数据
+			while( bitnum < CodingBits)     //鍦ㄥ寘澶寸殑闀垮害鍐呰鍙栧搴斾綅鐨勬暟鎹
 			{
 				if( 1 == get_data_bit(InputBuf[bufindex], bitindex)  )
 				getchar |=  (1<<bitnum);
@@ -185,11 +185,11 @@
 	uint8_t LRCData=0x00;
 	for (int i = 0; i < len-1; i++)
   	{
-  		if(CodingBits==5)	data[i]&=0x0F;//奇偶校验位不参与LRC校验
+  		if(CodingBits==5)	data[i]&=0x0F;//濂囧伓鏍￠獙浣嶄笉鍙備笌LRC鏍￠獙
 		else	data[i]&=0x3F;
 
   		LRCData ^=  data[i];
-  		if(CodingBits==5)	data[i]+=0x30;//编码转换
+  		if(CodingBits==5)	data[i]+=0x30;//缂栫爜杞崲
 		else	data[i]+=0x20;
  	 }
  	 if(CodingBits==5)	data[len-1]&=0x0F;
@@ -238,7 +238,7 @@
 		CodingBits: one data size
 		direction: swipcard direction
 		track: the track you select ,it will equal to TRACK_SELECT_1,TRACK_SELECT_2 or TRACK_SELECT_3
-		OutputBuf：decoding data
+		OutputBuf锟斤拷decoding data
 		Outlen: decoding data length 
 
 * @retval 
@@ -257,7 +257,7 @@
 	{
 		return TRACK_NO_DATA;          
 	}
-	int TempDirection=SD_FORWARD_DIRECTION, HeadIndex=0;//默认按照正向解码，
+	int TempDirection=SD_FORWARD_DIRECTION, HeadIndex=0;//榛樿鎸夌収姝ｅ悜瑙ｇ爜
 	int bufindex = 0;
 	int bitindex = 0;
 	uint8_t tempdata = 0;
@@ -276,7 +276,7 @@
 	#endif
 	
 	
-//正向找到了头 就先正解
+//姝ｅ悜鎵惧埌浜嗗ご 灏卞厛姝ｈВ
 
 	SwipDirection=SD_FORWARD_DIRECTION;
 		
@@ -295,13 +295,13 @@
 			{	
 					if(get_data_bit( InputBuf[bufindex], bitindex))
 					{
-						tempdata|= 1<<getbinarynum;    //最终获得5个bit的数字值，用于奇偶校验
+						tempdata|= 1<<getbinarynum;    //鏈缁堣幏寰5涓猙it鐨勬暟瀛楀硷紝鐢ㄤ簬濂囧伓鏍￠獙
 					}
 					getbinarynum++;
-					indexadd(bufindex,bitindex);	//#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)bufindex是当前检索的字节数，bitindex是在当前字节的有效位
+					indexadd(bufindex,bitindex);	//#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)bufindex鏄綋鍓嶆绱㈢殑瀛楄妭鏁帮紝bitindex鏄湪褰撳墠瀛楄妭鐨勬湁鏁堜綅
 			}
 
-			if(!MSR_OddEvenCheck(tempdata,CodingBits))                   //奇校验，如果错误则进入执行
+			if(!MSR_OddEvenCheck(tempdata,CodingBits))                   //濂囨牎楠岋紝濡傛灉閿欒鍒欒繘鍏ユ墽琛
 			{
 				#ifdef MSR_DEBUG
 				MyPrintf("Forward direction Odd Even Check error bufindex:%d  bitindex %d data:%02X\n",bufindex,bitindex,tempdata);
@@ -310,7 +310,7 @@
 				rtnvalue = PARITY_ERR;
 				break;
 			}
-			OutputBuf[(*OutLen)++] = tempdata;     //奇校验通过
+			OutputBuf[(*OutLen)++] = tempdata;     //濂囨牎楠岄氳繃
 
 			if(*(OutLen) >MAX_TRACK_DATA_SIZE)
 			{
@@ -323,7 +323,7 @@
 			}
 			else
 			{
-				if(OutputBuf[(*OutLen)-1] == end)//找到停止位
+				if(OutputBuf[(*OutLen)-1] == end)//鎵惧埌鍋滄浣
 				{
 					tempdata = 0;
 					getbinarynum = 0;
@@ -351,7 +351,7 @@
 					}
 					if(MSR_LRCCheck(OutputBuf, ((*OutLen)+1), CodingBits))
 					{
-						OutputBuf[*OutLen] = 0x00;//剔除LRC校验位
+						OutputBuf[*OutLen] = 0x00;//鍓旈櫎LRC鏍￠獙浣
 						if((TempDirection==SwipDirectionConfig) ||(SwipDirectionConfig==SD_BIDIRECTION))
 						{
 							return MSR_SUCCESS;
@@ -380,7 +380,7 @@
 	}
 
 	
-//反向解码起始位置
+//鍙嶅悜瑙ｇ爜璧峰浣嶇疆
 	SwipDirection = SD_REVERSE_DIRECTION;
 	TempDirection = SD_REVERSE_DIRECTION;
 	HeadIndex=MSR_GetHeadIndex(InputBuf,InPutLen, head, end, CodingBits,&TempDirection);
@@ -437,7 +437,7 @@
 		}
 		else
 		{
-			if(OutputBuf[(*OutLen)-1] == end)//找到停止位
+			if(OutputBuf[(*OutLen)-1] == end)//鎵惧埌鍋滄浣
 			{
 				tempdata = 0;
 				getbinarynum = 0;
@@ -465,7 +465,7 @@
 				
 				if(MSR_LRCCheck(OutputBuf, ((*OutLen)+1), CodingBits))
 				{
-					OutputBuf[*OutLen]=0x00;//剔除LRC校验位
+					OutputBuf[*OutLen]=0x00;//鍓旈櫎LRC鏍￠獙浣
 					if(TempDirection==SwipDirectionConfig||SwipDirectionConfig==SD_BIDIRECTION)
 					{
 						return MSR_SUCCESS;
@@ -496,8 +496,12 @@
  uint8_t MSR_GetDecodeData(track_data  *ptrack, uint8_t options, uint8_t *cfmt, uint8_t *tflag)
  {
  	uint8_t result[3];
- 	int i; 
- 	if(options&TRACK_SELECT_1||options&TRACK_SELECT_ALL)   //选择磁道一或全部磁道
+	int i; 
+	*tflag = 0;
+	*cfmt =0;
+	 memset((char*)ptrack,0,sizeof(ptrack));
+
+ 	if(options&TRACK_SELECT_1||options&TRACK_SELECT_ALL)   //閫夋嫨纾侀亾涓鎴栧叏閮ㄧ閬
  	{
  		#if defined (MSR_DEBUG) 
  		MyPrintf("\nstart track1 decode\n");
@@ -660,11 +664,11 @@
 				new_track_data_num[i]=ISO7811_GetTrackDataNum(1<<i);
 				if(old_track_data_num[i]!=new_track_data_num[i])
 				{
-					return DETECT_NO_SWIPING_CARD;//在刷卡
+					return DETECT_NO_SWIPING_CARD;//锟斤拷刷锟斤拷
 				}
 				else
 				{
-					//没有done、char_num不为0、一段时间也不变化，则认为是乱的数据
+					//没锟斤拷done锟斤拷char_num锟斤拷为0锟斤拷一锟斤拷时锟斤拷也锟斤拷锟戒化锟斤拷锟斤拷锟斤拷为锟斤拷锟揭碉拷锟斤拷锟斤拷
 					MSR_ENABLE(DISABLE);
 					MSR_ENABLE(ENABLE);
 					return DETECT_NO_SWIPING_CARD;
@@ -737,11 +741,11 @@
 				new_track_data_num[i]=ISO7811_GetTrackDataNum(1<<i);
 				if(old_track_data_num[i]!=new_track_data_num[i])
 				{
-					return DETECT_NO_SWIPING_CARD;//在刷卡
+					return DETECT_NO_SWIPING_CARD;//锟斤拷刷锟斤拷
 				}
 				else
 				{
-					//没有done、char_num不为0、一段时间也不变化，则认为是乱的数据
+					//没锟斤拷done锟斤拷char_num锟斤拷为0锟斤拷一锟斤拷时锟斤拷也锟斤拷锟戒化锟斤拷锟斤拷锟斤拷为锟斤拷锟揭碉拷锟斤拷锟斤拷
 					MSR_ENABLE(DISABLE);
 					MSR_ENABLE(ENABLE);
 					return DETECT_NO_SWIPING_CARD;
@@ -1005,7 +1009,7 @@
 
 /**
  * @brief	:Channel select signal for 3 tracks 
- * @param ：T1ChannelSel: channel seletct signal for track 1,the param must equal to signal_t1 in this software version.
+ * @param 锟斤拷T1ChannelSel: channel seletct signal for track 1,the param must equal to signal_t1 in this software version.
 						T2ChannelSel: channel seletct signal for track 2,the param can  equal to signal_t2,signal_t3
 						T3ChannelSel: channel seletct signal for track 3,the param can  equal to signal_t2,signal_t3
 						//parm select from enum signal_fortrack.
Index: yc_msr/yc_msr_single.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_msr/yc_msr_single.c	(revision 602)
+++ /YC3121_SDK/fw/sdk/yc_msr/yc_msr_single.c	(working copy)
@@ -22,8 +22,8 @@
 unsigned char T2data_buf[MAX_TRACK_RAW_DATA_SZIE] ={0};
 unsigned char T3data_buf[MAX_TRACK_RAW_DATA_SZIE] ={0};
 
-static swiping_direction SwipDirectionConfig =SD_BIDIRECTION;  //用户配置刷卡方向
-static swiping_direction SwipDirection =SD_FORWARD_DIRECTION;  //实际刷卡方向
+static swiping_direction SwipDirectionConfig =SD_BIDIRECTION;  //鐢ㄦ埛閰嶇疆鍒峰崱鏂瑰悜
+static swiping_direction SwipDirection =SD_FORWARD_DIRECTION;  //瀹為檯鍒峰崱鏂瑰悜
 
 static uint8_t  TrackDataHead[3] = {0x45,0x0B,0x0B};//1,0,0,0,1,0,1   ,0,1,0,1,1     0,1,0,1,1
 static uint8_t  TrackDataEnd[3]  = {0x1F,0x1F,0x1F};//0,0,1,1,1,1,1    1,1,1,1,1      1,1,1,1,1
@@ -81,8 +81,8 @@
 }MSR_DataStruct;
  MSR_DataStruct MsrData;
 
-#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)//a:bufindex,b:bitindex； bufindex是当前检索的字节数，bitindex是在当前字节的有效位
-#define indexdec(a,b) ((b)>0)?((b)--):((a)--, (b)=4)//反向刷卡的索引移动
+#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)//a:bufindex,b:bitindex锛 bufindex鏄綋鍓嶆绱㈢殑瀛楄妭鏁帮紝bitindex鏄湪褰撳墠瀛楄妭鐨勬湁鏁堜綅
+#define indexdec(a,b) ((b)>0)?((b)--):((a)--, (b)=4)//鍙嶅悜鍒峰崱鐨勭储寮曠Щ鍔
 
 static uint8_t  get_data_bit(uint8_t data, int bitindex)
 {
@@ -104,7 +104,7 @@
 	switch(direction)
 	{
 		case SD_FORWARD_DIRECTION:
-			while( bitnum < CodingBits)     //在包头的长度内读取对应位的数据
+			while( bitnum < CodingBits)      //鍦ㄥ寘澶寸殑闀垮害鍐呰鍙栧搴斾綅鐨勬暟鎹
 			{
 				if( 1 == get_data_bit(InputBuf[bufindex], bitindex)  )
 				getchar |=  (1<<bitnum);
@@ -188,11 +188,11 @@
 	uint8_t LRCData=0x00;
 	for (int i = 0; i < len-1; i++)
   	{
-  		if(CodingBits==5)	data[i]&=0x0F;//奇偶校验位不参与LRC校验
+  		if(CodingBits==5)	data[i]&=0x0F;//濂囧伓鏍￠獙浣嶄笉鍙備笌LRC鏍￠獙
 		else	data[i]&=0x3F;
 
   		LRCData ^=  data[i];
-  		if(CodingBits==5)	data[i]+=0x30;//编码转换
+  		if(CodingBits==5)	data[i]+=0x30;//缂栫爜杞崲
 		else	data[i]+=0x20;
  	 }
  	 if(CodingBits==5)	data[len-1]&=0x0F;
@@ -241,7 +241,7 @@
 		CodingBits: one data size
 		direction: swipcard direction
 		track: the track you select ,it will equal to TRACK_SELECT_1,TRACK_SELECT_2 or TRACK_SELECT_3
-		OutputBuf：decoding data
+		OutputBuf锟斤拷decoding data
 		Outlen: decoding data length 
 
 * @retval 
@@ -260,7 +260,7 @@
 	{
 		return TRACK_NO_DATA;          
 	}
-	int TempDirection=SD_FORWARD_DIRECTION, HeadIndex=0;//默认按照正向解码，
+	int TempDirection=SD_FORWARD_DIRECTION, HeadIndex=0;//榛樿鎸夌収姝ｅ悜瑙ｇ爜锛
 	int bufindex = 0;
 	int bitindex = 0;
 	uint8_t tempdata = 0;
@@ -279,7 +279,7 @@
 	#endif
 	
 	
-//正向找到了头 就先正解
+//姝ｅ悜鎵惧埌浜嗗ご 灏卞厛姝ｈВ
 
 	SwipDirection=SD_FORWARD_DIRECTION;
 		
@@ -298,13 +298,13 @@
 			{	
 					if(get_data_bit( InputBuf[bufindex], bitindex))
 					{
-						tempdata|= 1<<getbinarynum;    //最终获得5个bit的数字值，用于奇偶校验
+						tempdata|= 1<<getbinarynum;    //鏈缁堣幏寰5涓猙it鐨勬暟瀛楀硷紝鐢ㄤ簬濂囧伓鏍￠獙
 					}
 					getbinarynum++;
-					indexadd(bufindex,bitindex);	//#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)bufindex是当前检索的字节数，bitindex是在当前字节的有效位
+					indexadd(bufindex,bitindex);	//#define indexadd(a,b) ((b)<4)?((b)++):((a)++, (b)=0)bufindex鏄綋鍓嶆绱㈢殑瀛楄妭鏁帮紝bitindex鏄湪褰撳墠瀛楄妭鐨勬湁鏁堜綅
 			}
 
-			if(!MSR_OddEvenCheck(tempdata,CodingBits))                   //奇校验，如果错误则进入执行
+			if(!MSR_OddEvenCheck(tempdata,CodingBits))     //濂囨牎楠岋紝濡傛灉閿欒鍒欒繘鍏ユ墽琛
 			{
 				#ifdef MSR_DEBUG
 				MyPrintf("Forward direction Odd Even Check error bufindex:%d  bitindex %d data:%02X\n",bufindex,bitindex,tempdata);
@@ -313,7 +313,7 @@
 				rtnvalue = PARITY_ERR;
 				break;
 			}
-			OutputBuf[(*OutLen)++] = tempdata;     //奇校验通过
+			OutputBuf[(*OutLen)++] = tempdata;    //濂囨牎楠岄氳繃
 
 			if(*(OutLen) >MAX_TRACK_DATA_SIZE)
 			{
@@ -326,7 +326,7 @@
 			}
 			else
 			{
-				if(OutputBuf[(*OutLen)-1] == end)//找到停止位
+				if(OutputBuf[(*OutLen)-1] == end)//鎵惧埌鍋滄浣
 				{
 					tempdata = 0;
 					getbinarynum = 0;
@@ -354,7 +354,7 @@
 					}
 					if(MSR_LRCCheck(OutputBuf, ((*OutLen)+1), CodingBits))
 					{
-						OutputBuf[*OutLen] = 0x00;//剔除LRC校验位
+						OutputBuf[*OutLen] = 0x00;//鍓旈櫎LRC鏍￠獙浣
 						if((TempDirection==SwipDirectionConfig) ||(SwipDirectionConfig==SD_BIDIRECTION))
 						{
 							return MSR_SUCCESS;
@@ -383,7 +383,7 @@
 	}
 
 	
-//反向解码起始位置
+//鍙嶅悜瑙ｇ爜璧峰浣嶇疆
 	SwipDirection = SD_REVERSE_DIRECTION;
 	TempDirection = SD_REVERSE_DIRECTION;
 	HeadIndex=MSR_GetHeadIndex(InputBuf,InPutLen, head, end, CodingBits,&TempDirection);
@@ -440,7 +440,7 @@
 		}
 		else
 		{
-			if(OutputBuf[(*OutLen)-1] == end)//找到停止位
+			if(OutputBuf[(*OutLen)-1] == end)//鎵惧埌鍋滄浣
 			{
 				tempdata = 0;
 				getbinarynum = 0;
@@ -468,7 +468,7 @@
 				
 				if(MSR_LRCCheck(OutputBuf, ((*OutLen)+1), CodingBits))
 				{
-					OutputBuf[*OutLen]=0x00;//剔除LRC校验位
+					OutputBuf[*OutLen]=0x00;//鍓旈櫎LRC鏍￠獙浣
 					if(TempDirection==SwipDirectionConfig||SwipDirectionConfig==SD_BIDIRECTION)
 					{
 						return MSR_SUCCESS;
@@ -499,8 +499,12 @@
  uint8_t MSR_GetDecodeData(track_data  *ptrack, uint8_t options, uint8_t *cfmt, uint8_t *tflag)
  {
  	uint8_t result[3];
- 	int i; 
- 	if(options&TRACK_SELECT_1||options&TRACK_SELECT_ALL)   //选择磁道一或全部磁道
+	int i; 
+	*tflag = 0;
+	*cfmt =0;
+	 memset((char*)ptrack,0,sizeof(ptrack));
+	 
+ 	if(options&TRACK_SELECT_1||options&TRACK_SELECT_ALL)   //閫夋嫨纾侀亾涓鎴栧叏閮ㄧ閬
  	{
  		#if defined (MSR_DEBUG) 
  		MyPrintf("\nstart track1 decode\n");
@@ -806,7 +810,7 @@
 	ISO7811_T2_AGC_CFG |= 1<<ISO7811_AGC_CFG_DISAB_MASK;
 	ISO7811_T3_AGC_CFG |= 1<<ISO7811_AGC_CFG_DISAB_MASK;
 	
-	//单端磁头配置
+	//鍗曠纾佸ご閰嶇疆
 	ISO7811_T2_PEAK_WIDTH_CFG	 = 0x620064;
 	ISO7811_T2_PULSE_WIDTH_CFG	 = 0x14afffe;
 	#if 0
@@ -828,7 +832,7 @@
 	
 //	ISO7811_T3_AGC_CFG = 0x24722b22;
 	
-	delay_ms(300);//处理上电第一次刷卡失败问题(配置完模拟寄存器需要等待稳定再使能总开关)
+	delay_ms(300);//澶勭悊涓婄數绗竴娆″埛鍗″け璐ラ棶棰(閰嶇疆瀹屾ā鎷熷瘎瀛樺櫒闇瑕佺瓑寰呯ǔ瀹氬啀浣胯兘鎬诲紑鍏)
 #ifdef MSR_FPGA
 	ISO7811_CTRL &= ~(0x1FF <<20);
 #endif
@@ -939,7 +943,7 @@
 
 /**
  * @brief	:Channel select signal for 3 tracks 
- * @param ：T1ChannelSel: channel seletct signal for track 1,the param must equal to signal_t1 in this software version.
+ * @param 锟斤拷T1ChannelSel: channel seletct signal for track 1,the param must equal to signal_t1 in this software version.
 						T2ChannelSel: channel seletct signal for track 2,the param can  equal to signal_t2,signal_t3
 						T3ChannelSel: channel seletct signal for track 3,the param can  equal to signal_t2,signal_t3
 						//parm select from enum signal_fortrack.

Index: yc_msr/yc_msr.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
