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;
    }
    

  • 相关阅读:
    hadoop集群单点配置
    CentOS6.x环境通过yum命令在线安装或重装zookeeper-server
    层层递进——宽度优先搜索(BFS)
    解救小哈——DFS算法举例
    浅谈深度优先搜索
    CodeCombat森林关卡Python代码
    用OpenGL进行曲线、曲面的绘制
    CodeCombat地牢关卡Python代码
    转载:程序员都应该访问的最佳网站
    用OpenGL实现动态的立体时钟
  • 原文地址:https://www.cnblogs.com/cheungxiongwei/p/7607803.html
Copyright © 2011-2022 走看看