|
@@ -28,6 +28,10 @@ void CFingerPrintFSM::s0_on_entry()
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
m_devState = DEVICE_STATUS_NORMAL;
|
|
|
+ if (m_FirstStart) {
|
|
|
+ m_FirstStart = FALSE;
|
|
|
+ ToLogWarnInfoAboutTerm(this, m_adapterInfo);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void CFingerPrintFSM::s0_on_exit()
|
|
@@ -279,24 +283,32 @@ ErrorCodeEnum CFingerPrintFSM::OnInit()
|
|
|
errDev = ExtractVendorLib(strLibFullPath);
|
|
|
if (errDev != Error_Succeed) {
|
|
|
LogWarn(Severity_High, Error_DevLoadFileFailed
|
|
|
- , LOG_ERR_FINGERPRINT_GET_DLLNAME_FAILED_ONINIT
|
|
|
+ , FingerPrint_UserErrorCode_GET_DLLNAME_FAILED_ONINIT
|
|
|
, "get vendorlib failed while init");
|
|
|
return errDev;
|
|
|
}
|
|
|
}
|
|
|
- Dbg("vendorlib name : %s", strLibFullPath.GetData());
|
|
|
+
|
|
|
+ LogWarn(Severity_Low, Error_DevLoadFileFailed
|
|
|
+ , FingerPrint_UserErrorCode_ROOT_INFO
|
|
|
+ , strLibFullPath.GetData());
|
|
|
|
|
|
if (!ExistsFile(strLibFullPath))
|
|
|
{
|
|
|
- Dbg("No vendor fingerprint adapter in dep.");
|
|
|
+ LogWarn(Severity_High, Error_DevLoadFileFailed
|
|
|
+ , FingerPrint_UserErrorCode_VENDOR_ADAPTER_NOT_EXIST
|
|
|
+ , "No vendor fingerprint adapter in dep.");
|
|
|
m_devInit = false;
|
|
|
return Error_Succeed;
|
|
|
}
|
|
|
|
|
|
+ m_adapterInfo.adapterFileName = strLibFullPath;
|
|
|
+
|
|
|
errDev = m_hDevHelper.LoadUp(strLibFullPath);
|
|
|
if (Error_Succeed != errDev)
|
|
|
{
|
|
|
- Dbg("load vendorlib or create DevAdapterObject failed.");
|
|
|
+ LogWarn(Severity_High, Error_NotInit, FingerPrint_UserErrorCode_LOAD_ADAPTER_FAILED,
|
|
|
+ "load vendorlib or create DevAdapterObject failed.");
|
|
|
return Error_DevLoadFileFailed;
|
|
|
}
|
|
|
|
|
@@ -324,8 +336,8 @@ ErrorCodeEnum CFingerPrintFSM::ExtractVendorLib(CSimpleStringA& strLibFullPath)
|
|
|
if (errCode != Error_Succeed)
|
|
|
{
|
|
|
Dbg("Get vendor libname(%s) failed.", strLibFullPath.GetData());
|
|
|
- LogError(Severity_High, Error_DevLoadFileFailed
|
|
|
- , LOG_ERR_FINGERPRINT_GET_DLLNAME_FAILED_ONINIT
|
|
|
+ LogWarn(Severity_High, Error_DevLoadFileFailed
|
|
|
+ , FingerPrint_UserErrorCode_GET_DLLNAME_FAILED_ONINIT
|
|
|
, "get dllname failed while init");
|
|
|
errCode = Error_DevLoadFileFailed;
|
|
|
}
|
|
@@ -342,8 +354,8 @@ ErrorCodeEnum CFingerPrintFSM::QueryRootConfigObj(CSmartPointer<IConfigInfo>& sp
|
|
|
if (errDev != Error_Succeed)
|
|
|
{
|
|
|
Dbg("open cfg file failed!");
|
|
|
- LogError(Severity_High, Error_DevLoadFileFailed
|
|
|
- , LOG_ERR_FINGERPRINT_OPEN_ROOT_FAILED_ONINIT
|
|
|
+ LogWarn(Severity_High, Error_DevLoadFileFailed
|
|
|
+ , FingerPrint_UserErrorCode_OPEN_ROOT_FAILED_ONINIT
|
|
|
, "get root config file pointer failed while init");
|
|
|
}
|
|
|
|
|
@@ -380,12 +392,8 @@ ErrorCodeEnum CFingerPrintFSM::DoDevOpen(CSmartPointer<IConfigInfo> spConfig)
|
|
|
errDev = m_hDevHelper->DevOpen(tmpPort, baudrate);
|
|
|
if (errDev != Error_Succeed)
|
|
|
{
|
|
|
- WORD devErrCode = errDev;
|
|
|
- CSimpleStringA errMsg = "";
|
|
|
- GetAndSplitDevErrInfo(errMsg, devErrCode, "DevOpen"); //TODO: devErrCode???
|
|
|
- LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_OPEN_FAILED
|
|
|
- , "Fingerprint init(DevOpen) failed.");
|
|
|
+ SetErrPackage(m_errPkg, "Initial::DevOpen", m_csDevSN, errDev, MEC_DEVAPI_FINGERPRINT_DevOpen);
|
|
|
+ AlarmDEC(m_errPkg);
|
|
|
errDev = Error_DevCommFailed;
|
|
|
}
|
|
|
} while (0);
|
|
@@ -406,14 +414,14 @@ ErrorCodeEnum CFingerPrintFSM::DoGetDevInfo()
|
|
|
Dbg("szModel = %s", m_devCatInfo.szModel);
|
|
|
Dbg("szType = %s", m_devCatInfo.szType);
|
|
|
Dbg("szVendor = %s", m_devCatInfo.szVendor);
|
|
|
-
|
|
|
+ m_adapterInfo.devCatInfo = m_devCatInfo;
|
|
|
m_devInit = true;
|
|
|
errDev = Error_Succeed;
|
|
|
}
|
|
|
else {
|
|
|
- LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_GETDEVINFO_FAILED
|
|
|
- , "Get device info(GetDevCategory) failed.");
|
|
|
+ SetErrPackage(m_errPkg, "Initial::GetDevCategory", m_csDevSN, errDev, MEC_DEVAPI_FINGERPRINT_GetDevCategory);
|
|
|
+ AlarmDEC(m_errPkg);
|
|
|
+ m_hDevHelper->DevClose();
|
|
|
errDev = Error_DevCommFailed;
|
|
|
}
|
|
|
return errDev;
|
|
@@ -617,28 +625,28 @@ void CFingerPrintFSM::ProcessAfterScan(ScanParam* pScanParam, SpReqAnsContext<Fi
|
|
|
if (pScanParam->m_NotFindImage)
|
|
|
{
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_NO_IMAGE_IN_DEP_REGISTER
|
|
|
+ , FingerPrint_UserErrorCode_NO_IMAGE_IN_DEP_REGISTER
|
|
|
, "not find fingerprint image in dep while register.");
|
|
|
- ctx->Answer(Error_Unexpect, LOG_ERR_FINGERPRINT_NO_IMAGE_IN_DEP_REGISTER);
|
|
|
+ ctx->Answer(Error_Unexpect, FingerPrint_UserErrorCode_NO_IMAGE_IN_DEP_REGISTER);
|
|
|
}
|
|
|
else if (pScanParam->m_FeatureIsNull)
|
|
|
{
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_GETFEATURE_FAILED_REGISTER
|
|
|
+ , FingerPrint_UserErrorCode_GETFEATURE_FAILED_REGISTER
|
|
|
, "fingerprint feature is null while register.");
|
|
|
- ctx->Answer(Error_Unexpect, LOG_ERR_FINGERPRINT_GETFEATURE_FAILED_REGISTER);
|
|
|
+ ctx->Answer(Error_Unexpect, FingerPrint_UserErrorCode_GETFEATURE_FAILED_REGISTER);
|
|
|
}
|
|
|
else {
|
|
|
if (ctx->Req.times == 3 && !pScanParam->m_GetTemplateSuc)
|
|
|
{
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_GETTEMPLATE_FAILED
|
|
|
+ , FingerPrint_UserErrorCode_GETTEMPLATE_FAILED
|
|
|
, "Not generate template correctly.");
|
|
|
- ctx->Answer(Error_Unexpect, LOG_ERR_FINGERPRINT_GETTEMPLATE_FAILED);
|
|
|
+ ctx->Answer(Error_Unexpect, FingerPrint_UserErrorCode_GETTEMPLATE_FAILED);
|
|
|
}
|
|
|
else if (pScanParam->m_Quit) {
|
|
|
LogWarn(Severity_Middle, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_REGISTER_FAILED
|
|
|
+ , FingerPrint_UserErrorCode_REGISTER_FAILED
|
|
|
, "Exit to homepage when register.");
|
|
|
ctx->Answer(Error_Unexpect);
|
|
|
}
|
|
@@ -800,31 +808,31 @@ void CFingerPrintFSM::ProcessAfterScanEx(ScanParam* pScanParam, SpReqAnsContext<
|
|
|
if (pScanParam->m_NotFindImage)
|
|
|
{
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_NO_IMAGE_IN_DEP_REGISTER
|
|
|
+ , FingerPrint_UserErrorCode_NO_IMAGE_IN_DEP_REGISTER
|
|
|
, "not find fingerprint image in dep while register.");
|
|
|
- ctx->Answer(Error_NotExist, LOG_ERR_FINGERPRINT_NO_IMAGE_IN_DEP_REGISTER);
|
|
|
+ ctx->Answer(Error_NotExist, FingerPrint_UserErrorCode_NO_IMAGE_IN_DEP_REGISTER);
|
|
|
}
|
|
|
else if (pScanParam->m_FeatureIsNull)
|
|
|
{
|
|
|
ctx->Ans.reserved1[0] = 4;
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_GETFEATURE_FAILED_REGISTER
|
|
|
+ , FingerPrint_UserErrorCode_GETFEATURE_FAILED_REGISTER
|
|
|
, "fingerprint feature is null while register.");
|
|
|
- ctx->Answer(Error_Succeed, LOG_ERR_FINGERPRINT_GETFEATURE_FAILED_REGISTER);
|
|
|
+ ctx->Answer(Error_Succeed, FingerPrint_UserErrorCode_GETFEATURE_FAILED_REGISTER);
|
|
|
}
|
|
|
else {
|
|
|
if (ctx->Req.times == 3 && !pScanParam->m_GetTemplateSuc)
|
|
|
{
|
|
|
ctx->Ans.reserved1[0] = 5;
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_GETTEMPLATE_FAILED
|
|
|
+ , FingerPrint_UserErrorCode_GETTEMPLATE_FAILED
|
|
|
, "Not generate template correctly.");
|
|
|
- ctx->Answer(Error_Succeed, LOG_ERR_FINGERPRINT_GETTEMPLATE_FAILED);
|
|
|
+ ctx->Answer(Error_Succeed, FingerPrint_UserErrorCode_GETTEMPLATE_FAILED);
|
|
|
}
|
|
|
else if (pScanParam->m_Quit) {
|
|
|
ctx->Ans.reserved1[0] = 6;
|
|
|
LogWarn(Severity_Middle, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_REGISTER_FAILED
|
|
|
+ , FingerPrint_UserErrorCode_REGISTER_FAILED
|
|
|
, "Exit to homepage when register.");
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
}
|
|
@@ -845,6 +853,11 @@ void CFingerPrintFSM::ProcessAfterScanEx(ScanParam* pScanParam, SpReqAnsContext<
|
|
|
int CFingerPrintFSM::GetFingerPrint(SpReqAnsContext<FingerPrintService_GetFingerPrint_Req, FingerPrintService_GetFingerPrint_Ans>::Pointer ctx)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ if (!m_devInit) {
|
|
|
+ Dbg("GetFingerPrint return failed for device isn't init suc.");
|
|
|
+ ctx->Answer(Error_NotInit); //maybe no vendor adapter
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
|
|
|
Dbg("ctx->Req.times = %d", ctx->Req.times);
|
|
|
if (ctx->Req.times <= 0 || ctx->Req.times > 10)
|
|
@@ -901,20 +914,16 @@ void CFingerPrintFSM::CollectProcess(ScanParam* pScanParam, SpReqAnsContext<Fing
|
|
|
, pScanParam->m_FeatureLen);
|
|
|
if (errCode == Error_Succeed)
|
|
|
{
|
|
|
- Dbg("Invoke routine 'Image2Feature' success while GetFingerPrint.");
|
|
|
- Dbg("FingerPrint feature length is %d", pScanParam->m_FeatureLen);
|
|
|
- //Dbg("before add eof, feature = %s", (LPCTSTR)pScanParam->m_Feature);
|
|
|
SLEEP(200);
|
|
|
- Dbg("pScanParam->m_FullFilePath = %s", pScanParam->m_FullFilePath.GetData());
|
|
|
if (ExistsFile(pScanParam->m_FullFilePath)
|
|
|
&& pScanParam->m_Feature != NULL
|
|
|
&& pScanParam->m_FeatureLen == STANDARD_FEATURE_LEN)
|
|
|
{
|
|
|
ctx->Ans.imageName = fileName;
|
|
|
pScanParam->m_Feature[STANDARD_FEATURE_LEN] = '\0';
|
|
|
- //Dbg("after add eof, feature = %s", (LPCTSTR)pScanParam->m_Feature);
|
|
|
ctx->Ans.feature = (LPCTSTR)pScanParam->m_Feature;
|
|
|
pScanParam->m_bGetFingerPrintSuc = true;
|
|
|
+ Dbg("Image2Feature success.");
|
|
|
break;
|
|
|
}
|
|
|
else if (!ExistsFile(pScanParam->m_FullFilePath))
|
|
@@ -972,22 +981,22 @@ void CFingerPrintFSM::ProcessAfterCollect(ScanParam* pScanParam, SpReqAnsContext
|
|
|
}
|
|
|
else {
|
|
|
if (pScanParam->m_NotFindImage) {
|
|
|
- LogError(Severity_High, Error_Hardware, LOG_ERR_FINGERPRINT_NO_IMAGE_IN_DEP_REGISTER, "not find fingerprint image in dep while register.");
|
|
|
+ LogError(Severity_High, Error_Hardware, FingerPrint_UserErrorCode_NO_IMAGE_IN_DEP_REGISTER, "not find fingerprint image in dep while register.");
|
|
|
ctx->Ans.reserved1[0] = 7;
|
|
|
- ctx->Answer(Error_Succeed, LOG_ERR_FINGERPRINT_NO_IMAGE_IN_DEP_REGISTER);
|
|
|
+ ctx->Answer(Error_Succeed, FingerPrint_UserErrorCode_NO_IMAGE_IN_DEP_REGISTER);
|
|
|
}
|
|
|
else if (pScanParam->m_FeatureIsNull) {
|
|
|
- LogError(Severity_High, Error_Hardware, LOG_ERR_FINGERPRINT_GETFEATURE_FAILED_REGISTER, "fingerprint feature is null while register.");
|
|
|
+ LogError(Severity_High, Error_Hardware, FingerPrint_UserErrorCode_GETFEATURE_FAILED_REGISTER, "fingerprint feature is null while register.");
|
|
|
ctx->Ans.reserved1[0] = 4;
|
|
|
- ctx->Answer(Error_Succeed, LOG_ERR_FINGERPRINT_GETFEATURE_FAILED_REGISTER);
|
|
|
+ ctx->Answer(Error_Succeed, FingerPrint_UserErrorCode_GETFEATURE_FAILED_REGISTER);
|
|
|
}
|
|
|
else if (pScanParam->m_bLenIsNotRight) {
|
|
|
- LogError(Severity_High, Error_Hardware, LOG_ERR_FINGERPRINT_FEATURELEN_ISNOTRIGHT, "fingerprint feature len is not right.");
|
|
|
+ LogError(Severity_High, Error_Hardware, FingerPrint_UserErrorCode_FEATURELEN_ISNOTRIGHT, "fingerprint feature len is not right.");
|
|
|
ctx->Ans.reserved1[0] = 5;
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
else if (pScanParam->m_Quit) {
|
|
|
- LogWarn(Severity_High, Error_Hardware, LOG_ERR_FINGERPRINT_REGISTER_FAILED, "Exit to homepage when register.");
|
|
|
+ LogWarn(Severity_High, Error_Hardware, FingerPrint_UserErrorCode_REGISTER_FAILED, "Exit to homepage when register.");
|
|
|
ctx->Ans.reserved1[0] = 6;
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
}
|
|
@@ -1011,6 +1020,7 @@ int CFingerPrintFSM::GenerateTemplate(SpReqAnsContext<FingerPrintService_Generat
|
|
|
LOG_FUNCTION();
|
|
|
|
|
|
if (!m_devInit) {
|
|
|
+ Dbg("GenerateTemplate return failed for device isn't init suc.");
|
|
|
ctx->Answer(Error_NotInit);
|
|
|
return 0;
|
|
|
}
|
|
@@ -1031,13 +1041,12 @@ int CFingerPrintFSM::GenerateTemplate(SpReqAnsContext<FingerPrintService_Generat
|
|
|
|
|
|
for (int i = 0; i < ctx->Req.FingerIDList.GetCount(); ++i)
|
|
|
{
|
|
|
- Dbg("fingerIDList = %d", ctx->Req.FingerIDList[i]);
|
|
|
char buf[8];
|
|
|
ZeroMemory(buf, 8);
|
|
|
_itoa(ctx->Req.FingerIDList[i], buf, 10);
|
|
|
CSimpleStringA tempStr = CSimpleStringA::Format("%s" SPLIT_SLASH_STR "finger%d.bmp", strPath.GetData(), ctx->Req.FingerIDList[i]);
|
|
|
imagePaths.push_back(tempStr);
|
|
|
- Dbg("%s", imagePaths[i].GetData());
|
|
|
+ Dbg("imageName:%s", imagePaths[i].GetData());
|
|
|
if (!ExistsFile(imagePaths[i]))
|
|
|
{
|
|
|
Dbg("image <%s> not exist.", imagePaths[i].GetData());
|
|
@@ -1065,18 +1074,18 @@ int CFingerPrintFSM::GenerateTemplate(SpReqAnsContext<FingerPrintService_Generat
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
- DevErrorInfo devErrorInfo;
|
|
|
- m_hDevHelper->GetLastErr(devErrorInfo);
|
|
|
- Dbg("Invoke routine 'Image2Template' failed which returned 0x%x(%s)", errCode, devErrorInfo.szErrMsg);
|
|
|
+ SetErrPackage(m_errPkg, "GenerateTemplate::Image2Template", m_csDevSN, errCode, MEC_DEVAPI_FINGERPRINT_Image2Template);
|
|
|
+ AlarmDEC(m_errPkg);
|
|
|
errCode = Error_Unexpect;
|
|
|
}
|
|
|
|
|
|
DeleteBmp(BmpImage);
|
|
|
if (errCode == Error_Succeed)
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
- else
|
|
|
- //ctx->Answer(eErr, AlarmDECToBusiness("generate template failed:", Error_Hardware, LOG_ERR_FINGERPRINT_GETTEMPLATE_FAILED));
|
|
|
- ctx->Answer(errCode);
|
|
|
+ else {
|
|
|
+ SetErrPackage(m_errPkg, "generate template failed", m_csDevSN, Error_Unexpect, FingerPrint_UserErrorCode_GETTEMPLATE_FAILED);
|
|
|
+ ctx->Answer(errCode, AlarmDEC(m_errPkg));
|
|
|
+ }
|
|
|
|
|
|
delete[] lpbTemplate;
|
|
|
lpbTemplate = NULL;
|
|
@@ -1203,7 +1212,7 @@ ErrorCodeEnum CFingerPrintFSM::MatchProcess(ScanParam* initParam, SpReqAnsContex
|
|
|
initParam->m_Feature, initParam->m_FeatureLen);
|
|
|
ULLINT endMatch = RVCGetTickCount();
|
|
|
int duration = endMatch - startMatch;
|
|
|
- LogWarn(Severity_Middle, Error_Debug, LOG_ERR_FINGERPRINT_MATCH_TIME,
|
|
|
+ LogWarn(Severity_Middle, Error_Debug, FingerPrint_UserErrorCode_MATCH_TIME,
|
|
|
GenerateAlarmJson("FingerPrint", duration).GetData());
|
|
|
|
|
|
if (errCode == Error_Succeed) //always true
|
|
@@ -1217,7 +1226,7 @@ ErrorCodeEnum CFingerPrintFSM::MatchProcess(ScanParam* initParam, SpReqAnsContex
|
|
|
DevErrorInfo devErrInfo;
|
|
|
m_hDevHelper->GetLastErr(devErrInfo);
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_INVOKE_MATCH_FAILED
|
|
|
+ , FingerPrint_UserErrorCode_INVOKE_MATCH_FAILED
|
|
|
, "Invoke routine 'Match' failed.");//no this situation
|
|
|
Dbg("Invoke routine 'Match' failed which returned %s(%s)"
|
|
|
, SpStrError(errCode), devErrInfo.szErrMsg);
|
|
@@ -1247,19 +1256,19 @@ ErrorCodeEnum CFingerPrintFSM::MatchProcess(ScanParam* initParam, SpReqAnsContex
|
|
|
if (initParam->m_NotFindImage)
|
|
|
{
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_NO_IMAGE_IN_DEP_MATCH
|
|
|
+ , FingerPrint_UserErrorCode_NO_IMAGE_IN_DEP_MATCH
|
|
|
, "not find fingerprint image in dep while match.");
|
|
|
}
|
|
|
else if (initParam->m_FeatureIsNull)
|
|
|
{
|
|
|
LogError(Severity_High, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_GETFEATURE_FAILED_MATCH
|
|
|
+ , FingerPrint_UserErrorCode_GETFEATURE_FAILED_MATCH
|
|
|
, "fingerprint feature is null while match.");
|
|
|
}
|
|
|
else if (initParam->m_Quit)
|
|
|
{
|
|
|
LogWarn(Severity_Middle, Error_Hardware
|
|
|
- , LOG_ERR_FINGERPRINT_MATCH_FAILED
|
|
|
+ , FingerPrint_UserErrorCode_MATCH_FAILED
|
|
|
, "Exit to homepage when match.");
|
|
|
}
|
|
|
errCode = Error_Unexpect;
|
|
@@ -1357,13 +1366,13 @@ ErrorCodeEnum CFingerPrintFSM::InitCommParam(ScanParam* initParam, int operateTy
|
|
|
|
|
|
Dbg("Get dep path failed while register.");
|
|
|
LogError(Severity_High, Error_DevLoadFileFailed
|
|
|
- , LOG_ERR_FINGERPRINT_GET_DEP_PATH_FAILED_REGISTER
|
|
|
+ , FingerPrint_UserErrorCode_GET_DEP_PATH_FAILED_REGISTER
|
|
|
, "Get dep path failed while register.");
|
|
|
}
|
|
|
else {
|
|
|
Dbg("Get dep path failed while match.");
|
|
|
LogError(Severity_High, Error_DevLoadFileFailed
|
|
|
- , LOG_ERR_FINGERPRINT_GET_DEP_PATH_FAILED_MATCH
|
|
|
+ , FingerPrint_UserErrorCode_GET_DEP_PATH_FAILED_MATCH
|
|
|
, "get dep path failed while match.");
|
|
|
}
|
|
|
|