如何通过 ZAZ-020 电容指纹模块采集指纹信息?
#ifndef _PROTOCOL_H_
#define _PROTOCOL_H_
///////////////////错误返回码////////////////////
#define PS_OK 0x00 //执行成功
#define PS_COMM_ERR 0x01 //数据包接收错误
#define PS_NO_FINGER 0x02 //传感器上没有手指
#define PS_GET_IMG_ERR 0x03 //录取指纹图像失败
#define PS_FP_TOO_DRY 0x04 //指纹太淡
#define PS_FP_TOO_WET 0x05 //指纹太模糊
#define PS_FP_DISORDER 0x06 //指纹太乱
#define PS_LITTLE_FEATURE 0x07 //指纹特征点太少
#define PS_NOT_MATCH 0x08 //指纹不匹配
#define PS_NOT_SEARCHED 0x09 //没搜索到指纹
#define PS_MERGE_ERR 0x0a //特征合并失败
#define PS_ADDRESS_OVER 0x0b //地址号超出指纹范围
#define PS_READ_ERR 0x0c //从指纹库读取模块出错
#define PS_UP_TEMP_ERR 0x0d //上传特征失败
#define PS_RECV_ERR 0x0e //模块不能接收后续数据包
#define PS_UP_IMG_ERR 0x0f //上传图像失败
#define PS_DEL_TEMP_ERR 0x10 //删除模版失败
#define PS_CLEAR_TEMP_ERR 0x11 //清空指纹库失败
#define PS_SLEEP_ERR 0x12 //不能进入休眠
#define PS_INVALID_PASSWORD 0x13 //口令不正确
#define PS_RESET_ERR 0x14 //系统复位失败
#define PS_INVALID_IMAGE 0x15 //无效指纹图像
#define PS_HANGOVER_UNREMOVE 0X17 //
#ifdef _OT_CPP_
extern "C"
{
#endif
//1
int WINAPI ZAZOpenDeviceEx(HANDLE* pHandle, int nDeviceType,int iCom,int iBaud,int nPackageSize/*=2*/,int iDevNum/*=0*/);
//2
int WINAPI ZAZCloseDeviceEx(HANDLE hHandle);
//3
int WINAPI ZAZVfyPwd(HANDLE hHandle,int nAddr,unsigned char* pPassword);
//4
int WINAPI ZAZGetImage(HANDLE hHandle,int nAddr);
//5
int WINAPI ZAZGenChar(HANDLE hHandle,int nAddr,int iBufferID);
//6
int WINAPI ZAZMatch(HANDLE hHandle,int nAddr,int* iScore);
//7
int WINAPI ZAZSearch(HANDLE hHandle,int nAddr,int iBufferID, int iStartPage,
int iPageNum, int *iMbAddress,int *iscore/*=NULL*/);
//8
int WINAPI ZAZHighSpeedSearch(HANDLE hHandle,int nAddr,int iBufferID,
int iStartPage, int iPageNum, int *iMbAddress,int *iscore/*=NULL*/);
//9
int WINAPI ZAZRegModule(HANDLE hHandle,int nAddr);
//10
int WINAPI ZAZStoreChar(HANDLE hHandle,int nAddr,int iBufferID, int iPageID);
//11
int WINAPI ZAZDelChar(HANDLE hHandle,int nAddr,int iStartPageID,int nDelPageNum);
//12
int WINAPI ZAZEmpty(HANDLE hHandle,int nAddr);
//13
int WINAPI ZAZReadParTable(HANDLE hHandle,int nAddr,unsigned char* pParTable);
//14
int WINAPI ZAZReadInfPage(HANDLE hHandle,int nAddr, unsigned char* pInf);
//15
int WINAPI ZAZTemplateNum(HANDLE hHandle,int nAddr,int *iMbNum);
//16
int WINAPI ZAZGetRandomData(HANDLE hHandle,int nAddr,unsigned char* pRandom);
//17
int WINAPI ZAZReadIndexTable(HANDLE hHandle,int nAddr,int nPage,unsigned char* UserContent);
//18
int WINAPI ZAZDoUserDefine(HANDLE hHandle,int nAddr,int GPIO,int STATE);
//19
int WINAPI ZAZSetledsound(HANDLE hHandle,int nAddr,unsigned char red, unsigned char green,
unsigned char sound, unsigned char moveflag,int timecount);
//20
int WINAPI ZAZSetCharLen( int nLen);
//21
int WINAPI ZAZGetCharLen(int *pnLen);
//22
int WINAPI ZAZLoadChar(HANDLE hHandle,int nAddr,int iBufferID,int iPageID);
//23
int WINAPI ZAZUpChar(HANDLE hHandle,int nAddr,int iBufferID, unsigned char* pTemplet, int* iTempletLength);
//24
int WINAPI ZAZDownChar(HANDLE hHandle,int nAddr,int iBufferID, unsigned char* pTemplet, int iTempletLength);
//25
int WINAPI ZAZSetIMGLen( int img_x,int img_y);
//26
int WINAPI ZAZGetIMGLen(int *img_x,int *img_y);
//27
int WINAPI ZAZUpImage(HANDLE hHandle,int nAddr,unsigned char* pImageData, int* iImageLength);
//28
int WINAPI ZAZDownImage(HANDLE hHandle,int nAddr,unsigned char *pImageData, int iLength);
//29
int WINAPI ZAZImgData2BMP(unsigned char* pImgData,const char* pImageFile);
//30
int WINAPI ZAZGetImgDataFromBMP(HANDLE hHandle,const char *pImageFile,unsigned char *pImageData,int *pnImageLen);
//31
int WINAPI ZAZReadInfo(HANDLE hHandle,int nAddr,int nPage,unsigned char* UserContent);
//32
int WINAPI ZAZWriteInfo(HANDLE hHandle,int nAddr,int nPage,unsigned char* UserContent);
//33
int WINAPI ZAZSetBaud(HANDLE hHandle,int nAddr,int nBaudNum);
//34
int WINAPI ZAZSetSecurLevel(HANDLE hHandle,int nAddr,int nLevel);
//35
int WINAPI ZAZSetPacketSize(HANDLE hHandle,int nAddr,int nSize);
//36
int WINAPI ZAZSetBLS(HANDLE hHandle,int nAddr,int nBaudNum,int nLevel,int nSize);
//37
int WINAPI ZAZWriteFile(unsigned char* pTemplate, int iTempletLength,const char* pFileName);
//38
int WINAPI ZAZReadFile(unsigned char* pTemplate, int iTempletLength,const char* pFileName);
//39
int WINAPI ZAZByteTOBase64(unsigned char* pInput, int inputLen,char * pOutput);
//40
int WINAPI ZAZBase64TOByte( char* pInput, int *inputLen,unsigned char * pOutput);
//41
int WINAPI ZAZByteToHexstr(unsigned char* pInput, int inputLen,char * pOutput);
//42
int WINAPI ZAZHexstrToByte(char *pInput, int *inputLen,unsigned char * pOutput);
//43
int WINAPI ZAZSetPwd(HANDLE hHandle,int nAddr,unsigned char* pPassword);
//44
int WINAPI ZAZBurnCode(HANDLE hHandle,int nAddr,int nType,unsigned char *pImageData, int iLength);
//45
int WINAPI ZAZClear5xxFLAG( HANDLE hHandle, int nAddr );
//46
int WINAPI ZAZShowFingerData(HWND hWnd,unsigned char *pFingerData);
//47
int WINAPI ZAZUpChar2File(HANDLE hHandle,int nAddr,int iBufferID, const char* pFileName);
//48
int WINAPI ZAZDownCharFromFile(HANDLE hHandle,int nAddr,int iBufferID, const char* pFileName);
//49
void WINAPI ZAZErr2Str(int nErrCode, char* g_sErrorString );
//CString WINAPI ZAZErr2Str(int nErrCode);
//50
int WINAPI ZAZColorBMP(const char *filedst,const char *BMPSRC, int DISPCOLOR);
#ifdef _OT_CPP_
}
#endif
#endif
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <Windows.h>
#include "Finger\Protocol.h"
#pragma comment(lib,"Finger/ZAZAPIt.lib")
using namespace std;
int main()
{
HANDLE handle = NULL;
int nAddress = 0xffffffff;
int timeOut = 0;
int imgLen = 0;
unsigned char imgData[256 * 288];//256x288
//打开指纹设备
int ret = ZAZOpenDeviceEx(&handle,2,0,9600,2,0);
cout << "指纹模块打开结果:" << ret << endl;
if(ret != 0)
{
return 0;
}
ret = PS_NO_FINGER;
while (ret == PS_NO_FINGER)
{
//获取图像
ret = ZAZGetImage(handle, nAddress);
cout << "ZAZGetImage:" << ret << endl;
timeOut++;
if (timeOut > 100)
{
return 0;
//break;
}
}
//上传设备采集到的指纹数据
ret = ZAZUpImage(handle, nAddress, imgData, &imgLen);
cout << "ZAZUpImage:" << ret << endl;
//指纹数据转 BMP 格式保存
ret = ZAZImgData2BMP(imgData,"C:\\finger.bmp");
cout << "ZAZImgData2BMP:" << ret << endl;
//关闭设备
ret = ZAZCloseDeviceEx(handle);
cout << "ZAZCloseDeviceEx:" << ret << endl;
system("pause");
return 0;
}

