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