OPEN_scc: //Enroll Finger int counts=0; int BUFFER = 1; enroll_label: printf("*****************Enroll Finger Test*****************\n"); nRet = ZAZ_NO_FINGER; printf("1. Enroll: Please press finger1......\n"); while(nRet == ZAZ_NO_FINGER) { nRet=ZAZGetImage(nhanle,DEV_ADDR); counts++; if(counts > 10000000) printf("wating time over......\n"); else printf("wating time %d......\n",counts); } if(nRet != ZAZ_OK) { printf("ZAZGetImage is Fail ,errorr code = %d......\n",nRet); return 0; } printf("2. ZAZGetImage ok......\n"); //BYTE pImage[256*288]; //int nImageLen; //ZAZUpImage(DEV_ADDR,pImage,&nImageLen); //ZAZImgData2BMP(pImage,"fp.bmp"); nRet = ZAZGenChar(nhanle,DEV_ADDR,BUFFER); if(nRet != ZAZ_OK) { printf("ZAZGenChar is Fail ,errorr code = %d......\n",nRet); goto enroll_label; } printf("3. ZAZGenChar ok Buffer = %d......\n",BUFFER); BUFFER++; if(BUFFER < 3) goto enroll_label; nRet = ZAZRegModule(nhanle,DEV_ADDR); if(nRet != ZAZ_OK) { printf("ZAZRegModule is Fail ,errorr code = %d......\n",nRet); BUFFER = 1; goto enroll_label; } printf("4. ZAZRegModule ok \n"); nRet = ZAZStoreChar(nhanle,DEV_ADDR,CHAR_BUFFER_A,1); if(nRet != ZAZ_OK) { printf("ZAZStoreChar is Fail ,errorr code = %d......\n",nRet); BUFFER = 1; goto enroll_label; } printf("5. ZAZStoreChar ok id = %d\n",1); printf("*****************END*****************\n"); //Search Finger
时间: 2023-08-28 07:05:58 浏览: 110
这段代码是一个指纹录入的功能实现,包括以下步骤:
1. 初始化counts和BUFFER变量,其中counts用于计算等待指纹图像的次数,BUFFER用于存储特征模板;
2. 打印“Enroll Finger Test”的提示信息;
3. 初始化nRet变量为ZAZ_NO_FINGER;
4. 循环调用ZAZGetImage函数,直到检测到手指,即返回值为ZAZ_OK;
5. 如果ZAZGetImage函数返回值不是ZAZ_OK,则打印“ZAZGetImage is Fail ,errorr code = %d......\n”的提示信息,并结束指纹录入;
6. 如果ZAZGetImage函数返回值是ZAZ_OK,则打印“ZAZGetImage ok......\n”的提示信息;
7. 调用ZAZGenChar函数生成特征模板,其中包含3个参数:nhanle表示句柄,DEV_ADDR表示设备地址,BUFFER表示特征模板存储的位置;
8. 如果ZAZGenChar函数返回值不是ZAZ_OK,则打印“ZAZGenChar is Fail ,errorr code = %d......\n”的提示信息,并跳转到enroll_label标签处重新录入指纹;
9. 如果ZAZGenChar函数返回值是ZAZ_OK,则打印“ZAZGenChar ok Buffer = %d......\n”的提示信息;
10. 将BUFFER加1,并判断是否小于3,如果小于3,则跳转到enroll_label标签处重新录入指纹;
11. 调用ZAZRegModule函数将特征模板合并成指纹模板;
12. 如果ZAZRegModule函数返回值不是ZAZ_OK,则打印“ZAZRegModule is Fail ,errorr code = %d......\n”的提示信息,并将BUFFER重置为1,然后跳转到enroll_label标签处重新录入指纹;
13. 如果ZAZRegModule函数返回值是ZAZ_OK,则打印“ZAZRegModule ok”的提示信息;
14. 调用ZAZStoreChar函数将指纹模板存储到设备中,其中包含3个参数:nhanle表示句柄,DEV_ADDR表示设备地址,CHAR_BUFFER_A表示存储的位置,1表示存储的指纹模板ID;
15. 如果ZAZStoreChar函数返回值不是ZAZ_OK,则打印“ZAZStoreChar is Fail ,errorr code = %d......\n”的提示信息,并将BUFFER重置为1,然后跳转到enroll_label标签处重新录入指纹;
16. 如果ZAZStoreChar函数返回值是ZAZ_OK,则打印“ZAZStoreChar ok id = %d\n”的提示信息,其中1表示存储的指纹模板ID;
17. 打印“END”的提示信息,指纹录入结束。
阅读全文