JZT998APBDevCtrl.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #ifndef JZT998APBDEVCTRL_H
  2. #define JZT998APBDEVCTRL_H
  3. #include "log4vendor.h"
  4. #define MAX_PATH 260
  5. #define FP_ERROR_SUCCESS (1)
  6. //其中错误代码从-1~-100为系统保留错误代码,用户可以自行定义的错误代码范围为-101~-200。 其他错误号码保留。
  7. #define FP_ERROR_INVALID_PARAMETER (-1) // 参数错误。给定函数的参数有错误。
  8. #define FP_ERROR_NOT_ENOUGH_MEMORY (-2) // 内存分配失败。没有分配到足够的内存。
  9. #define FP_ERROR_NOT_SUPPORT_FUNCTION (-3) // 功能未开放。调用函数的功能没有实现。
  10. #define FP_ERROR_DEVICE_NOT_FOUND (-4) // 设备不存在。初始化的时候,检测到设备不存在。
  11. #define FP_ERROR_DEVICE_NOT_INIT (-5) // 设备未初始化。
  12. #define FP_ERROR_INVALIDE_CODE (-6) // 非法的错误号。
  13. #define FP_ERROR_NO_PRIVILEGE (-7) // 没有授权。
  14. //#define -8~-100 系统保留。
  15. #define FP_ERROR_BASE64 (-8) // BASE64编解码失败。
  16. #define FP_ERROR_EXCEPTION (-9) // 操作异常
  17. #define FP_ERROR_RESERVE (-10) // 系统保留
  18. #define FP_ERROR_MAC (-11) // MAC错误
  19. #define FP_ERROR_ID (-12) // 设备ID错误
  20. #define FP_ERROR_IMAGE (-13) // 图像错误
  21. #define FP_ERROR_FILE_NO_FOUND (-14) // 文件不存在
  22. //#define -101~-200 用户自定义。
  23. #define FP_ERROR_UNSUCCESS (-100) // 操作失败
  24. #define FP_ERROR_UNKNOWN (-101) // 未知错误
  25. #define FP_ERROR_DEVICECMD (-102) // 通讯错误
  26. #define FP_ERROR_TIMEOUT (-111) // 操作超时
  27. #define FP_ERROR_CANCEL (-112) // 操作取消
  28. #define FP_ERROR_IMAGE_NOTENOUGH (-115) // 图像不合格
  29. #define FP_ERROR_IS_BUSY (-116) // 设备正忙
  30. #define FP_ERROR_FINGER_VERIFY (-201) // 指纹比对失败
  31. #define FP_ERROR_FINGER_EXTRACT (-202) // 合成特征失败
  32. #define FP_ERROR_FINGER_ENROLL (-203) // 合成模板失败
  33. #define FP_ERROR_FINGER_ILLEGAL (-204) // 非法指纹数据
  34. #define FP_ERROR_INVALID_TEMPLATE (-205) // 模板参数错误
  35. #define FP_ERROR_INVALID_FEATURE (-206) // 特征参数错误
  36. // 设备
  37. typedef char* ( *lpFPIGetErrorInfo )(int nRetCode);
  38. typedef int ( *lpFPIDeviceInit)(void);
  39. typedef int ( *lpFPIDeviceClose)(void);
  40. typedef int (*lpFPIGetFingerprintAndMatch)(char *psRegBuf, int nTimeout);
  41. typedef int (*lpFPIGetFeature)(int nFinPos, int nTimeout, char *psVerBuf);
  42. typedef int (*lpFPIGetTemplate)(int nFinPos, int nTimeout, char *psRegBuf);
  43. typedef int (*lpFPIFingerImageDecompress)(char *psCompressedFI,int nTimeout, char *psUnCompressedFI);
  44. typedef int (*lpFPIMatch)( char *psRegBuf, char *psVerBuf, int iLevel);
  45. typedef int (*lpFPIGetVersion)( char *psRegBuf, char *psVerBuf);
  46. typedef int (*lpFPIImg2Bmp)(int nTimeOut, char* psBmpFile);
  47. typedef int (*lpFPIBmp2Feature)(int nFinPos, char* psImgPath1, char* psTZ, int* lpLength);
  48. typedef int (*lpFPIBmp2Template)(int nFinPos, char *psImgPath1, char *psImgPath2, char *psImgPath3, char *psMB, int *lpLength);
  49. typedef void( *lpFPICancel)();
  50. class CDevDllLoad
  51. {
  52. public:
  53. CDevDllLoad(char * dllpath);
  54. virtual ~CDevDllLoad();
  55. public:
  56. int InitDLL();
  57. int FreeDLL();
  58. private:
  59. char m_dllpath[MAX_PATH];
  60. void *dp_dev=nullptr;
  61. lpFPIGetErrorInfo apiFPIGetErrorInfo;
  62. lpFPIDeviceInit apiFPIDeviceInit;
  63. lpFPIDeviceClose apiFPIDeviceClose;
  64. lpFPIGetFingerprintAndMatch apiFPIGetFingerprintAndMatch;
  65. lpFPIGetFeature apiFPIGetFeature;
  66. lpFPIGetTemplate apiFPIGetTemplate;
  67. lpFPIFingerImageDecompress apiFPIFingerImageDecompress;
  68. lpFPIMatch apiFPIMatch;
  69. lpFPIGetVersion apiFPIGetVersion;
  70. lpFPIImg2Bmp apiFPIImg2Bmp;
  71. lpFPIBmp2Feature apiFPIBmp2Feature;
  72. lpFPIBmp2Template apiFPIBmp2Template;
  73. lpFPICancel apiFPICancel;
  74. public:
  75. char* FPIGetErrorInfo(int nRetCode);
  76. int FPIDeviceInit();
  77. int FPIDeviceClose();
  78. // 获取固件版本
  79. int FPIGetVersion(char *psRegBuf, char *psVerBuf);
  80. // 采集指纹图像到硬盘
  81. int FPIImg2Bmp(char *psImgPath);
  82. // BMP图像文件转为指纹特征
  83. int FPIBmp2Feature(char *psImgPath, char *psTZ, int *lpLength);
  84. // BMP图像文件转为指纹模板
  85. int FPIBmp2Template(char *psImgPath1, char *psImgPath2, char *psImgPath3, char *psMB, int *lpLength);
  86. // 指纹比对
  87. int FPIMatch(char *psMB, char *psTZ, int iLevel);
  88. // 取消当前操作
  89. int FPICancel();
  90. };
  91. #endif // JZT998APBDEVCTRL_H