如何通过 ZAZ-020 电容指纹模块采集指纹信息?的更多相关文章
- QT creator中使用opencv采集摄像头信息
之前在QT creator上成功编译了opencv,由于课题需要,需要采集摄像头的信息.故搜集了网上的一些资料,依葫芦画瓢的照着做了一下,终于简单的成功采集了信息. 打开QTcreator,新建一个w ...
- OCM_第十三天课程:Section6 —》数据库性能调优 _结果缓存 /多列数据信息采集统计/采集数据信息保持游标有效
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- WLC Crash采集什么信息?
WLC和思科的路由器交换机不同,Cisco的WLC采用的是AireOS. 如果WLC crash或无故重启,可以尝试采集如下信息: AireOS WLC version 8.0.140.0 or hi ...
- 12.通过微信小程序端访问企查查(采集工商信息)
需要注意的问题: 一.1.微信端访问企查查小程序需要登录.2.访问抓包获取的url是有时效性的过一段时间就不能用了. http://xcx.qichacha.com/wxa/v1/base/getEn ...
- Whatweb网站指纹信息收集工具
常规扫描:whatweb www.baidu.com 批量扫描: whatweb -i /root/12.txt 详细回显扫描:whatweb -v www.baidu.com 加强扫描强度:what ...
- C#开发ActiveX控件及指纹采集
最近做一个指纹采集和比对的功能,因为公司整个项目是WEB类型的,所以指纹采集的模块要嵌套在网页中,那只有用ActiveX了,以下是一些操作及效果,做个笔记! 新建用户控件,编写CS代码,如下: usi ...
- 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)
本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...
- 室内定位系列(一)——WiFi位置指纹(译)
原文:<Advanced Location-Based Technologies and Services>--chapter 2 WiFi Location Fingerprint 作者 ...
- 你的指纹还安全吗? - BlackHat 2015 黑帽大会总结 day 2
你的指纹还安全吗? 0x03 FINGERPRINTS ON MOBILE DEVICES: ABUSING AND LEAKING speaker是来自FireEye的Wei Tao和Zhang ...
随机推荐
- redis 安装实战(10步完成安装)
1 下载zip :https://redis.io/download ---->redis-4.0.6 2 上传:利用wcp 上传到/usr/local/soft/ 3 解压:tar -zv ...
- linux_inotify
什么是inotify? 拥有强大.粒细粒度.异步文件系统事件监控机制,监控文件系统中添加.删除.修改.移动等各种事件 版本支持: 内核 2.6.13以上版本,inotify-tools 是实施监控的软 ...
- SQL 优化经验总结34条(转)
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最 ...
- 解决ubuntu系统root用户下Chrome无法启动问题
由于ubuntu16.04系统自带的是Firefox浏览器,需要安装Chrome浏览器,但是在root用户下安装后发现,Chrome无法正常启动.安装及问题解决具体如下: 1. ubuntu上Chro ...
- CentOS之7与6的区别
前言 centos7与6之间最大的差别就是初始化技术的不同,7采用的初始化技术是Systemd,并行的运行方式,除了这一点之外,服务启动.开机启动文件.网络命令方面等等,都说6有所不同.让我们先来了解 ...
- tomcat监控(二)
标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 这里介绍二种监控Tomcat的方法 使用windows版本的jdk监控 使用zabbix监控 ...
- 怎么使用IDEA
war 和 war exploded war部署首先通过IDEA生成.war工程文件,然后将WEB工程以包的形式上传到服务器,因此会替代服务器本来同名的web app项目. war exploded模 ...
- js判断是pc端还是移动端
function checkMobile() { var pda_user_agent_list = new Array("2.0 MMP", "240320" ...
- jQuery的属性,事件及操作
1.属性操作 1.1 基本属性操作 $("img").attr("src") 返回文档中所有图像的src属性值 $("img").attr( ...
- iOS-NSPredicate正则验证【三种验证方法】
1.NSPredicate验证(谓词匹配) ///验证(string:验证的字符串) + (BOOL)stringValidate:(NSString *)string{ NSString *regu ...