📄 matchfinger.c
字号:
#include "variable.h"
extern unsigned char Search[];
extern unsigned char GenImg[]; //录入手指
extern unsigned char Img2TzBuffer1[]; //生成指纹原始图象特征数据 存入CharBuffer1
extern unsigned char Img2TzBuffer2[]; //生成指纹原始图象特征数据 存入CharBuffer2
extern unsigned char RegModel[];
extern unsigned char StoreMode[];
extern unsigned char LoadChar[]; //从指纹库中读取指纹模版
extern bit PacketValue ; // 0 没有带参数的包 1 带参数的包
extern unsigned char PacketID ; //包标识
extern unsigned char PacketData ; //包内容
extern bit revSuccess ; // 0 没接收成功 1 接收成功
extern unsigned char PacketMessage[10]; // 指向数据包内容参数的指针 // 因为参数的长度是不定的所以用指针而不能用数组
extern unsigned char MessageLength ; //参数的长度
extern unsigned char test[4];
extern void initial(void) ;
extern void SendFunction(unsigned char *p);
extern void revFunction(void);
extern void delay(int n);
extern unsigned char num;
extern bit key2; //???
void MatchFinger(void)
{
bit SearchRight ;
bit checkFinger ;
bit RecordSuccess;
bit ScanSuccess;
unsigned char k;
unsigned char FailTime=0; //重新发送某指令次数
unsigned char checkTime=0;
unsigned char i;
PacketData=0xFF;
for(i=0;i<10;i++)
{
PacketMessage[i]=0x00;
}
SearchRight=0;
RecordSuccess=0;
while((!SearchRight) && (checkTime<15) && (!checkFinger) && !scanstop)
{
//=================== 录入指纹 =====================
SendFunction(GenImg); //录入指纹 发送第一个手指录入指纹的指令
num=0;
k=0;
FailTime=5;
while(!revSuccess && FailTime)
{
k++;
delay(6);
if(k>1)
{
k=0;
SendFunction(GenImg);
num=0;
FailTime--;
}
}
while(revSuccess) //若接收到指模返回的应答包,查看的PacketData值
{
revSuccess=0;
if(PacketData==0x00)
{
ScanSuccess=1;
}
}
// ===================== 发送生成指纹特征文件===========================
if(ScanSuccess)
{
ScanSuccess=0;
SendFunction(Img2TzBuffer1); //发送生成指纹特征文件
num=0;
k=0;
FailTime=5;
while(!revSuccess && FailTime)
{
k++;
delay(3);
if(k==2)
{
k=0;
SendFunction(Img2TzBuffer1); //发送生成指纹特征文件
num=0;
FailTime--;
}
}
while(revSuccess)
{
revSuccess=0;
if(PacketData==0x00)
RecordSuccess=1; //生成指纹特征文件成功
if(PacketData!=0x00)
RecordSuccess=0; //失败
}
}
//====================== 在指纹库里搜索指纹===========================
if( RecordSuccess==1)
{
RecordSuccess=0;
SendFunction(Search); //在指纹库里搜索指纹
num=0;
k=0;
FailTime=5;
while(!revSuccess && FailTime)
{
k++;
delay(5);
if(k>2)
{
k=0;
SendFunction(Search);
FailTime--;
num=0;
}
}
while(revSuccess) //若接收到指模返回的应答包,查看的PacketData值
{
revSuccess=0;
if(PacketData==0x00)
SearchRight=1;
}
}
//========================================================================
checkTime++;
}
if(SearchRight)
{
// key2=0;
SearchRight=0;
if(PacketMessage[1]==0)
{
Led1=0;
delay(10);
Led1=1;
}
if(PacketMessage[1]==1)
{
Led2=0;
delay(10);
Led2=1;
}
if(PacketMessage[1]==2)
{
Led3=0;
delay(10);
Led3=1;
}
if(PacketMessage[1]==3)
{
Led4=0;
delay(10);
Led4=1;
}
if(PacketMessage[1]==4)
{
Led1=0;
Led2=0;
Led3=0;
Led4=0;
delay(10);
Led1=1;
Led2=2;
Led3=3;
Led4=4;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -