|
@@ -1547,8 +1547,7 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
CloseAndClearDevObj(false);
|
|
|
return eErrDev;
|
|
|
}
|
|
|
- int ret = 0, isIssue = 99;
|
|
|
- spConfig->ReadConfigValueInt("all", "IsIssue", isIssue);
|
|
|
+ int ret = 0;
|
|
|
spConfig->ReadConfigValueInt("all", "HopperNum", m_hopperNum);
|
|
|
spConfig->ReadConfigValueInt("all", "CardCaptured", m_CardCaptured);
|
|
|
|
|
@@ -1603,7 +1602,6 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("use new hopper cfg record"));
|
|
|
}
|
|
|
//oilyang 回写卡机配置
|
|
|
- spConfig->WriteConfigValueInt("all", "IsIssue", isIssue);
|
|
|
spConfig->WriteConfigValueInt("all", "HopperNum", m_hopperNum);
|
|
|
spConfig->WriteConfigValueInt("1", "CardPercent", m_CardPercentEx[0]);
|
|
|
spEntityFunction->OpenConfig(Config_CenterSetting, spConfigCS);
|
|
@@ -1631,23 +1629,12 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
m_bStopUseRF = true;
|
|
|
if (tmpCheckInterval >= 100 && tmpCheckInterval <= 1000)
|
|
|
m_iCheckCardInInterval = tmpCheckInterval;
|
|
|
- m_issueStatusFromFile = m_issueStatus = isIssue;
|
|
|
- if (m_issueStatusFromFile == 0)
|
|
|
- m_bCardFromHopper = false;
|
|
|
+
|
|
|
|
|
|
ret = CheckIfHasCardOnCase(CheckCard_OnOpen);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("ret: %d, isIssue: %d, m_hasCardWhileDevOpen:%d, m_issueStatusFromFile:%d",
|
|
|
- ret, isIssue, m_hasCardWhileDevOpen, m_issueStatusFromFile);
|
|
|
|
|
|
if (ret == 0)
|
|
|
{
|
|
|
- if (m_hasCardWhileDevOpen && m_issueStatusFromFile > 0)
|
|
|
- {
|
|
|
- //oilyang@20171220 遗留卡片已经被吞,重置数据
|
|
|
- m_issueStatusFromFile = 0;
|
|
|
- m_currCardNo = m_addCardNo = "";
|
|
|
- FSMSetIssueFlag(0);
|
|
|
- }
|
|
|
//oilyang@20191219 获取吞卡箱容量,目前有便携卡机,大机
|
|
|
//超过5,认为是脏数据,用默认值3
|
|
|
CardIssuerStatus cis;
|
|
@@ -1707,9 +1694,7 @@ int CCardIssuerFSM::CheckIfHasCardOnCase(CheckCardCase eCase)
|
|
|
{
|
|
|
case CI_MEDIA_PRESENT:
|
|
|
{
|
|
|
- if (eCase == CheckCard_OnOpen)
|
|
|
- m_hasCardWhileDevOpen = true;
|
|
|
- else if (eCase == CheckCard_OnFail)
|
|
|
+ if (eCase == CheckCard_OnFail)
|
|
|
return 2;
|
|
|
|
|
|
if (m_currCardNo.GetLength() > 1)
|
|
@@ -1974,17 +1959,13 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
if (errCode != Error_Succeed)
|
|
|
{
|
|
|
|
|
|
- CSimpleStringA ErrMsg = CSimpleStringA::Format("IssueCard::MoveCard err , m_currentHopper:%d", m_currentHopper);
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(ErrMsg.GetData());
|
|
|
- FSMSetIssueFlag(2);
|
|
|
+ CSimpleStringA ErrMsg = CSimpleStringA::Format("m_currentHopper:%d", m_currentHopper);
|
|
|
|
|
|
if (ctx != NULL) {
|
|
|
- //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER)("从卡箱移动卡片到读卡器失败,请重试或检查是否有塞卡");
|
|
|
SetErrorAndLog(errCode, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_FROM_HOPPER, "DevAdapter::MoveCard", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220320", ErrMsg.GetData());
|
|
|
ctx->Answer(Error_Unexpect, GetAlarmDEC());
|
|
|
}
|
|
|
else {
|
|
|
- //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER)("从卡箱移动卡片到读卡器失败,请重试或检查是否有塞卡");
|
|
|
SetErrorAndLog(errCode, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_FROM_HOPPER, "DevAdapter::MoveCard", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220320", ErrMsg.GetData());
|
|
|
ctxEx->Answer(Error_Unexpect, GetAlarmDEC());
|
|
|
}
|
|
@@ -1993,7 +1974,6 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
else {
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::MoveCard").setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220320")("IssueCard::MoveCard succ, m_currentHopper:%d", m_currentHopper);
|
|
|
}
|
|
|
- //LogWarn(Severity_Low, Error_Succeed, CardIssuer_UserErrorCode_MoveCard_FromHopper, "MoveCard from hopper suc.");
|
|
|
m_issuedEx[m_currentHopper - 1]++;
|
|
|
m_remainsEx[m_currentHopper - 1]--;
|
|
|
m_bSettingMaterial = true;//oilyang 借用于延迟同步,紧接着设置remains时更新到后台数据库
|
|
@@ -2035,10 +2015,10 @@ int CCardIssuerFSM::CaptureCard(SpReqAnsContext<CardIssuerStandService_Capture_R
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR040220304")();
|
|
|
bool bCaptured = ToRegistCaptureCardInfo();
|
|
|
- m_currCardNo = m_addCardNo = "";
|
|
|
}
|
|
|
else
|
|
|
ret = 1;
|
|
|
+ m_currCardNo = "";
|
|
|
m_CardCaptured++;
|
|
|
if (!SetCardCaptured(m_CardCaptured))
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("<CaptureCard>, set card captured failed");
|
|
@@ -3795,40 +3775,6 @@ void CCardIssuerFSM::SelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactio
|
|
|
{
|
|
|
OnHardwareShakeHand(pTransactionContext);
|
|
|
}
|
|
|
-
|
|
|
-bool CCardIssuerFSM::FSMSetIssueFlag(int value)
|
|
|
-{
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("FSMSetIssueFlag, value:%d,from file:%d", value, m_issueStatusFromFile);
|
|
|
- if (value == 0 && m_issueStatusFromFile >1)
|
|
|
- {
|
|
|
- //oilyang@20171220 如果曾经卡片卡住,但启动时没有发现卡片,则更新本次发卡方向但不写文件,以防后续卡片被移动到卡槽
|
|
|
- if (!m_hasCardWhileDevOpen)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("card jamed havn't been process.");
|
|
|
- m_issueStatus = 0;
|
|
|
- }
|
|
|
- else
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("insert succeed,but there maybe some card jamed...");
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- m_issueStatus = value;
|
|
|
- CSmartPointer<IEntityFunction> spEntityFunction = GetEntityBase()->GetFunction();
|
|
|
- CSmartPointer<IConfigInfo> spConfig;
|
|
|
- ErrorCodeEnum eErrDev = spEntityFunction->OpenConfig(Config_Run, spConfig);
|
|
|
- if (eErrDev != Error_Succeed) {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode(RTAERR_CONFIG_OPEN_FAILED)("(FSMSetIssueFlag) open cfg file failed!");
|
|
|
- return false;
|
|
|
- }
|
|
|
- eErrDev = spConfig->WriteConfigValueInt("all", "IsIssue", value);
|
|
|
- if (eErrDev == Error_Succeed) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- else {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode(RTAERR_CONFIG_WRITE_FAILED)("(FSMSetIssueFlag) write IsIssue err:%d, value:%d", eErrDev, value);
|
|
|
- return false;
|
|
|
- }
|
|
|
-}
|
|
|
bool CCardIssuerFSM::SetCardCaptured(const int num,bool bClear)
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("<SetCardCaptured>, num:%d, bClear:%d, m_maxRetainCount:%d, m_bSettingMaterial:%d",
|
|
@@ -4054,17 +4000,9 @@ ErrorCodeEnum CCardIssuerFSM::MachineMoveCardFrontGate(bool bInBussiness)
|
|
|
|
|
|
if (eMoveFrontGate != Error_Succeed){
|
|
|
if (m_bCardFromHopper)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("发卡,卡片吐出失败,请联系厂商检查卡嘴是否没对齐或是否有塞卡");
|
|
|
SetErrorAndLog(eMoveFrontGate, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_FRONT_GATE, "DevAdapter::MoveCard", __FUNCTION__, bInBussiness, l_endTime - l_beginTime, "QLR040220305", "后端发卡,卡片吐出失败");
|
|
|
-
|
|
|
- }
|
|
|
else
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("前端进卡,卡片吐出失败,请确认卡片是否平整");
|
|
|
SetErrorAndLog(eMoveFrontGate, CardIssuer_UserErrorCode_MoveCardToGate_Failed, "DevAdapter::MoveCard", __FUNCTION__, bInBussiness, l_endTime - l_beginTime, "QLR040220305", "前端进卡,卡片吐出失败");
|
|
|
-
|
|
|
- }
|
|
|
}
|
|
|
else {
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::MoveCard").setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220305")("MachineMoveCardFrontGate::MoveCard");
|
|
@@ -5344,7 +5282,7 @@ int CCardIssuerFSM::EjectJS(SpReqAnsContext<CardIssuerStandService_EjectJS_Req,
|
|
|
m_CardCaptured++;
|
|
|
m_captureReason = "4998";//超时未取卡引起吞卡
|
|
|
ToRegistCaptureCardInfo();//登记吞卡记录
|
|
|
- m_currCardNo = m_addCardNo = "";
|
|
|
+ m_currCardNo = "";
|
|
|
|
|
|
l_beginTime = GetTickCountRVC();
|
|
|
ErrorCodeEnum eErrSet = m_hDevHelper->SetCardInType(CI_CARD_IN_TYPE_FORBIDDEN);
|
|
@@ -5419,7 +5357,7 @@ int CCardIssuerFSM::CaptureJS(SpReqAnsContext<CardIssuerStandService_CaptureJS_R
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::SetCardInType").setCostTime(l_endTime - l_beginTime)("CaptureJS::SetCardInType");
|
|
|
}
|
|
|
CSimpleStringA maskCardno = MaskCardno(m_currCardNo.GetData());
|
|
|
- m_currCardNo = m_addCardNo = "";
|
|
|
+ m_currCardNo = "";
|
|
|
if (ctx != NULL) {
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR040220343").setResultCode("RTA23CS")("CaptureJS::GetDevStatus succ, No card found in cardReader, m_currCardNo=%s", maskCardno.GetData());
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_Capture_NoCard_Failed, "Capture card, No card found in cardReader");
|
|
@@ -5444,7 +5382,7 @@ int CCardIssuerFSM::CaptureJS(SpReqAnsContext<CardIssuerStandService_CaptureJS_R
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::MoveCard").setCostTime(l_endTime - l_beginTime)("CaptureJS::MoveCard(CI_MOVECARD_BACK_NOT_HOLD)");
|
|
|
m_CardCaptured++;
|
|
|
ToRegistCaptureCardInfo();//登记吞卡记录
|
|
|
- m_currCardNo = m_addCardNo = "";
|
|
|
+ m_currCardNo = "";
|
|
|
|
|
|
l_beginTime = GetTickCountRVC();
|
|
|
ErrorCodeEnum eErrSet = m_hDevHelper->SetCardInType(CI_CARD_IN_TYPE_FORBIDDEN);
|
|
@@ -5638,9 +5576,7 @@ int CCardIssuerFSM::IssueFromBoxJS(SpReqAnsContext<CardIssuerStandService_IssueF
|
|
|
m_bCardFromHopper = true;//用于区分吐卡报错不同
|
|
|
if (errCode != Error_Succeed)
|
|
|
{
|
|
|
- CSimpleStringA errMsg = CSimpleStringA::Format("IssueFromBoxJS::MoveCard err, m_currentHopper:%d", m_currentHopper);
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(errMsg.GetData());
|
|
|
- FSMSetIssueFlag(2);
|
|
|
+ CSimpleStringA errMsg = CSimpleStringA::Format("m_currentHopper:%d", m_currentHopper);
|
|
|
DWORD dwTmpUserErrCode = SetErrorAndLog(errCode, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_FROM_HOPPER, "DevAdapter::MoveCard", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220345", errMsg.GetData());
|
|
|
ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
return 2;//S9
|
|
@@ -5732,7 +5668,6 @@ int CCardIssuerFSM::PostOnlineJS_RF(SpReqAnsContext<CardIssuerStandService_PostO
|
|
|
void CCardIssuerFSM::ReadMag(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx)
|
|
|
{
|
|
|
m_currCardNo = "";
|
|
|
- ctx->Ans.magStatus = 0;
|
|
|
MagTracks magTracks;
|
|
|
memset(magTracks.track[0].data, 0, sizeof(magTracks.track[0].data));
|
|
|
memset(magTracks.track[1].data, 0, sizeof(magTracks.track[1].data));
|
|
@@ -5781,10 +5716,24 @@ void CCardIssuerFSM::ReadMag(SpReqAnsContext<CardIssuerStandService_ReadJS_Req,
|
|
|
|
|
|
int CCardIssuerFSM::PreOnlineJS_ReadViaContact(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx, bool bContinue)
|
|
|
{
|
|
|
- //oiltmp TODO? need to judge if need movecard to the position?
|
|
|
LOG_FUNCTION();
|
|
|
- long l_beginTime, l_endTime;
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("PreOnlineJS_Contact, business data[%s]", ctx->Req.businessData.GetData());
|
|
|
+ ctx->Ans.icStatus = 1;
|
|
|
+ m_ullBeginTime = GetTickCountRVC();
|
|
|
+ ErrorCodeEnum eErr = m_hDevHelper->MoveCard(CI_MOVECARD_IC_POSITION);
|
|
|
+ m_ullEndTime = GetTickCountRVC();
|
|
|
+ if (eErr == Error_Succeed) {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::MoveCard").setCostTime(m_ullEndTime - m_ullBeginTime)("MoveCard to CI_MOVECARD_IC_POSITION");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DWORD dwTmpUserErrCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_MoveCard, "DevAdapter::MoveCard", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220340");
|
|
|
+ if (bContinue)
|
|
|
+ return -1;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
m_pCardProcess->DataInit();
|
|
|
//split the business data for pboc process
|
|
@@ -5801,9 +5750,9 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaContact(SpReqAnsContext<CardIssuerStandSe
|
|
|
int icRetryTimes = 0;
|
|
|
while (1)
|
|
|
{
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
+ m_ullBeginTime = GetTickCountRVC();
|
|
|
retDetectAndRead = m_pCardProcess->DetectAndReadICData(CARD_MACHINE_ISSUER, m_hDevHelper, m_aidList, activeCardType, m_issueStatus);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
+ m_ullEndTime = GetTickCountRVC();
|
|
|
if (retDetectAndRead == -1)//only retry for active ic card failed!
|
|
|
icRetryTimes++;
|
|
|
else
|
|
@@ -5824,9 +5773,9 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaContact(SpReqAnsContext<CardIssuerStandSe
|
|
|
int icRetryTimes = 0;
|
|
|
while (1)
|
|
|
{
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
+ m_ullBeginTime = GetTickCountRVC();
|
|
|
retDetectAndRead = m_pCardProcess->DetectAndReadICData(CARD_MACHINE_ISSUER, m_hDevHelper, preAIDs, activeCardType, m_issueStatus);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
+ m_ullEndTime = GetTickCountRVC();
|
|
|
if (retDetectAndRead == -1)//only retry for active ic card failed!
|
|
|
icRetryTimes++;
|
|
|
else
|
|
@@ -5854,28 +5803,28 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaContact(SpReqAnsContext<CardIssuerStandSe
|
|
|
GetCardProcessLastErr(eErrCode, ApiName, alarmMsg, csErrMsgWithReturnCode);
|
|
|
|
|
|
if (m_issueStatus) {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220320").setResultCode("RTA230V")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220320").setResultCode("RTA230V")(csErrMsgWithReturnCode.GetData());
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220303").setResultCode("RTA230M")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220303").setResultCode("RTA230M")(csErrMsgWithReturnCode.GetData());
|
|
|
}
|
|
|
}
|
|
|
else if (retDetectAndRead == -2) {
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("读取IC数据失败 bContinue");
|
|
|
if (m_issueStatus) {
|
|
|
- SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220320", "读取IC数据失败");
|
|
|
+ SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220320", "读取IC数据失败");
|
|
|
}
|
|
|
else {
|
|
|
- SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220303", "读取IC数据失败");
|
|
|
+ SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220303", "读取IC数据失败");
|
|
|
}
|
|
|
}
|
|
|
else if (retDetectAndRead == -3) {
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("IC卡建立应用列表失败 bContinue");
|
|
|
if (m_issueStatus) {
|
|
|
- SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220320", "retDetectAndRead = -3");
|
|
|
+ SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220320", "retDetectAndRead = -3");
|
|
|
}
|
|
|
else {
|
|
|
- SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220303", "retDetectAndRead = -3");
|
|
|
+ SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220303", "retDetectAndRead = -3");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -5886,48 +5835,64 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaContact(SpReqAnsContext<CardIssuerStandSe
|
|
|
|
|
|
if (m_issueStatus) {
|
|
|
if (IsInBusiness()) {
|
|
|
- DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220320").setResultCode("RTA230V")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220320").setResultCode("RTA230V")(csErrMsgWithReturnCode.GetData());
|
|
|
LogError(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveICCard_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220320").setResultCode("RTA230V")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220320").setResultCode("RTA230V")(csErrMsgWithReturnCode.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveICCard_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
- ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveICCard_Failed);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveICCard_Failed);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
else {
|
|
|
if (IsInBusiness()) {
|
|
|
- DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220303").setResultCode("RTA230M")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220303").setResultCode("RTA230M")(csErrMsgWithReturnCode.GetData());
|
|
|
LogError(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_ActiveICCard_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220303").setResultCode("RTA230M")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220303").setResultCode("RTA230M")(csErrMsgWithReturnCode.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_ActiveICCard_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
- ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_ActiveICCard_Failed);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_ActiveICCard_Failed);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
}
|
|
|
else if (retDetectAndRead == -2) {
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("读取IC数据失败");
|
|
|
DWORD dwTmpUserErrCode = 0;
|
|
|
if (m_issueStatus) {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220320", "读取IC数据失败");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220320", "读取IC数据失败");
|
|
|
}
|
|
|
else {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220303", "读取IC数据失败");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220303", "读取IC数据失败");
|
|
|
}
|
|
|
- ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
else if (retDetectAndRead == -3) {
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("IC卡建立应用列表失败");
|
|
|
DWORD dwTmpUserErrCode = 0;
|
|
|
if (m_issueStatus) {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220320", "retDetectAndRead =-3");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220320", "retDetectAndRead =-3");
|
|
|
}
|
|
|
else {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220303", "retDetectAndRead =-3");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_ICCommand, "DevAdapter::ICCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220303", "retDetectAndRead =-3");
|
|
|
}
|
|
|
- ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
}
|
|
|
return -1;
|
|
@@ -5952,26 +5917,31 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaContact(SpReqAnsContext<CardIssuerStandSe
|
|
|
break;
|
|
|
}
|
|
|
ctx->Ans.pbocData = taaResult;
|
|
|
+ ctx->Ans.icMode = 0;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx, bool bContinue)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
- long l_beginTime, l_endTime;
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
+ ctx->Ans.icStatus = 1;
|
|
|
+ m_ullBeginTime = GetTickCountRVC();
|
|
|
ErrorCodeEnum eErr = m_hDevHelper->MoveCard(CI_MOVECARD_RF_POSITION);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
+ m_ullEndTime = GetTickCountRVC();
|
|
|
if (eErr == Error_Succeed) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::MoveCard").setCostTime(l_endTime - l_beginTime)("PreOnlineJS_RF::MoveCard, (CI_MOVECARD_RF_POSITION)");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::MoveCard").setCostTime(m_ullEndTime - m_ullBeginTime)("PreOnlineJS_RF::MoveCard, (CI_MOVECARD_RF_POSITION)");
|
|
|
}
|
|
|
else {
|
|
|
- SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_MoveCard, "DevAdapter::MoveCard", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220340", "PreOnlineJS_RF::MoveCard err");
|
|
|
- //oiltmp move card failed, not to halt process?
|
|
|
+ DWORD dwTmpUserErrCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_MoveCard, "DevAdapter::MoveCard", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220340");
|
|
|
+ if (bContinue)
|
|
|
+ return -1;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("PreOnlineJS_RF, business data[%s]", ctx->Req.businessData.GetData());
|
|
|
-
|
|
|
m_pCardProcess->DataInit();
|
|
|
//数据已读出,开始pmoc流程
|
|
|
m_pCardProcess->SplitBusinessData(ctx->Req.businessData, ctx->Req.businessData.GetLength());
|
|
@@ -5986,9 +5956,9 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
int icRetryTimes = 0;
|
|
|
while (1)
|
|
|
{
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
+ m_ullBeginTime = GetTickCountRVC();
|
|
|
retDetectAndRead = m_pCardProcess->DetectAndReadICData(CARD_MACHINE_ISSUER_RF, m_hDevHelper, m_aidList, activeCardType, m_issueStatus);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
+ m_ullEndTime = GetTickCountRVC();
|
|
|
if (retDetectAndRead == -1)//only retry for active ic card failed!
|
|
|
icRetryTimes++;
|
|
|
else
|
|
@@ -6009,9 +5979,9 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
int icRetryTimes = 0;
|
|
|
while (1)
|
|
|
{
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
+ m_ullBeginTime = GetTickCountRVC();
|
|
|
retDetectAndRead = m_pCardProcess->DetectAndReadICData(CARD_MACHINE_ISSUER_RF, m_hDevHelper, preAIDs, activeCardType, m_issueStatus);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
+ m_ullEndTime = GetTickCountRVC();
|
|
|
if (retDetectAndRead == -1)//only retry for active ic card failed!
|
|
|
icRetryTimes++;
|
|
|
else
|
|
@@ -6040,10 +6010,10 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
GetCardProcessLastErr(eErrCode, ApiName, alarmMsg, csErrMsgWithReturnCode);
|
|
|
|
|
|
if (m_issueStatus) {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220320").setResultCode("RTA2327")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220320").setResultCode("RTA2327")(csErrMsgWithReturnCode.GetData());
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220303").setResultCode("RTA2326")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220303").setResultCode("RTA2326")(csErrMsgWithReturnCode.GetData());
|
|
|
}
|
|
|
}
|
|
|
else if (retDetectAndRead == -2) {
|
|
@@ -6051,10 +6021,10 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("读取IC数据失败 bContinue");
|
|
|
DWORD dwTmpUserErrCode = 0;
|
|
|
if (m_issueStatus) {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220320", "读取IC数据失败");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220320", "读取IC数据失败");
|
|
|
}
|
|
|
else {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220303", "读取IC数据失败");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220303", "读取IC数据失败");
|
|
|
}
|
|
|
}
|
|
|
else if (retDetectAndRead == -3) {
|
|
@@ -6062,10 +6032,10 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("IC卡建立应用列表失败 bContinue");
|
|
|
DWORD dwTmpUserErrCode = 0;
|
|
|
if (m_issueStatus) {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220320", "retDetectAndRead=-3");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220320", "retDetectAndRead=-3");
|
|
|
}
|
|
|
else {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220303", "retDetectAndRead=-3");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220303", "retDetectAndRead=-3");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -6078,29 +6048,35 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
if (m_issueStatus) {
|
|
|
if (IsInBusiness())
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220320").setResultCode("RTA2327")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220320").setResultCode("RTA2327")(csErrMsgWithReturnCode.GetData());
|
|
|
LogError(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveRF_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220320").setResultCode("RTA2327")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220320").setResultCode("RTA2327")(csErrMsgWithReturnCode.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveRF_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
-
|
|
|
- ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveRF_Failed);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveRF_Failed);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
else {
|
|
|
if (IsInBusiness())
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220303").setResultCode("RTA2326")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220303").setResultCode("RTA2326")(csErrMsgWithReturnCode.GetData());
|
|
|
LogError(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_ActiveContactlessICCard_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220303").setResultCode("RTA2326")(csErrMsgWithReturnCode.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setAPI(ApiName.GetData()).setCostTime(m_ullEndTime - m_ullBeginTime).setLogCode("QLR040220303").setResultCode("RTA2326")(csErrMsgWithReturnCode.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_ActiveContactlessICCard_Failed, alarmMsg.GetData());
|
|
|
}
|
|
|
-
|
|
|
- ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_ActiveContactlessICCard_Failed);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_ActiveContactlessICCard_Failed);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
}
|
|
|
else if (retDetectAndRead == -2) {
|
|
@@ -6108,24 +6084,32 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("读取IC数据失败");
|
|
|
DWORD dwTmpUserErrCode = 0;
|
|
|
if (m_issueStatus) {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220320", "读取IC数据失败");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220320", "读取IC数据失败");
|
|
|
}
|
|
|
else {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220303", "读取IC数据失败");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220303", "读取IC数据失败");
|
|
|
}
|
|
|
- ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
else if (retDetectAndRead == -3) {
|
|
|
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("IC卡建立应用列表失败");
|
|
|
DWORD dwTmpUserErrCode = 0;
|
|
|
if (m_issueStatus) {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220320", "retDetectAndRead=-3");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220320", "retDetectAndRead=-3");
|
|
|
}
|
|
|
else {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220303", "retDetectAndRead=-3");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_RFTypeABCommand, "DevAdapter::RFTypeABCommand", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220303", "retDetectAndRead=-3");
|
|
|
}
|
|
|
- ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ //oilyang@20250822 if read mag successfully, we should return magData
|
|
|
+ if (ctx->Ans.magStatus != 0)
|
|
|
+ ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ else
|
|
|
+ ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
}
|
|
|
return -1;//上电读卡失败
|
|
@@ -6150,6 +6134,7 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
break;
|
|
|
}
|
|
|
ctx->Ans.pbocData = taaResult;
|
|
|
+ ctx->Ans.icMode = 1;
|
|
|
return 0;
|
|
|
}
|
|
|
int CCardIssuerFSM::PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx)
|
|
@@ -6158,6 +6143,7 @@ int CCardIssuerFSM::PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandSer
|
|
|
if (ctx->Ans.pbocData.GetLength() == 0)
|
|
|
{
|
|
|
ctx->Ans.icStatus = 0;
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("no need to pboc?");
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
return 0;
|
|
|
}
|
|
@@ -6184,10 +6170,6 @@ int CCardIssuerFSM::PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandSer
|
|
|
if (m_pCardProcess->FindTagValue(TAG_VECTOR_IC, appExpiryDate, false, 0) == -1)
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23E1")("<PreOnlineJS_Contact>, can't find expire date");
|
|
|
- if (m_bSupportRF) {
|
|
|
- delete[] pExpireDate;
|
|
|
- return -1;
|
|
|
- }
|
|
|
}
|
|
|
else {
|
|
|
HexBuf2StrBuf(appExpiryDate.value, &pExpireDate, appExpiryDate.lenth);
|
|
@@ -6337,7 +6319,8 @@ int CCardIssuerFSM::ReadJS(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, Ca
|
|
|
{
|
|
|
//init value, 2 for
|
|
|
ctx->Ans.magStatus = 2;
|
|
|
- ctx->Ans.icMode = 2;
|
|
|
+ ctx->Ans.icStatus = 2;
|
|
|
+ ctx->Ans.icMode = -1;
|
|
|
switch (ctx->Req.mode)
|
|
|
{
|
|
|
case ReadMode_MagOnly:
|
|
@@ -6455,7 +6438,6 @@ int CCardIssuerFSM::InsertJS(SpReqAnsContext<CardIssuerStandService_InsertJS_Req
|
|
|
if (rc == 0) {
|
|
|
FSMSetIssueFlag(0);
|
|
|
m_bCardFromHopper = false;
|
|
|
- //LogWarn(Severity_Low, Error_Succeed, CardIssuer_UserErrorCode_InsertCardSucceed, "InsertJS, insert succeed");
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("InsertJS, insert succeed");
|
|
|
m_bUseRFTillNext = false;
|
|
|
ctx->Answer(Error_Succeed);
|