FingerPrint_impl.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #ifndef LIBFRAMEWORK_FINGERPRINT_IMPL_H
  2. #define LIBFRAMEWORK_FINGERPRINT_IMPL_H
  3. #include <SpBase.h>
  4. #include "RVCComm.h"
  5. #include "FingerPrintClass.h"
  6. #include "IHttpFunc.h"
  7. #include <string>
  8. #include "../../DeviceSimulator.h"
  9. #include "json/json.h"
  10. typedef struct Image2FeatureReq : CHTTPReq {
  11. string m_reqStr;
  12. string ToJson() {
  13. return m_reqStr;
  14. }
  15. } Image2FeatureReq;
  16. typedef struct Image2FeatureRet : CHTTPRet {
  17. string m_retStr;
  18. bool Parse(string strData) {
  19. m_retStr = strData;
  20. return true;
  21. }
  22. } Image2FeatureRet;
  23. typedef struct Image2TemplateReq : CHTTPReq {
  24. string m_reqStr;
  25. string ToJson() {
  26. return m_reqStr;
  27. }
  28. } Image2TemplateReq;
  29. typedef struct Image2TemplateRet : CHTTPRet {
  30. string m_retStr;
  31. bool Parse(string strData) {
  32. m_retStr = strData;
  33. return true;
  34. }
  35. } Image2TemplateRet;
  36. class FingerPrintImpl : public FingerPrintClass
  37. {
  38. public:
  39. FingerPrintImpl();
  40. ~FingerPrintImpl();
  41. static void HttpsLogCallBack(const char* logtxt) {}
  42. //DeviceBaseClass
  43. ErrorCodeEnum GetDevCategory(DevCategoryInfo& devCategory);
  44. ErrorCodeEnum Reset();
  45. ErrorCodeEnum DevClose();
  46. ErrorCodeEnum GetLastErr(DevErrorInfo& devErrInfo);
  47. // Open Device
  48. ErrorCodeEnum DevOpen(DWORD dwPort, DWORD dwBaudRate);
  49. //采集指纹图片及对应特征值,imagePath保存图片名,lpbFeature保存对应特征,iLength:输入代表特征lpbFeature最大可用长度,输出为特征lpbFeature实际长度
  50. //imagePath为传入的图片名,采集到的指纹图像请按此名称保存在dep目录下,lpbFeature为对应指纹图像特征
  51. //Compute features
  52. ErrorCodeEnum Image2Feature(const char* imageName, LPBYTE lpbFeature, int& iLength);
  53. //生成特征模板(注册时使用)
  54. //imagePath1、imagePath2、imagePath3表示生成特征需要输入的三张图片名称,由应用传入,lpbTemplate表示输出特征模板,iLength表示模板长度
  55. ErrorCodeEnum Image2Template(const char* imagePath1, const char* imagePath2, const char* imagePath3, LPBYTE lpbTemplate, int& iLength);
  56. //比对校验
  57. //lpbTemplate和iTemplateLen分别表示输入的一组特征模板及其对应的长度,templateNum为数组长度(即模板个数)
  58. //lbpFeature表示待校验的指纹特征,iFeatureLen表示其长度,level表示校验等级,默认取3
  59. ErrorCodeEnum Match(LPBYTE lpbTemplate[], int iTemplateLen[], int templateNum, LPBYTE lbpFeature, int& iFeatureLen, int level = 3);
  60. //取消采集指纹
  61. ErrorCodeEnum Cancel();
  62. bool Image2FeatureHttp(LPBYTE lpbFeature, int& iLength);
  63. bool Image2TemplateHttp(LPBYTE lpbTemplate, int& iLength);
  64. string depCfgPath;
  65. iniReader iniRead;
  66. };
  67. #endif //LIBFRAMEWORK_FINGERPRINT_IMPL_H