|
@@ -134,7 +134,6 @@ void CCardIssuerFSM::s2_on_entry()
|
|
|
|
|
|
m_resetTimes = 0;
|
|
|
m_testResult = Error_Succeed;
|
|
|
- m_bIssuingExit = false;
|
|
|
}
|
|
|
|
|
|
void CCardIssuerFSM::s2_on_exit()
|
|
@@ -159,24 +158,12 @@ unsigned int CCardIssuerFSM::s2_on_event(FSMEvent* pEvt)
|
|
|
pEvt->SetHandled();
|
|
|
}
|
|
|
break;
|
|
|
- case USER_EVT_ISSUE:
|
|
|
case USER_EVT_ISSUE_EX:
|
|
|
{
|
|
|
IssueTask* task = new IssueTask(this);
|
|
|
- CardIssueEvent *cie = NULL;
|
|
|
- CardIssueExEvent *ciee = NULL;
|
|
|
- if (pEvt->iEvt == USER_EVT_ISSUE)
|
|
|
- {
|
|
|
- cie = dynamic_cast<CardIssueEvent*>(pEvt);
|
|
|
- task->ctx = cie->ctx;
|
|
|
- task->ctxEx = NULL;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- ciee = dynamic_cast<CardIssueExEvent*>(pEvt);
|
|
|
- task->ctxEx = ciee->ctx;
|
|
|
- task->ctx = NULL;
|
|
|
- }
|
|
|
+ CardIssueExEvent* ciee = NULL;
|
|
|
+ ciee = dynamic_cast<CardIssueExEvent*>(pEvt);
|
|
|
+ task->ctxEx = ciee->ctx;
|
|
|
GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
pEvt->SetHandled();
|
|
|
}
|
|
@@ -693,7 +680,6 @@ unsigned int CCardIssuerFSM::s4_on_event(FSMEvent* pEvt)
|
|
|
CardIssueExEvent *ciee = NULL;
|
|
|
ciee = dynamic_cast<CardIssueExEvent*>(pEvt);
|
|
|
task->ctxEx = ciee->ctx;
|
|
|
- task->ctx = NULL;
|
|
|
GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
pEvt->SetHandled();
|
|
|
return pEvt->param1;
|
|
@@ -1101,10 +1087,6 @@ unsigned int CCardIssuerFSM::s10_on_event(FSMEvent* pEvt)
|
|
|
int ret = 0;
|
|
|
switch(pEvt->iEvt)
|
|
|
{
|
|
|
- case USER_EVT_ISSUE_FINISHED:
|
|
|
- pEvt->SetHandled();
|
|
|
- ret = pEvt->param1;
|
|
|
- break;
|
|
|
case USER_EVT_ISSUE_EX_FINISHED:
|
|
|
pEvt->SetHandled();
|
|
|
ret = pEvt->param1;
|
|
@@ -1112,7 +1094,6 @@ unsigned int CCardIssuerFSM::s10_on_event(FSMEvent* pEvt)
|
|
|
case EVT_MAINPAGE_DISPLAY:
|
|
|
pEvt->SetHandled();
|
|
|
m_captureReason = "4001";
|
|
|
- m_bIssuingExit = true;
|
|
|
m_bMainPageWhileWorking = true;
|
|
|
break;
|
|
|
case USER_EVT_ACCEPT_CANCEL:
|
|
@@ -1316,70 +1297,6 @@ bool CCardIssuerFSM::GetDevStatus(bool bPrint)
|
|
|
} while (getDevInfoCount < GET_DEV_STATUS_COUNT);
|
|
|
return false;
|
|
|
}
|
|
|
-int CCardIssuerFSM::Reset()
|
|
|
-{
|
|
|
- LOG_FUNCTION();
|
|
|
- if (m_hDevHelper == nullptr)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Maybe the m_hDevHelper have been released,switch to s0 to restart.");
|
|
|
- return 2;
|
|
|
- }
|
|
|
- long l_beginTime, l_endTime;
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
- ErrorCodeEnum ec = m_hDevHelper->Reset();
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
- if (ec == Error_Succeed)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::Reset").setCostTime(l_endTime - l_beginTime)("Reset::Reset");
|
|
|
- if(GetDevStatus())
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("m_issueStatus: %d, m_CardCaptured:%d, m_devStatus.eMedia:%d, in Reset.",
|
|
|
- m_issueStatus, m_CardCaptured, m_devStatus.eMedia);
|
|
|
- if (m_devStatus.eMedia == CI_MEDIA_PRESENT || m_devStatus.eMedia == CI_MEDIA_ENTERING)
|
|
|
- {
|
|
|
- ErrorCodeEnum eMoveErr;
|
|
|
- if (m_issueStatus)
|
|
|
- {
|
|
|
- //oiltmp to add 20131212
|
|
|
- eMoveErr = MachineMoveCardBackNotHold();
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_CaptureCard_Reset, "issue flag is 1, to capture card.");
|
|
|
- m_CardCaptured++;
|
|
|
- if (!SetCardCaptured(m_CardCaptured))
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("set card captured failed.");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //oiltmp to add 20131212
|
|
|
- eMoveErr = MachineMoveCardFrontGate();
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_EjectCard_ByTerminal, "issue flag is 0, to eject card.");
|
|
|
- }
|
|
|
- if (eMoveErr == Error_Succeed)
|
|
|
- {
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
- else if (m_devStatus.eMedia == CI_MEDIA_NOTPRESENT) {
|
|
|
- return 0;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("media position %d",m_devStatus.eMedia);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
- else {
|
|
|
- SetErrorAndLog(ec, MEC_DEVAPI_CARDISSUER_Reset, "DevAdapter::Reset", __FUNCTION__, false, l_endTime - l_beginTime, "", "");
|
|
|
- return 1;
|
|
|
- }
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
bool CCardIssuerFSM::LoadCMBPrint(CSimpleStringA csBinPath)
|
|
|
{
|
|
|
if (cmdDecodeEx == NULL) {
|
|
@@ -1730,7 +1647,7 @@ int CCardIssuerFSM::CheckIfHasCardOnCase(CheckCardCase eCase)
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
|
-int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req, CardIssuerStandService_Issue_Ans>::Pointer ctx, SpReqAnsContext<CardIssuerStandService_IssueEx_Req, CardIssuerStandService_IssueEx_Ans>::Pointer ctxEx)
|
|
|
+int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_IssueEx_Req, CardIssuerStandService_IssueEx_Ans>::Pointer ctxEx)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
|
|
@@ -1739,25 +1656,9 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
|
|
|
if (ctxEx != NULL)
|
|
|
{
|
|
|
- //Req.hopper
|
|
|
- //89:从加卡箱移卡读卡
|
|
|
- //88:卡片加到卡槽
|
|
|
- //87:吞卡
|
|
|
- //99:移卡读卡
|
|
|
- //98:手工取卡
|
|
|
- //100:清空卡库、卡库盘库吞到吞卡箱
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("IssueCard, issue type:%d", ctxEx->Req.hopper));
|
|
|
ctxEx->Ans.reserved1.Init(2);
|
|
|
|
|
|
- //oiltmp 卡库独有吗?
|
|
|
- if (ctxEx->Req.hopper == 87)//签发失败,吞卡
|
|
|
- {
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_CaptureCard_SignFailed, "sign failed, to capture card.");
|
|
|
- ToRegistCaptureCardInfo();
|
|
|
- MachineMoveCardBackNotHold();
|
|
|
- ctxEx->Answer(Error_Succeed);
|
|
|
- return 2;
|
|
|
- }
|
|
|
//param Req.hopper is wrong
|
|
|
if (ctxEx->Req.hopper < 1 || ctxEx->Req.hopper > 6){
|
|
|
errMsg = CSimpleStringA::Format("Issuer Card, the hopperNo(%d) is wrong!!!", ctxEx->Req.hopper);
|
|
@@ -1781,15 +1682,6 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR040220320").setResultCode("RTA230D")("未检测到卡箱3,请检测卡箱3是否放好");
|
|
|
ctxEx->Answer(Error_DevMedia, CardIssuer_UserErrorCode_NotHas_Hopper3);
|
|
|
break;
|
|
|
- case 4:
|
|
|
- ctxEx->Answer(Error_DevMedia, CardIssuer_UserErrorCode_NotHas_Hopper4);
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- ctxEx->Answer(Error_DevMedia, CardIssuer_UserErrorCode_NotHas_Hopper5);
|
|
|
- break;
|
|
|
- case 6:
|
|
|
- ctxEx->Answer(Error_DevMedia, CardIssuer_UserErrorCode_NotHas_Hopper6);
|
|
|
- break;
|
|
|
}
|
|
|
return 2;
|
|
|
}
|
|
@@ -1827,10 +1719,7 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR040220320").setResultCode("RTA230R")("卡箱1连续吞卡超限,请及时执行清机");
|
|
|
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, dwTmpErrCode, errMsg.GetData());
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_DevMedia, dwTmpErrCode);
|
|
|
- else
|
|
|
- ctxEx->Answer(Error_DevMedia, dwTmpErrCode);
|
|
|
+ ctxEx->Answer(Error_DevMedia, dwTmpErrCode);
|
|
|
return 2;
|
|
|
}
|
|
|
ErrorCodeEnum errCode;
|
|
@@ -1848,16 +1737,12 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevStatus").setCostTime(l_endTime - l_beginTime)("IssueCard::GetDevStatus");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevStatus").setCostTime(l_endTime - l_beginTime)("%d", cis.eIssuerBin[m_currentHopper - 1]);
|
|
|
if (cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_EMPTY || cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_NOTSUPP)
|
|
|
bEmpty = true;
|
|
|
}
|
|
|
if (bEmpty || m_remainsEx[m_currentHopper - 1] <= 0)
|
|
|
{
|
|
|
- CSimpleStringA warnInfo = CSimpleStringA::Format("IssuerCard, hopper%d no more cards to issue. LocalRecord CardremainsEx:%d, Vendor return:NoCard(%d), CardCount(%d)",
|
|
|
- m_currentHopper, m_remainsEx[m_currentHopper - 1], cis.eIssuerBin[m_currentHopper - 1], cis.dwIssuerCount[m_currentHopper - 1]);
|
|
|
- //LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_No_More_Card_Issue, warnInfo.GetData());
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(warnInfo.GetData());
|
|
|
|
|
|
DWORD dwUsrErrCode = 0;
|
|
|
if (cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_NOTSUPP)
|
|
@@ -1877,12 +1762,6 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR040220320").setResultCode("RTA230D")("未检测到卡箱3,请检测卡箱3是否放好");
|
|
|
dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper3;
|
|
|
}
|
|
|
- else if (m_currentHopper == 4)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper4;
|
|
|
- else if (m_currentHopper == 5)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper5;
|
|
|
- else if (m_currentHopper == 6)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper6;
|
|
|
}
|
|
|
else if (cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_EMPTY)
|
|
|
{
|
|
@@ -1901,12 +1780,6 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR040220320").setResultCode("RTA230G")("卡箱3未检测到卡片,请检测卡箱3中卡片是否放好或卡片余量过低");
|
|
|
dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper3;
|
|
|
}
|
|
|
- else if (m_currentHopper == 4)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper4;
|
|
|
- else if (m_currentHopper == 5)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper5;
|
|
|
- else if (m_currentHopper == 6)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper6;
|
|
|
}
|
|
|
else if (m_remainsEx[m_currentHopper - 1] <= 0)
|
|
|
{
|
|
@@ -1926,10 +1799,7 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
dwUsrErrCode = CardIssuer_UserErrorCode_NoCardRemains_Hopper3;
|
|
|
}
|
|
|
}
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_DevNotAvailable, dwUsrErrCode);
|
|
|
- else
|
|
|
- ctxEx->Answer(Error_DevNotAvailable, dwUsrErrCode);
|
|
|
+ ctxEx->Answer(Error_DevNotAvailable, dwUsrErrCode);
|
|
|
|
|
|
return 2;
|
|
|
}
|
|
@@ -1958,17 +1828,10 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
m_bCardFromHopper = true;
|
|
|
if (errCode != Error_Succeed)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
CSimpleStringA ErrMsg = CSimpleStringA::Format("m_currentHopper:%d", m_currentHopper);
|
|
|
-
|
|
|
- if (ctx != NULL) {
|
|
|
- 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 {
|
|
|
- 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());
|
|
|
- }
|
|
|
+ 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());
|
|
|
return 1;
|
|
|
}
|
|
|
else {
|
|
@@ -1986,17 +1849,8 @@ int CCardIssuerFSM::IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req,
|
|
|
//DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR040220320")("IssueCard success.");
|
|
|
Sleep(1000);
|
|
|
ctxEx->Ans.reserved1[0] = ctxEx->Ans.reserved1[1] = 0;
|
|
|
- //oilyang@20170929 根据讨论结果,去掉调用
|
|
|
|
|
|
- if (m_bIssuingExit)
|
|
|
- {
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_CaptureCard_IssueExit, "Issuing exit, to capture card.");
|
|
|
- CaptureCard(NULL);
|
|
|
- }
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_Succeed);
|
|
|
- else
|
|
|
- ctxEx->Answer(Error_Succeed);
|
|
|
+ ctxEx->Answer(Error_Succeed);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -2268,7 +2122,6 @@ int CCardIssuerFSM::AcceptCard(SpReqAnsContext<CardIssuerStandService_Insert_Req
|
|
|
m_bCardFromHopper = false;
|
|
|
if (ctx != NULL)
|
|
|
{
|
|
|
- //LogWarn(Severity_Low, Error_Succeed, CardIssuer_UserErrorCode_InsertCardSucceed, "AcceptCard, insert succeed");
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("AcceptCard, insert succeed");
|
|
|
m_bUseRFTillNext = false;
|
|
|
ctx->Answer(Error_Succeed);
|
|
@@ -2390,7 +2243,6 @@ int CCardIssuerFSM::ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read
|
|
|
CSimpleString errMsg("");
|
|
|
errMsg = CSimpleString::Format("ReadCard, inParam: reserved1 for lightPos:%d, m_issueStatus:%d, m_currentHopper:%d",
|
|
|
ctx->Req.reserved1, m_issueStatus, m_currentHopper);
|
|
|
- //LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_ReadCard_Process, errMsg.GetData());
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(errMsg.GetData());
|
|
|
DWORD dwStart = GetTickCountRVC();
|
|
|
MagTracks magTracks;
|
|
@@ -2521,12 +2373,7 @@ int CCardIssuerFSM::ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read
|
|
|
}
|
|
|
|
|
|
CSimpleStringA cardInfo(true);
|
|
|
- //if (!ctx->Ans.track2.IsNullOrEmpty() && (pos + 8) < magTracks.track[1].dwSize)
|
|
|
- //{
|
|
|
- // cardInfo = CSimpleStringA::Format("cardServiceCode:%s", (ctx->Ans.track2.SubString(pos + 1, 7)).GetData());
|
|
|
- // LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_Track2_ServiceCode, cardInfo.GetData());
|
|
|
- //}
|
|
|
- cardInfo = CSimpleStringA::Format("cardBin:%s****%s , len:%d", (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4), ctx->Ans.t2Account.GetLength());
|
|
|
+ cardInfo = CSimpleStringA::Format("%s", SP::Module::Util::DataMask(SP::Module::Util::DataMask_CardAccount, ctx->Ans.t2Account).GetData());
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_CardBin, cardInfo.GetData());
|
|
|
|
|
|
break;
|
|
@@ -2645,8 +2492,6 @@ int CCardIssuerFSM::ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- CSimpleStringA cardType = CSimpleStringA::Format("cardType:%d", ctx->Ans.ICType);
|
|
|
- //LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_CardType, cardType.GetData());
|
|
|
|
|
|
DWORD dwEnd = GetTickCountRVC();
|
|
|
DWORD dwCollapse = dwEnd - dwStart;
|
|
@@ -2689,7 +2534,6 @@ int CCardIssuerFSM::ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req,
|
|
|
CSimpleString errMsg("");
|
|
|
errMsg = CSimpleString::Format("ReadCard, inParam: reserved1 for lightPos:%d, m_issueStatus:%d, m_currentHopper:%d",
|
|
|
ctx->Req.reserved1, m_issueStatus, m_currentHopper);
|
|
|
- //LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_ReadCard_Process, errMsg.GetData());
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(errMsg.GetData());
|
|
|
DWORD dwStart = GetTickCountRVC();
|
|
|
MagTracks magTracks;
|
|
@@ -2812,12 +2656,7 @@ int CCardIssuerFSM::ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req,
|
|
|
}
|
|
|
|
|
|
CSimpleStringA cardInfo(true);
|
|
|
- //if (!ctx->Ans.track2.IsNullOrEmpty() && (pos + 8) < magTracks.track[1].dwSize)
|
|
|
- //{
|
|
|
- // cardInfo = CSimpleStringA::Format("cardServiceCode:%s", (ctx->Ans.track2.SubString(pos + 1, 7)).GetData());
|
|
|
- // LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_Track2_ServiceCode, cardInfo.GetData());
|
|
|
- //}
|
|
|
- cardInfo = CSimpleStringA::Format("cardBin:%s****%s , len:%d", (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4), ctx->Ans.t2Account.GetLength());
|
|
|
+ cardInfo = CSimpleStringA::Format("%s", SP::Module::Util::DataMask(SP::Module::Util::DataMask_CardAccount, ctx->Ans.t2Account).GetData());
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_CardBin, cardInfo.GetData());
|
|
|
|
|
|
break;
|
|
@@ -2905,8 +2744,6 @@ int CCardIssuerFSM::ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- CSimpleStringA cardType = CSimpleStringA::Format("cardType:%d", ctx->Ans.ICType);
|
|
|
- //LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_CardType, cardType.GetData());
|
|
|
|
|
|
DWORD dwEnd = GetTickCountRVC();
|
|
|
DWORD dwCollapse = dwEnd - dwStart;
|
|
@@ -3868,15 +3705,6 @@ bool CCardIssuerFSM::SetCardRemains(const int num, const int hopper,bool bInit)
|
|
|
case 3:
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_NoCardRemains_Hopper3, "Hopper 3 No card remains.");
|
|
|
break;
|
|
|
- case 4:
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_NoCardRemains_Hopper4, "Hopper 4 No card remains.");
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_NoCardRemains_Hopper5, "Hopper 5 No card remains.");
|
|
|
- break;
|
|
|
- case 6:
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_NoCardRemains_Hopper6, "Hopper 6 No card remains.");
|
|
|
- break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -5321,7 +5149,7 @@ int CCardIssuerFSM::EjectJS(SpReqAnsContext<CardIssuerStandService_EjectJS_Req,
|
|
|
int CCardIssuerFSM::CaptureJS(SpReqAnsContext<CardIssuerStandService_CaptureJS_Req, CardIssuerStandService_CaptureJS_Ans>::Pointer ctx)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("吞卡开始");
|
|
|
+ DWORD dwTmpUserErrCode = 0;
|
|
|
long l_beginTime, l_endTime;
|
|
|
int ret = 0;
|
|
|
if (ctx != NULL) {
|
|
@@ -5356,10 +5184,9 @@ int CCardIssuerFSM::CaptureJS(SpReqAnsContext<CardIssuerStandService_CaptureJS_R
|
|
|
else {
|
|
|
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 = "";
|
|
|
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());
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR040220343").setResultCode("RTA23CS")
|
|
|
+ ("CaptureJS::GetDevStatus succ, No card found in cardReader");
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_Capture_NoCard_Failed, "Capture card, No card found in cardReader");
|
|
|
ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_Capture_NoCard_Failed);//读卡器无卡
|
|
|
}
|
|
@@ -5370,10 +5197,11 @@ int CCardIssuerFSM::CaptureJS(SpReqAnsContext<CardIssuerStandService_CaptureJS_R
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
- SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220343", "");
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220343", "");
|
|
|
+ ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
- DWORD dwTmpUserErrCode = 0;
|
|
|
l_beginTime = GetTickCountRVC();
|
|
|
eErr = m_hDevHelper->MoveCard(CI_MOVECARD_BACK_NOT_HOLD);
|
|
|
l_endTime = GetTickCountRVC();
|
|
@@ -5397,13 +5225,7 @@ int CCardIssuerFSM::CaptureJS(SpReqAnsContext<CardIssuerStandService_CaptureJS_R
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CaptureJS::MoveCard(CI_MOVECARD_BACK_NOT_HOLD) err");
|
|
|
- if (ctx != NULL && IsInBusiness()) {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_BACK_NOT_HOLD, "DevAdapter::MoveCard", __FUNCTION__, true, l_endTime - l_beginTime, "QLR040220343", "CaptureJS::MoveCard(CI_MOVECARD_BACK_NOT_HOLD) err");
|
|
|
- }
|
|
|
- else {
|
|
|
- dwTmpUserErrCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_BACK_NOT_HOLD, "DevAdapter::MoveCard", __FUNCTION__, false, l_endTime - l_beginTime, "QLR040220343", "");
|
|
|
- }
|
|
|
+ dwTmpUserErrCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_BACK_NOT_HOLD, "DevAdapter::MoveCard", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220343");
|
|
|
ret = 1;
|
|
|
}
|
|
|
//业务返回
|
|
@@ -5486,7 +5308,7 @@ int CCardIssuerFSM::IssueFromBoxJS(SpReqAnsContext<CardIssuerStandService_IssueF
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevStatus").setCostTime(l_endTime - l_beginTime)("IssueFromBoxJS::GetDevStatus");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevStatus").setCostTime(l_endTime - l_beginTime)("%d", cis.eIssuerBin[m_currentHopper - 1]);
|
|
|
if (cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_EMPTY || cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_NOTSUPP) {
|
|
|
bEmpty = true;
|
|
|
}
|
|
@@ -5494,10 +5316,6 @@ int CCardIssuerFSM::IssueFromBoxJS(SpReqAnsContext<CardIssuerStandService_IssueF
|
|
|
|
|
|
if (bEmpty)
|
|
|
{
|
|
|
- //卡箱无卡时返回错误信息
|
|
|
- CSimpleStringA warnInfo = CSimpleStringA::Format("IssuerCard, hopper%d no more cards to issue. Vendor return:NoCard(%d), CardCount(%d)",
|
|
|
- cis.eIssuerBin[m_currentHopper - 1], cis.dwIssuerCount[m_currentHopper - 1]);
|
|
|
- LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_No_More_Card_Issue, warnInfo.GetData());
|
|
|
|
|
|
DWORD dwUsrErrCode = 0;
|
|
|
if (cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_NOTSUPP)
|
|
@@ -5517,12 +5335,6 @@ int CCardIssuerFSM::IssueFromBoxJS(SpReqAnsContext<CardIssuerStandService_IssueF
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR040220345").setResultCode("RTA230D")("未检测到卡箱3,请检测卡箱3是否放好");
|
|
|
dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper3;
|
|
|
}
|
|
|
- else if (m_currentHopper == 4)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper4;
|
|
|
- else if (m_currentHopper == 5)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper5;
|
|
|
- else if (m_currentHopper == 6)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NotHas_Hopper6;
|
|
|
}
|
|
|
else if (cis.eIssuerBin[m_currentHopper - 1] == CI_ISSUEHOPPER_EMPTY)
|
|
|
{
|
|
@@ -5541,12 +5353,6 @@ int CCardIssuerFSM::IssueFromBoxJS(SpReqAnsContext<CardIssuerStandService_IssueF
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR040220345").setResultCode("RTA230G")("卡箱3未检测到卡片,请检测卡箱3中卡片是否放好或卡片余量过低");
|
|
|
dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper3;
|
|
|
}
|
|
|
- else if (m_currentHopper == 4)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper4;
|
|
|
- else if (m_currentHopper == 5)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper5;
|
|
|
- else if (m_currentHopper == 6)
|
|
|
- dwUsrErrCode = CardIssuer_UserErrorCode_NoCardInHopper6;
|
|
|
}
|
|
|
ctx->Answer(Error_DevNotAvailable, dwUsrErrCode);
|
|
|
return 1;
|
|
@@ -5584,7 +5390,6 @@ int CCardIssuerFSM::IssueFromBoxJS(SpReqAnsContext<CardIssuerStandService_IssueF
|
|
|
else {
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::MoveCard").setCostTime(l_endTime - l_beginTime).setLogCode("QLR040220345")("IssueCard::MoveCard succ, m_currentHopper:%d", m_currentHopper);
|
|
|
}
|
|
|
- //LogWarn(Severity_Low, Error_Succeed, CardIssuer_UserErrorCode_MoveCard_FromHopper, "MoveCard from hopper succ.");
|
|
|
|
|
|
m_bUseRFTillNext = false;
|
|
|
Sleep(1000);
|
|
@@ -6135,6 +5940,8 @@ int CCardIssuerFSM::PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService
|
|
|
}
|
|
|
ctx->Ans.pbocData = taaResult;
|
|
|
ctx->Ans.icMode = 1;
|
|
|
+ LogWarn(Severity_Low, Error_Succeed, CardIssuer_UserErrorCode_ReadByRF, CSimpleStringA::Format("PreOnline_RF ok.iIssue:%d ", m_issueStatus));
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
int CCardIssuerFSM::PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx)
|
|
@@ -6163,7 +5970,7 @@ int CCardIssuerFSM::PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandSer
|
|
|
|
|
|
ICData track2(false, 0x57, 0x00), ICCardSerial(false, 0x5f, 0x34), appExpiryDate(false, 0x5f, 0x24), icPAN(false, 0x5a, 0x00);
|
|
|
ErrorCodeEnum eErr = Error_Unexpect;
|
|
|
- CSimpleStringA t2ICTrack2(""), cardType("0"), csExpireDate("");
|
|
|
+ CSimpleStringA t2ICTrack2(""), cardType("0"), csExpireDate(""), csICCardSerial("");
|
|
|
|
|
|
char* pExpireDate = new char[12];//获取ic有效期
|
|
|
ZeroMemory(pExpireDate, 12);
|
|
@@ -6186,9 +5993,8 @@ int CCardIssuerFSM::PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandSer
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- //oiltmp@20250808 TODO:add ic tag-value to ic data list
|
|
|
- //HexBuf2StrBuf(ICCardSerial.value, &pICCardSerial, ICCardSerial.lenth);
|
|
|
- //t2ICCardSerial = pICCardSerial;
|
|
|
+ HexBuf2StrBuf(ICCardSerial.value, &pICCardSerial, ICCardSerial.lenth);
|
|
|
+ csICCardSerial = pICCardSerial;
|
|
|
}
|
|
|
delete[] pICCardSerial;
|
|
|
|
|
@@ -6282,6 +6088,7 @@ int CCardIssuerFSM::PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandSer
|
|
|
msgInfo["ARQC_DATA"] = arqcData.GetData();
|
|
|
msgInfo["IC_TRACK2"] = t2ICTrack2;
|
|
|
msgInfo["EXPIRE_DATE"] = csExpireDate;
|
|
|
+ msgInfo["ICCardSerial"] = csICCardSerial;
|
|
|
msgInfo["IC_TAGS"] = baseICData.c_str();
|
|
|
|
|
|
std::pair<bool, std::string> strResult;
|
|
@@ -6412,25 +6219,6 @@ int CCardIssuerFSM::InsertJS(SpReqAnsContext<CardIssuerStandService_InsertJS_Req
|
|
|
m_pCardProcess->DataInit();//??是否需要此处就初始化
|
|
|
//m_bCancelByRFIC = false;//??无用变量
|
|
|
LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_ON, "CardReader warning on");
|
|
|
- m_bWaitAccepteMore = false;//是否还继续使用
|
|
|
- //查询插卡前卡机是否有卡
|
|
|
- long l_beginTime, l_endTime;
|
|
|
- ErrorCodeEnum eErr = Error_Unexpect;
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
- eErr = m_hDevHelper->GetDevStatus(m_devStatus);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
- if (Error_Succeed == eErr) {
|
|
|
- if (m_devStatus.eMedia == CI_MEDIA_PRESENT) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("InsertJS::InternalInsert,internal has card before insert");
|
|
|
- ctx->Answer(Error_Unexpect, CardIssuer_UserErrorCode_Insert_Card_HasCard_Failed);
|
|
|
- return 5;
|
|
|
- }
|
|
|
- }
|
|
|
- else {
|
|
|
- DWORD dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, false, 10, "QLR040220303", "");
|
|
|
- return 1;
|
|
|
- ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
|
|
|
- }
|
|
|
//等待插卡
|
|
|
int rc = InternalInsert();
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("InsertJS::InternalInsert, result:%d", rc));
|