如何通过 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 ...
随机推荐
- 一个使用物理引擎的WebGL3D场景
这是一个类似第三人称射击游戏(TPS)的3D场景,可以通过https://ljzc002.github.io/FPS2/index.html访问.场景运行效果如下图: 场景环境由一个天空盒和一个地面网 ...
- sqlserver 字符串截取与拼接
update yanan set name=name+right(phone,4) where id=56 其中right(phone,4)是截取手机号后四位,left是从左开始截取.name=nam ...
- Hibernate (四)
1 懒加载 (感觉用处不是很大) 需要的时候加载,不需要的时候就不加载. 1.1 环境的搭建 hibernate.cfg.xml <?xml version='1.0' encoding='ut ...
- 我的运维之旅-查找文本的linux命令
小伙伴们肯定都遇到这么尴尬场景,线上服务出问题了,老大一直在问什么问题导致的,而你由于对查找文本的命令不太熟,鼓捣了半天才找到那条 异常日志,而这时可能半个小时都已经过去了.老大可能对你失望透顶了.讲 ...
- Java基础知识(一)
类与对象 1.对象:客观存在的一切事物称之为对象 类:具有相同属性和方法的对象的集合 2.类:属性,方法 3.修饰符: public protected 默认(不写) private 任何地方 ...
- Apache Traffic Server服务搭建
一.简介 Apache Traffic Server(ATS或TS)是一个高性能的.模块化的HTTP代理和缓存服务器,与 Nginx 和 Squid 类似.它通过将频繁访问的信息缓存在网络的边缘来改善 ...
- linux的定时任务服务crond(crontab)服务
1,Crond: Crond是linux系统中用来定期执行命令或指定程序任务的一种服务或者软件.(Centos5以后默认存在) 当优化开机自启动的时候,第一个就是crond. Crond服务默认情况( ...
- Effective Java 之-----返回零长度的数组或集合而不是null
如下代码,通常用户列表为空时,会习惯性返回null,因为这时会认为:null返回值比零长度数组更好,因为它避免了分配数组所需要的开销. private final List<UserBean&g ...
- ABP官方文档翻译 4.5 特征管理
特征管理 介绍 关于IFeatureValueStore 特征类型 Boolean特征 Value特征 定义特征 基本特征属性 其他特征属性 特征层级 检查特征 使用RequiresFeature特性 ...
- Java多线程基础(二)
信号量Semaphore,类似于锁的功能,用于多线程中对一组资源的控制. acquire方法用于尝试获取一个资源,未获取前将一直等待.release用于释放一个资源,release的前提是已经获得了一 ...