如何通过 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;
}

Snipaste_2017-09-28_17-43-48_ZAZ-020%E7%94%B5%E5%AE%B9%E6%8C%87%E7%BA%B9%E6%A8%A1%E5%9D%97%E9%87%87%E9%9B%86%E6%8C%87%E7%BA%B9%E6%95%B0%E6%8D%AE.png

转载于:https://www.cnblogs.com/cheungxiongwei/p/7607803.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值