#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 电容指纹模块采集指纹信息?的更多相关文章

  1. QT creator中使用opencv采集摄像头信息

    之前在QT creator上成功编译了opencv,由于课题需要,需要采集摄像头的信息.故搜集了网上的一些资料,依葫芦画瓢的照着做了一下,终于简单的成功采集了信息. 打开QTcreator,新建一个w ...

  2. OCM_第十三天课程:Section6 —》数据库性能调优 _结果缓存 /多列数据信息采集统计/采集数据信息保持游标有效

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  3. WLC Crash采集什么信息?

    WLC和思科的路由器交换机不同,Cisco的WLC采用的是AireOS. 如果WLC crash或无故重启,可以尝试采集如下信息: AireOS WLC version 8.0.140.0 or hi ...

  4. 12.通过微信小程序端访问企查查(采集工商信息)

    需要注意的问题: 一.1.微信端访问企查查小程序需要登录.2.访问抓包获取的url是有时效性的过一段时间就不能用了. http://xcx.qichacha.com/wxa/v1/base/getEn ...

  5. Whatweb网站指纹信息收集工具

    常规扫描:whatweb www.baidu.com 批量扫描: whatweb -i /root/12.txt 详细回显扫描:whatweb -v www.baidu.com 加强扫描强度:what ...

  6. C#开发ActiveX控件及指纹采集

    最近做一个指纹采集和比对的功能,因为公司整个项目是WEB类型的,所以指纹采集的模块要嵌套在网页中,那只有用ActiveX了,以下是一些操作及效果,做个笔记! 新建用户控件,编写CS代码,如下: usi ...

  7. 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)

    本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...

  8. 室内定位系列(一)——WiFi位置指纹(译)

    原文:<Advanced Location-Based Technologies and Services>--chapter 2 WiFi Location Fingerprint 作者 ...

  9. 你的指纹还安全吗? - BlackHat 2015 黑帽大会总结 day 2

    你的指纹还安全吗?  0x03 FINGERPRINTS ON MOBILE DEVICES: ABUSING AND LEAKING speaker是来自FireEye的Wei Tao和Zhang ...

随机推荐

  1. 【javascript】onblur调用函数失效问题记录

    在处理页面上一个失焦效果时遇到了  xxxx is not a function 这样的错误,但函数确实有定义成功 ,经过测试发现是 id 值与函数名一致导致的问题,但是产生的原因没有找到详细的解释 ...

  2. jinja2.exceptions.TemplateNotFound: home/index.html

    问题: 检查路由路径和模版渲染方式,其他文件路径都正确,可以返回字符串,就是无法返回定义的模版,为什么flask无法启找到这个模版? 那,问题原因在哪? 在flask中,目录有着严格的定义,模版目录必 ...

  3. 判断具有某个属性js、jQuery

    if(!rr.classList.contains('invalid')){ updateCount(i,-1);//更新tab数量 } /*if(!$(rr).hasClass('invalid') ...

  4. MS SQL 监控数据/日志文件增长

        前几天,在所有数据库服务器部署了监控磁盘空间的存储过程和作业后(MS SQL 监控磁盘空间告警),今天突然收到了两封告警邮件,好吧,存储规划是一方面,但是,是不是要分析一下是什么原因造成磁盘空 ...

  5. java IO(二):字节流

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. nginx把POST转GET请求解决405问题

    405重定向,然后把POST转GET upstream local { server 10.0.1.11:81; } server { listen 81; server_name testf.xxx ...

  7. struts2.xml的配置问题

    1.<package namespace="/"></package> namespace决定访问action的路径: 如果省略,将代表任意路径: 2.&l ...

  8. 面向对象_06【抽象类:abstract、接口:interface、实现:implements】

    抽象类:abstract抽象:没有足够的描述功能,事物不具体的描述,却又有共性. 特点: 1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中,该类也 ...

  9. SQL FOR XML PATH 和 Stuff 用法

    sql stuff 用法 1.作用 删除指定长度的字符,并在指定的起点处插入另一组字符. 2.语法 STUFF ( character_expression , start , length ,cha ...

  10. jsp中实现点击文件名称完成下载

    1.文件名称添加点击事件 <a href="javascript:void(0);" id="wjm" onclick="wjxz();&quo ...