📄 comm.c.bak
字号:
/*********************************************************************************************
* 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 + -