⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comm.c.bak

📁 基于s3c2410的linux下面指纹识别程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:

/*********************************************************************************************
* name:		read_newgrade
* func:		读取比对等级
* para:		none 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char read_newgrade(void)  //读当前对比等级
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x28;        //cmd=0x28
	TXBUF[2]= 0x00;
	TXBUF[3]= 0x00;
	TXBUF[4]= 0x01;
	TXBUF[5]= 0x00;
	check = TXBUF[1];
	for(i = 2; i < 6; i++)
	{
		check ^= TXBUF[i];		
	}
	TXBUF[6] = check;
	TXBUF[7] = 0xF5;	
		
   	rev_ok = 1;
   	TX_len = 8;               			
   	RX_len = 8;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		AcquisitUpload_image
* func:		采集图像并上传
* para:		none 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char AcquisitUpload_image(void)
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x24;       
	TXBUF[2]= 0x00;
	TXBUF[3]= 0x00;
	TXBUF[4]= 0x00;
	TXBUF[5]= 0x00;
	check = TXBUF[1];
	for(i = 2; i < 6; i++)
	{
		check ^= TXBUF[i];		
	}
	TXBUF[6] = check;
	TXBUF[7] = 0xF5;	
		
   	rev_ok = 1;
   	TX_len = 8;               			
   	RX_len = 8+9800+3;				// 接收到的图像数据的长度				   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		AcquisitUpload_Features
* func:		采集图像并提取特征值上传
* para:		none 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char AcquisitUpload_Features(void)
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x23;       
	TXBUF[2]= 0x00;
	TXBUF[3]= 0x00;
	TXBUF[4]= 0x00;
	TXBUF[5]= 0x00;
	check = TXBUF[1];
	for(i = 2; i < 6; i++)
	{
		check ^= TXBUF[i];		
	}
	TXBUF[6] = check;
	TXBUF[7] = 0xF5;	
		
   	rev_ok = 1;
   	TX_len = 8;               		 
   	RX_len = 207;				// 采集到的图像特征值长度
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		DownloadFeatures_Acquisition_contrast
* func:		下传特征值与采集指纹比对
* para:		FeatureBuffer: 下传的特征值,FeatureLen: 特征值的长度 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char DownloadFeatures_Acquisition_contrast(unsigned char FeatureBuffer[], unsigned int FeatureLen)
{
	unsigned char check, i;

	TXBUF[0] = 0xF5;
	TXBUF[1] = 0x44;
	TXBUF[2] = 0x00;
	TXBUF[3] = 0xC4;
	TXBUF[4] = 0x00;
	TXBUF[5] = 0x00;
	TXBUF[6] = 0x80;
	TXBUF[7] = 0xF5;

	TXBUF[8] = 0xF5;
	TXBUF[9] = 0x00;
	TXBUF[10]= 0x00;
	TXBUF[11]= 0x00;

	check = TXBUF[9];
	for (i = 0; i < FeatureLen; i++)
	{
		TXBUF[12+i] = FeatureBuffer[i];
	}
	for (i = 10; i < 11+FeatureLen; i++)
	{
		check ^= TXBUF[i];
	}
	TXBUF[11+FeatureLen+1] = check;
	TXBUF[11+FeatureLen+2] = 0xF5;
   	
	rev_ok = 1;
   	TX_len = FeatureLen+14;               		 
   	RX_len = 8;				// 采集到的图像特征值长度
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		DownloadFeatures_DSPDB_onecontrast
* func:		下传指纹特征值与 DSP 模块数据库指纹比对 1:1
* para:		user_number_h: 用户号高8位,
			user_number_l: 用户号低8位,
			FeatureBuffer: 下传的特征值,
			FeatureLen   : 特征值的长度 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char DownloadFeatures_DSPDB_onecontrast(unsigned char user_number_h,unsigned char user_number_l,
												unsigned char FeatureBuffer[], unsigned int FeatureLen)
{
	unsigned char check, i;

	TXBUF[0] = 0xF5;
	TXBUF[1] = 0x42;
	TXBUF[2] = 0x00;
	TXBUF[3] = 0xC4;
	TXBUF[4] = 0x00;
	TXBUF[5] = 0x00;
	TXBUF[6] = 0x83;
	TXBUF[7] = 0xF5;

	TXBUF[8] = 0xF5;
	TXBUF[9] = user_number_h;
	TXBUF[10]= user_number_l;
	TXBUF[11]= 0x00;
	check = TXBUF[9];
	for (i = 0; i < FeatureLen; i++)
	{
		TXBUF[12+i] = FeatureBuffer[i];
	}
	for (i = 10; i < 11+FeatureLen; i++)
	{
		check ^= TXBUF[i];
	}
	TXBUF[11+FeatureLen+1] = check;
	TXBUF[11+FeatureLen+2] = 0xF5;
   	
	rev_ok = 1;
   	TX_len = FeatureLen+14;               		 
   	RX_len = 8;				// 采集到的图像特征值长度
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		DownloadFeatures_DSPDB_morecontrast
* func:		下传指纹特征值与 DSP 模块数据库指纹比对 1:N
* para:		FeatureBuffer: 下传的特征值,
			FeatureLen   : 特征值的长度 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char DownloadFeatures_DSPDB_morecontrast(unsigned char FeatureBuffer[],unsigned int FeatureLen)
{
	unsigned char check, i;

	TXBUF[0] = 0xF5;
	TXBUF[1] = 0x43;
	TXBUF[2] = 0x00;
	TXBUF[3] = 0xC4;
	TXBUF[4] = 0x00;
	TXBUF[5] = 0x00;
	TXBUF[6] = 0x82;
	TXBUF[7] = 0xF5;

	TXBUF[8] = 0xF5;
	TXBUF[9] = 0x00;
	TXBUF[10]= 0x00;
	TXBUF[11]= 0x00;

	check = TXBUF[9];
	for (i = 0; i < FeatureLen; i++)
	{
		TXBUF[12+i] = FeatureBuffer[i];
	}
	for (i = 10; i < 11+FeatureLen; i++)
	{
		check ^= TXBUF[i];
	}
	TXBUF[11+FeatureLen+1] = check;
	TXBUF[11+FeatureLen+2] = 0xF5;
   	
	rev_ok = 1;
   	TX_len = FeatureLen+14;               		 
   	RX_len = 8;				// 采集到的图像特征值长度
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		Upload_DSPDBFeatures
* func:		上传DSP模块数据库内指定用户特征值
* para:		user_number_h : 用户号高8位
			user_number_l : 用户号低8位
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char Upload_DSPDBFeatures(unsigned char user_number_h, unsigned char user_number_l)
{
	unsigned char check, i;
	
 	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x31;   					//cmd=0x09
	TXBUF[2]= user_number_h;
	TXBUF[3]= user_number_l;
	TXBUF[4]= 0x00;
	TXBUF[5]= 0x00;
	check = TXBUF[1];
	for(i = 2; i < 6; i++)
	{
		check ^= TXBUF[i];		
	}
	TXBUF[6] = check;
	TXBUF[7] = 0xF5;	
		
   	rev_ok = 1;
   	TX_len = 8;               		
   	RX_len = 207;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
} 

/*********************************************************************************************
* name:		Download_DSPDBFeatures
* func:		下传特征值并按指定用户号存入 DSP 模块数据库
* para:		user_number_h: 用户号高8位,
			user_number_l: 用户号低8位,
			user_right	 : 用户权限,
			FeatureBuffer: 下传的特征值,
			FeatureLen   : 特征值的长度 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char Download_DSPDBFeatures(unsigned char user_number_h, unsigned char user_number_l,
							unsigned char user_right,unsigned char FeatureBuffer[],unsigned int FeatureLen)
{
	unsigned char check, i;

	TXBUF[0] = 0xF5;
	TXBUF[1] = 0x41;
	TXBUF[2] = 0x00;
	TXBUF[3] = 0xC4;
	TXBUF[4] = 0x00;
	TXBUF[5] = 0x00;
	TXBUF[6] = 0x80;
	TXBUF[7] = 0xF5;

	TXBUF[8] = 0xF5;
	TXBUF[9] = user_number_h;
	TXBUF[10]= user_number_l;
	TXBUF[11]= user_right;
	check = TXBUF[9];
	for (i = 0; i < FeatureLen; i++)
	{
		TXBUF[12+i] = FeatureBuffer[i];
	}
	for (i = 10; i < 11+FeatureLen; i++)
	{
		check ^= TXBUF[i];
	}
	TXBUF[11+FeatureLen+1] = check;
	TXBUF[11+FeatureLen+2] = 0xF5;
   	
	rev_ok = 1;
   	TX_len = FeatureLen+14;               		 
   	RX_len = 8;				// 采集到的图像特征值长度
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		Get_UserNumber_Right
* func:		获取取已登录所有用户用户号及权限
* para:		none
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char Get_UserNumber_Right(void)
{
	unsigned char check, i;
	unsigned char usernumber;
	unsigned char is_ok;
	
	// 取用户总数
	is_ok = read_usernumber();
	if (is_ok == ACK_SUCCESS)
	{
		user_number = RXBUF[2]*16 + RXBUF[3];
		printf("\n The number of user is: %x\n", user_number);
	}
	else
	{
		printf("\n Get total user number error!\n");
		return -1;
	}
	
	//usernumber = RXBUF[2]*16 + RXBUF[3];
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x2B;        //cmd=0x28
	TXBUF[2]= 0x00;
	TXBUF[3]= 0x00;
	TXBUF[4]= 0x00;
	TXBUF[5]= 0x00;
	check = TXBUF[1];
	for(i = 2; i < 6; i++)
	{
		check ^= TXBUF[i];		
	}
	TXBUF[6] = check;
	TXBUF[7] = 0xF5;	
		
   	rev_ok = 1;
   	TX_len = 8;               			
   	RX_len = 3*usernumber+2;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}		
/*=========================================================================================*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -