zoukankan      html  css  js  c++  java
  • 如何通过 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 "FingerProtocol.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;
    }
    

  • 相关阅读:
    Minimum Depth of Binary Tree leetcode java
    Maximum Depth of Binary Tree leetcode java
    Symmetric Tree leetcode java
    Same Tree leetcode java
    Binary Tree Postorder Traversal leetcode java
    Binary Tree Preorder Traversal leetcode java
    Binary Tree Inorder Traversal leetcode java
    Combinations leetcode java
    一键清除Centos iptables 防火墙所有规则
    阿里云centos7.7x64安装open,并配置ip转发和nat伪装
  • 原文地址:https://www.cnblogs.com/cheungxiongwei/p/7607803.html
Copyright © 2011-2022 走看看