|
@@ -536,6 +536,8 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
|
|
|
+ memset(&idInfoEx2, 0, sizeof(idInfoEx2));
|
|
|
+
|
|
|
ULLINT OpenRFControlTime = 0;
|
|
|
ULLINT CloseRFControlTime = 0;
|
|
|
ULLINT IDCerAuthenticateTime = 0;
|
|
@@ -556,14 +558,6 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
|
|
|
DeleteZP(Bmp_ZP | Bmp_SCAN, 1);
|
|
|
|
|
|
bool bOpenRF = false, bGetIDCert = false;
|
|
|
- IDCerInfoEx2 idInfoEx2;
|
|
|
- IDCerInfoEx idInfo;
|
|
|
- IDCerInfo idInfoOld;
|
|
|
-
|
|
|
- memset(&idInfoEx2, 0, sizeof(idInfoEx2));
|
|
|
- memset(&idInfo, 0, sizeof(idInfo));
|
|
|
- memset(&idInfoOld, 0, sizeof(idInfoOld));
|
|
|
-
|
|
|
m_bCancelRead = false;
|
|
|
m_bWaitReadMore = false;
|
|
|
m_bReading = true;
|
|
@@ -817,7 +811,12 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
|
|
|
memcpy(ctx->Ans.reserved_utf8.m_pData, reserved, strlen((char*)reserved)); //新外国人永居证关联字段
|
|
|
memcpy(ctx->Ans.othercode_utf8.m_pData, englishNameEx, strlen((char*)englishNameEx)); //英文名备用字段
|
|
|
|
|
|
- GetPngBlobEx(ctx->Ans.headphoto, "zp"); //转换头像图片
|
|
|
+ //GetPngBlobEx(ctx->Ans.headphoto, "zp"); //转换头像图片
|
|
|
+
|
|
|
+ //图片透传demo
|
|
|
+ ctx->Ans.headphoto.Alloc(idInfoEx2.headPicStoreDemo.dwSize);
|
|
|
+ memcpy(ctx->Ans.headphoto.m_pData, idInfoEx2.headPicStoreDemo.headPtr, idInfoEx2.headPicStoreDemo.dwSize);
|
|
|
+ Dbg("头像图片获取成功,长度:%ld.", idInfoEx2.headPicStoreDemo.dwSize);
|
|
|
|
|
|
ctx->Ans.hasscan = 0;
|
|
|
if (igestionVer == TRUE) //吸入式设备才调用正反扫描功能
|
|
@@ -827,60 +826,73 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
|
|
|
m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
|
|
|
ScanIDAndSaveImageTime = m_ullEndTime - m_ullBeginTime;
|
|
|
|
|
|
+ //图片透传demo
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
- curDeleteType = Bmp_ZP | Bmp_SCAN;
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ScanIDAndSaveImage")
|
|
|
- .setCostTime(ScanIDAndSaveImageTime)();
|
|
|
-
|
|
|
- transImgMsg.Clear();
|
|
|
- //idfront.bmp" and "idback.bmp
|
|
|
- ErrorCodeEnum eErrFront, eErrBack;
|
|
|
- eErrFront = GetPngBlobEx(ctx->Ans.frontphoto, "idfront");
|
|
|
- eErrBack = GetPngBlobEx(ctx->Ans.backphoto, "idback");
|
|
|
- if (eErrFront == Error_Succeed && eErrBack == Error_Succeed)
|
|
|
- {
|
|
|
- ctx->Ans.hasscan = 1;
|
|
|
-#ifdef RVC_OS_WIN
|
|
|
- if (!closeImgCheck)
|
|
|
- {
|
|
|
- ImgChekTask* frontImgCheck = new ImgChekTask(this);
|
|
|
- frontImgCheck->idNum =/* ctx->Ans.idcode_utf8.m_pData*/gbkIDcode;
|
|
|
- frontImgCheck->inName = /*ctx->Ans.name_utf8.m_pData*/gbkName;
|
|
|
- frontImgCheck->inNationality = /*ctx->Ans.nationality_utf8.m_pData*/gbkNationality;
|
|
|
- frontImgCheck->inIdType = /*ctx->Ans.idtype_utf8.m_pData*/gbkIDtype;
|
|
|
- frontImgCheck->imgInput = ctx->Ans.frontphoto;
|
|
|
- frontImgCheck->imgType = "正面";
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(frontImgCheck);
|
|
|
-
|
|
|
- ImgChekTask* backImgCheck = new ImgChekTask(this);
|
|
|
- backImgCheck->idNum = /*ctx->Ans.idcode_utf8.m_pData*/gbkIDcode;
|
|
|
- backImgCheck->inName = /*ctx->Ans.name_utf8.m_pData*/gbkName;
|
|
|
- backImgCheck->inNationality = /*ctx->Ans.nationality_utf8.m_pData*/gbkNationality;
|
|
|
- backImgCheck->inIdType = /*ctx->Ans.idtype_utf8.m_pData*/gbkIDtype;
|
|
|
- backImgCheck->imgInput = ctx->Ans.backphoto;
|
|
|
- frontImgCheck->imgType = "背面";
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(backImgCheck);
|
|
|
- }
|
|
|
-#endif
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- CSimpleStringA warnMsg = "ScanIDAndSaveImage() suc. But GetPngBlobEx() failed.";
|
|
|
- if (transImgMsg.GetLength() != 0)
|
|
|
- {
|
|
|
- warnMsg = warnMsg + transImgMsg;
|
|
|
- }
|
|
|
- LogWarn(Severity_Middle, Error_Succeed,
|
|
|
- IDCertificate_UserErrorCode_ReadAndScan_TransImgFaild, warnMsg.GetData());
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (eErr != Error_NotImpl)
|
|
|
- SetErrorAndLog(eErr, MEC_DEVAPI_IDCER_ScanIDAndSaveImage, "DevAdapter::ScanIDAndSaveImage", __FUNCTION__,
|
|
|
- false, ScanIDAndSaveImageTime);
|
|
|
+ ctx->Ans.hasscan = 1;
|
|
|
+ ctx->Ans.frontphoto.Alloc(idInfoEx2.frontPicStoreDemo.dwSize);
|
|
|
+ ctx->Ans.backphoto.Alloc(idInfoEx2.backPicStoreDemo.dwSize);
|
|
|
+ memcpy(ctx->Ans.frontphoto.m_pData, idInfoEx2.frontPicStoreDemo.frontPtr, idInfoEx2.frontPicStoreDemo.dwSize);
|
|
|
+ memcpy(ctx->Ans.backphoto.m_pData, idInfoEx2.backPicStoreDemo.backPtr, idInfoEx2.backPicStoreDemo.dwSize);
|
|
|
+
|
|
|
+ Dbg("正面图片获取成功,长度:%ld.", idInfoEx2.frontPicStoreDemo.dwSize);
|
|
|
+ Dbg("背面图片获取成功,长度:%ld.", idInfoEx2.backPicStoreDemo.dwSize);
|
|
|
}
|
|
|
+
|
|
|
+// if (eErr == Error_Succeed)
|
|
|
+// {
|
|
|
+// curDeleteType = Bmp_ZP | Bmp_SCAN;
|
|
|
+// DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ScanIDAndSaveImage")
|
|
|
+// .setCostTime(ScanIDAndSaveImageTime)();
|
|
|
+//
|
|
|
+// transImgMsg.Clear();
|
|
|
+// //idfront.bmp" and "idback.bmp
|
|
|
+// ErrorCodeEnum eErrFront, eErrBack;
|
|
|
+// eErrFront = GetPngBlobEx(ctx->Ans.frontphoto, "idfront");
|
|
|
+// eErrBack = GetPngBlobEx(ctx->Ans.backphoto, "idback");
|
|
|
+// if (eErrFront == Error_Succeed && eErrBack == Error_Succeed)
|
|
|
+// {
|
|
|
+// ctx->Ans.hasscan = 1;
|
|
|
+//#ifdef RVC_OS_WIN
|
|
|
+// if (!closeImgCheck)
|
|
|
+// {
|
|
|
+// ImgChekTask* frontImgCheck = new ImgChekTask(this);
|
|
|
+// frontImgCheck->idNum =/* ctx->Ans.idcode_utf8.m_pData*/gbkIDcode;
|
|
|
+// frontImgCheck->inName = /*ctx->Ans.name_utf8.m_pData*/gbkName;
|
|
|
+// frontImgCheck->inNationality = /*ctx->Ans.nationality_utf8.m_pData*/gbkNationality;
|
|
|
+// frontImgCheck->inIdType = /*ctx->Ans.idtype_utf8.m_pData*/gbkIDtype;
|
|
|
+// frontImgCheck->imgInput = ctx->Ans.frontphoto;
|
|
|
+// frontImgCheck->imgType = "正面";
|
|
|
+// GetEntityBase()->GetFunction()->PostThreadPoolTask(frontImgCheck);
|
|
|
+//
|
|
|
+// ImgChekTask* backImgCheck = new ImgChekTask(this);
|
|
|
+// backImgCheck->idNum = /*ctx->Ans.idcode_utf8.m_pData*/gbkIDcode;
|
|
|
+// backImgCheck->inName = /*ctx->Ans.name_utf8.m_pData*/gbkName;
|
|
|
+// backImgCheck->inNationality = /*ctx->Ans.nationality_utf8.m_pData*/gbkNationality;
|
|
|
+// backImgCheck->inIdType = /*ctx->Ans.idtype_utf8.m_pData*/gbkIDtype;
|
|
|
+// backImgCheck->imgInput = ctx->Ans.backphoto;
|
|
|
+// frontImgCheck->imgType = "背面";
|
|
|
+// GetEntityBase()->GetFunction()->PostThreadPoolTask(backImgCheck);
|
|
|
+// }
|
|
|
+//#endif
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// CSimpleStringA warnMsg = "ScanIDAndSaveImage() suc. But GetPngBlobEx() failed.";
|
|
|
+// if (transImgMsg.GetLength() != 0)
|
|
|
+// {
|
|
|
+// warnMsg = warnMsg + transImgMsg;
|
|
|
+// }
|
|
|
+// LogWarn(Severity_Middle, Error_Succeed,
|
|
|
+// IDCertificate_UserErrorCode_ReadAndScan_TransImgFaild, warnMsg.GetData());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// if (eErr != Error_NotImpl)
|
|
|
+// SetErrorAndLog(eErr, MEC_DEVAPI_IDCER_ScanIDAndSaveImage, "DevAdapter::ScanIDAndSaveImage", __FUNCTION__,
|
|
|
+// false, ScanIDAndSaveImageTime);
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
#ifdef RVC_OS_WIN
|