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

📄 comm.c.bak

📁 基于s3c2410的linux下面指纹识别程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:
/*********************************************************************************************
* File:	uart_test.c
* Author:	embest
* Desc:	UART_Test
* History:	
*********************************************************************************************/
/*------------------------------------------------------------------------------------------*/
/*                                     include files	                                    */
/*------------------------------------------------------------------------------------------*/
#include "COMM.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <sys/ioctl.h>#include<time.h>#include <termios.h>                             #include <sys/select.h>  #include <sys/types.h>  
//#include "2410lib.h"#define delaytime 0

unsigned char TXBUF[9900];						// 发送到指纹模块的数据缓冲区
unsigned char RXBUF[9900];						// 接收指纹模块串口的数据缓冲区

unsigned char rev_ok;			// 判断发送的正确与否,0为成功,非0为失败
unsigned int  TX_len;			// 发送数据长度
unsigned int  RX_len;			// 接收数据长度


/*********************************************************************************************
* name:		set_addmode
* func:		设置指纹添加模式
* para:		yn_repeat设置是否允许重复: 0允许重复,1禁止重复(同一枚手指只
			能添加一个用户)
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char set_addmode(unsigned char yn_repeat)
{
	unsigned char check, i;
	TXBUF[0] = 0xF5;
	TXBUF[1] = 0x2D;
	TXBUF[2] = 0x00;
	TXBUF[3] = yn_repeat;
	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;

	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		read_addmode
* func:		读取指纹添加模式
* para:		none
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char read_addmode(void) 
{
	unsigned char check, i;
     
    	TXBUF[0]= 0xF5;
   	TXBUF[1]= 0x2D;          //cmd=0x2D
   	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:		add_Fingerprint
* func:		添加指纹
* para:		timer_number  : 添加次数
			user_number_h : 用户号高8位
			user_number_l : 用户号低8位
			user_right    : 用户权限1/2/3
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char add_Fingerprint(unsigned char time_number,unsigned char user_number_h,
								unsigned char user_number_l,unsigned char user_right)
{
	unsigned char check, i;
 
 	TXBUF[0] = 0xF5;
	TXBUF[1] = time_number;			// 添加次数 01,02,03
	TXBUF[2] = user_number_h;	   	// 用户号高8位
	TXBUF[3] = user_number_l;          	// 用户号低8位
	TXBUF[4] = user_right;           	// 用户权限(1/2/3)
	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:		del_oneuser
* func:		删除指定用户
* para:		user_number_h : 用户号高8位
			user_number_l : 用户号低8位
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char del_oneuser(unsigned char user_number_h,unsigned char user_number_l)
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x04;       				//cmd=0x04
	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 = 8;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok); 	
}

/*********************************************************************************************
* name:		del_alluser
* func:		删除所有用户
* para:		none
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char del_alluser(void)	 //删除所有用户
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x05;        //cmd=0x05
	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;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok); 	
}

/*********************************************************************************************
* name:		read_usernumber
* func:		取用户总数
* para:		none
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char read_usernumber(void)         //读用户总数
{
	unsigned char check, i;
 	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x09;   					//cmd=0x09
	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;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		one_onecontrast
* func:		1:1比对指纹
* para:		user_number_h : 用户号高8位
			user_number_l : 用户号低8位
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char one_onecontrast(unsigned char user_number_h,unsigned char user_number_l)   //1:1比对
{
 	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x0B;        				//cmd=0x0B
	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 = 8;
   	
	SERIAL_TX();	sleep(delaytime);	//printf("one_oneconst\n");
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		one_morecontrast
* func:		1:N比对指纹,查找指纹库中是否存在与输入指纹相匹配的指纹
* para:		none
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char one_morecontrast(void)          //1:n比对
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x0C;        //cmd=0x0C
	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;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		read_userright
* func:		取用户权限
* para:		user_number_h : 用户号高8位
			user_number_l : 用户号低8位
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char read_userright(unsigned char user_number_h,unsigned char user_number_l) //读用户权限
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x0A;     //cmd=0x0A
	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 = 8;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

/*********************************************************************************************
* name:		set_newgrade
* func:		设置比对等级
* para:		newgrade : 新的比对等级,比对等级取值为0-9,取值越大比对越严格,默认值为 5 
* ret:		判断操作是否成功,0成功,非0不成功
* modify:
* comment:		
*********************************************************************************************/
unsigned char set_newgrade(unsigned char newgrade)  //设置新的比对等级
{
	unsigned char check, i;
	
	TXBUF[0]= 0xF5;
	TXBUF[1]= 0x28;        //cmd=0x28
	TXBUF[2]= 0x00;
	TXBUF[3]= newgrade;
	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;
   	
	SERIAL_TX();	sleep(delaytime);
	SERIAL_RX();
	rev_ok = RXBUF[4];

	return (rev_ok);
}

⌨️ 快捷键说明

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