|
@@ -385,29 +385,34 @@ bool CCardProcess::DetectIfICCard(CardReadType eType, DeviceBaseClass *pCardX, i
|
|
|
l_beginTime = GetTickCount();
|
|
|
eErr = pCardI->ContactIC();
|
|
|
l_endTime = GetTickCount();
|
|
|
- DbgInfo("ContactIC", l_beginTime, l_endTime, eErr, "DetectIfICCard::ContactIC");
|
|
|
|
|
|
if(eErr != Error_Succeed){
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("DetectIfICCard::ContactIC failed(%d):%s", eErr, errMsg.GetData());
|
|
|
if (eType == CARD_MACHINE_ISSUER) {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ContactIC").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C7")("DetectIfICCard::ContactIC err=%s", SpStrError(eErr));
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_ContactIC_Failed, errMsg.GetData());
|
|
|
}
|
|
|
else {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ContactIC").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC7")("DetectIfICCard::ContactIC err=%s", SpStrError(eErr));
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuerStore_UserErrorCode_ContactIC_Failed, errMsg.GetData());
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ContactIC").setCostTime(l_endTime - l_beginTime)("DetectIfICCard::ContactIC");
|
|
|
+ }
|
|
|
|
|
|
l_beginTime = GetTickCount();
|
|
|
eErr = pCardI->ActiveICCard();
|
|
|
l_endTime = GetTickCount();
|
|
|
- DbgInfo("ActiveICCard", l_beginTime, l_endTime, eErr, "DetectIfICCard::ActiveICCard");
|
|
|
|
|
|
if (eErr != Error_Succeed)
|
|
|
{
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("DetectIfICCard::ActiveICCard failed(%d):%s", eErr, errMsg.GetData());
|
|
|
if (eType == CARD_MACHINE_ISSUER) {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveICCard").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23CT")("DetectIfICCard::ActiveICCard err=%s", SpStrError(eErr));
|
|
|
+
|
|
|
if (bIssue) {
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuer_UserErrorCode_IssueCard_ActiveICCard_Failed, errMsg.GetData());
|
|
|
}
|
|
@@ -416,6 +421,8 @@ bool CCardProcess::DetectIfICCard(CardReadType eType, DeviceBaseClass *pCardX, i
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveICCard").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WCT")("DetectIfICCard::ActiveICCard err=%s", SpStrError(eErr));
|
|
|
+
|
|
|
if (bIssue) {
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, CardIssuerStore_UserErrorCode_IssueCard_ActiveICCard_Failed, errMsg.GetData());
|
|
|
}
|
|
@@ -427,6 +434,9 @@ bool CCardProcess::DetectIfICCard(CardReadType eType, DeviceBaseClass *pCardX, i
|
|
|
pCardI->ReleaseIC();
|
|
|
return false;
|
|
|
}
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveICCard").setCostTime(l_endTime - l_beginTime)("DetectIfICCard::ActiveICCard");
|
|
|
+ }
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
@@ -435,14 +445,18 @@ bool CCardProcess::DetectIfICCard(CardReadType eType, DeviceBaseClass *pCardX, i
|
|
|
l_beginTime = GetTickCount();
|
|
|
eErr = pCardR->ActiveContactlessICCard('A','B','M',ch);
|
|
|
l_endTime = GetTickCount();
|
|
|
- DbgInfo("ActiveContactlessICCard", l_beginTime, l_endTime, eErr, "DetectIfICCard::ActiveContactlessICCard");
|
|
|
+
|
|
|
if (eErr != Error_Succeed)
|
|
|
{
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveContactlessICCard").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J01")("DetectIfICCard::ActiveContactlessICCard err=%s", SpStrError(eErr));
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("DetectIfICCard::ActiveContactlessICCard failed(%d):%s", eErr, errMsg.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, ContactlessCard_UserErrorCode_ActiveContactlessICCard_Failed, errMsg.GetData());
|
|
|
return false;
|
|
|
}
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveContactlessICCard").setCostTime(l_endTime - l_beginTime)("DetectIfICCard::ActiveContactlessICCard");
|
|
|
+ }
|
|
|
cardType = ch;
|
|
|
DbgInfo(CSimpleStringA::Format("Detect contactless card type %d",ch));
|
|
|
}
|
|
@@ -453,14 +467,23 @@ bool CCardProcess::DetectIfICCard(CardReadType eType, DeviceBaseClass *pCardX, i
|
|
|
l_beginTime = GetTickCount();
|
|
|
eErr = pCardI->ActiveContactlessICCard('A', 'B', 'M', ch);
|
|
|
l_endTime = GetTickCount();
|
|
|
- DbgInfo("ActiveContactlessICCard", l_beginTime, l_endTime, eErr, "(CardIssuer)DetectIfICCard::ActiveContactlessICCard");
|
|
|
+
|
|
|
if (eErr != Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER_RF) {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveContactlessICCard").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C6")("DetectIfICCard::ActiveContactlessICCard err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveContactlessICCard").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC6")("DetectIfICCard::ActiveContactlessICCard err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("(CardIssuer)DetectIfICCard::ActiveContactlessICCard failed(%d):%s", eErr, errMsg.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, ContactlessCard_UserErrorCode_ActiveContactlessICCard_Failed, errMsg.GetData());
|
|
|
return false;
|
|
|
}
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ActiveContactlessICCard").setCostTime(l_endTime - l_beginTime)("DetectIfICCard::ActiveContactlessICCard");
|
|
|
+ }
|
|
|
cardType = ch;
|
|
|
DbgInfo(CSimpleStringA::Format("(CardIssuer)Detect contactless card type %d", ch));
|
|
|
}
|
|
@@ -469,6 +492,7 @@ bool CCardProcess::DetectIfICCard(CardReadType eType, DeviceBaseClass *pCardX, i
|
|
|
ErrorCodeEnum CCardProcess::BuildSupportedAppList(CardReadType eType,DeviceBaseClass *pCardX,vector<AIDData>& vAIDFromTerm)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ long l_beginTime, l_endTime;
|
|
|
//MessageBoxA(0,0,0,0);
|
|
|
//首先用PSE选择应用
|
|
|
BYTE zz = 0x00;
|
|
@@ -518,29 +542,35 @@ ErrorCodeEnum CCardProcess::BuildSupportedAppList(CardReadType eType,DeviceBaseC
|
|
|
ErrorCodeEnum eErr = Error_Unexpect;
|
|
|
DWORD errICCommand = 0;
|
|
|
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = CardIssuer_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->ICCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = CardIssuerStore_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
+
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
pCardR = dynamic_cast<RFICClass*>(pCardX);
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
|
|
|
memset(TtestIC,0,1024);
|
|
@@ -552,6 +582,14 @@ ErrorCodeEnum CCardProcess::BuildSupportedAppList(CardReadType eType,DeviceBaseC
|
|
|
TtestIC[showLen++] = (char)eErr;
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("BuildSupportedAppList::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("BuildSupportedAppList::RFTypeABCommand");
|
|
|
+ }
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
TtestIC[showLen++] = 'b';
|
|
@@ -593,28 +631,41 @@ ErrorCodeEnum CCardProcess::BuildSupportedAppList(CardReadType eType,DeviceBaseC
|
|
|
memset(cmdSend.data,0,MAX_IC_BUFFER_SIZE);
|
|
|
memcpy(cmdSend.data,m_APDUsendBuf,m_lenAPDU);
|
|
|
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER)
|
|
|
{
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = CardIssuer_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
eErr = pCardI->ICCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = CardIssuerStore_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("BuildSupportedAppList::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("BuildSupportedAppList::RFTypeABCommand");
|
|
|
+ }
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
HexBuf2StrBuf(recvBuf,&show,lenRecv);
|
|
@@ -669,6 +720,26 @@ ErrorCodeEnum CCardProcess::BuildSupportedAppList(CardReadType eType,DeviceBaseC
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("BuildSupportedAppList::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("BuildSupportedAppList::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("BuildSupportedAppList::ICCommand 2 failed(%d):%s", eErr, errMsg.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, errICCommand, errMsg.GetData());
|
|
@@ -720,6 +791,27 @@ ErrorCodeEnum CCardProcess::BuildSupportedAppList(CardReadType eType,DeviceBaseC
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("BuildSupportedAppList::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("BuildSupportedAppList::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if(eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("BuildSupportedAppList::ICCommand failed(%d):%s", eErr, errMsg.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, errICCommand, errMsg.GetData());
|
|
@@ -733,6 +825,7 @@ ErrorCodeEnum CCardProcess::BuildSupportedAppList(CardReadType eType,DeviceBaseC
|
|
|
ErrorCodeEnum CCardProcess::BuildAppListByAIDs(CardReadType eType,DeviceBaseClass *pCardX,vector<AIDData>& vAIDFromTerm)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ long l_beginTime, l_endTime;
|
|
|
BYTE zz = 0x00;
|
|
|
BYTE cls = 0x00;
|
|
|
BYTE ins = 0xa4;
|
|
@@ -772,21 +865,34 @@ Step7:
|
|
|
memset(cmdSend.data,0,MAX_IC_BUFFER_SIZE);
|
|
|
memcpy(cmdSend.data,m_APDUsendBuf,m_lenAPDU);
|
|
|
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
|
|
|
if (eErr == 0)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("BuildAppListByAIDs::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("BuildAppListByAIDs::RFTypeABCommand");
|
|
|
+ }
|
|
|
+
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
DbgInfo(CSimpleStringA::Format("<BuildAppListByAIDs>, recv:%d,%x%x",lenRecv,recvBuf[lenRecv-2],recvBuf[lenRecv-1]));
|
|
@@ -879,6 +985,26 @@ Step7:
|
|
|
else
|
|
|
continue;
|
|
|
}else{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("BuildAppListByAIDs::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("BuildAppListByAIDs::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("BuildAppListByAIDs::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("BuildAppListByAIDs::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("BuildAppListByAIDs::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
CSimpleStringA errMsg("");
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
DbgWarn(CSimpleStringA::Format("<BuildAppListByAIDs>, ICCommand failed with errCode:%d(0x%x), errMsg:%s", eErr, eErr, errMsg.GetData()));
|
|
@@ -890,6 +1016,7 @@ Step7:
|
|
|
ErrorCodeEnum CCardProcess::AppSelected(CardReadType eType,DeviceBaseClass *pCardX,LPBYTE aid,BYTE lenAID)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ long l_beginTime, l_endTime;
|
|
|
char* show = new char[MAX_TEST_SHOW];
|
|
|
ZeroMemory(show,MAX_TEST_SHOW);
|
|
|
HexBuf2StrBuf(aid,&show,lenAID);
|
|
@@ -914,33 +1041,46 @@ ErrorCodeEnum CCardProcess::AppSelected(CardReadType eType,DeviceBaseClass *pCar
|
|
|
CSimpleStringA errMsg(true);
|
|
|
DWORD errICCommand = 0;
|
|
|
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = CardIssuer_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->ICCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = CardIssuerStore_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
pCardR = dynamic_cast<RFICClass*>(pCardX);
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("AppSelected::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("AppSelected::RFTypeABCommand");
|
|
|
+ }
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
ZeroMemory(show,MAX_TEST_SHOW);
|
|
@@ -970,33 +1110,47 @@ ErrorCodeEnum CCardProcess::AppSelected(CardReadType eType,DeviceBaseClass *pCar
|
|
|
cmdSend.dwSize = m_lenAPDU;
|
|
|
memset(cmdSend.data,0,MAX_IC_BUFFER_SIZE);
|
|
|
memcpy(cmdSend.data,m_APDUsendBuf,m_lenAPDU);
|
|
|
+
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = CardIssuer_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->ICCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = CardIssuerStore_UserErrorCode_ICCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
pCardR = dynamic_cast<RFICClass*>(pCardX);
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
errICCommand = ContactlessCard_UserErrorCode_RFTypeABCommand_Failed;
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("AppSelected::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("AppSelected::RFTypeABCommand");
|
|
|
+ }
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
ZeroMemory(show,MAX_TEST_SHOW);
|
|
@@ -1027,6 +1181,28 @@ ErrorCodeEnum CCardProcess::AppSelected(CardReadType eType,DeviceBaseClass *pCar
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
+
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("AppSelected::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("AppSelected::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("AppSelected::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("AppSelected::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("AppSelected::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("AppSelected::ICCommand 2 failed(%d):%s", eErr, errMsg.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, errICCommand, errMsg.GetData());
|
|
@@ -1060,6 +1236,26 @@ ErrorCodeEnum CCardProcess::AppSelected(CardReadType eType,DeviceBaseClass *pCar
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("BuildSupportedAppList::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("BuildSupportedAppList::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("BuildSupportedAppList::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
errMsg = CSimpleStringA::Format("AppSelected::ICCommand failed(%d):%s", eErr, errMsg.GetData());
|
|
|
LogWarn(Severity_Middle, Error_Unexpect, errICCommand, errMsg.GetData());
|
|
@@ -1069,6 +1265,7 @@ ErrorCodeEnum CCardProcess::AppSelected(CardReadType eType,DeviceBaseClass *pCar
|
|
|
}
|
|
|
ErrorCodeEnum CCardProcess::ReadData(CardReadType eType,DeviceBaseClass *pCardX,LPBYTE data,DWORD len)
|
|
|
{
|
|
|
+ long l_beginTime, l_endTime;
|
|
|
int lenRecv;
|
|
|
LPBYTE recvBuf = new BYTE[1024];
|
|
|
char* show = new char[MAX_TEST_SHOW];
|
|
@@ -1103,20 +1300,33 @@ ErrorCodeEnum CCardProcess::ReadData(CardReadType eType,DeviceBaseClass *pCardX,
|
|
|
ZeroMemory(cmdSend.data,sizeof(cmdSend.data));
|
|
|
ZeroMemory(cmdRecv.data,sizeof(cmdRecv.data));
|
|
|
memcpy(cmdSend.data,m_APDUsendBuf,m_lenAPDU);
|
|
|
+
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("ReadData::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("ReadData::RFTypeABCommand");
|
|
|
+ }
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
HexBuf2StrBuf(recvBuf,&show,lenRecv);
|
|
@@ -1126,6 +1336,26 @@ ErrorCodeEnum CCardProcess::ReadData(CardReadType eType,DeviceBaseClass *pCardX,
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("ReadData::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("ReadData::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("ReadData::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("ReadData::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("ReadData::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
CSimpleStringA errMsg("");
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
DbgWarn(CSimpleStringA::Format("<ReadData>, ICCommand failed with errCode:%d(0x%x), errMsg:%s", eErr, eErr, errMsg.GetData()));
|
|
@@ -1179,6 +1409,7 @@ void CCardProcess::ProcessADFRecord(vector<ICData>& record,int start)
|
|
|
}
|
|
|
void CCardProcess::ProcessDDFRecord(CardReadType eType,DeviceBaseClass *pCardX,vector<AIDData>& vAIDFromTerm,LPBYTE pDDF,int length)
|
|
|
{
|
|
|
+ long l_beginTime, l_endTime;
|
|
|
BYTE zz = 0x00;
|
|
|
BYTE cls = 0x00;
|
|
|
BYTE ins = 0xa4;
|
|
@@ -1203,24 +1434,36 @@ void CCardProcess::ProcessDDFRecord(CardReadType eType,DeviceBaseClass *pCardX,v
|
|
|
memcpy(cmdSend.data,m_APDUsendBuf,m_lenAPDU);
|
|
|
|
|
|
ErrorCodeEnum eErr;
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
pCardI = dynamic_cast<CardIssuerClass*>(pCardX);
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
pCardR = dynamic_cast<RFICClass*>(pCardX);
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("ProcessDDFRecord::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("ProcessDDFRecord::RFTypeABCommand");
|
|
|
+ }
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
if (recvBuf[lenRecv-2] == 0x90 && recvBuf[lenRecv-1] == 0x00)
|
|
@@ -1244,20 +1487,32 @@ void CCardProcess::ProcessDDFRecord(CardReadType eType,DeviceBaseClass *pCardX,v
|
|
|
memset(cmdSend.data,0,MAX_IC_BUFFER_SIZE);
|
|
|
memcpy(cmdSend.data,m_APDUsendBuf,m_lenAPDU);
|
|
|
|
|
|
+ l_beginTime = GetTickCount();
|
|
|
if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
{
|
|
|
eErr = pCardI->ICCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
{
|
|
|
eErr = pCardI->RFTypeABCommand(cmdSend, cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
else if (eType == CARD_MACHINE_RFIC)
|
|
|
{
|
|
|
eErr = pCardR->RFTypeABCommand(cmdSend,cmdRecv);
|
|
|
+ l_endTime = GetTickCount();
|
|
|
}
|
|
|
if (eErr == Error_Succeed)
|
|
|
{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER || eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime)("ProcessDDFRecord::ICCommand");
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF || eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime)("ProcessDDFRecord::RFTypeABCommand");
|
|
|
+ }
|
|
|
memcpy(recvBuf,cmdRecv.data,cmdRecv.dwSize);
|
|
|
lenRecv = cmdRecv.dwSize;
|
|
|
HexBuf2StrBuf(recvBuf,&show,lenRecv);
|
|
@@ -1295,6 +1550,26 @@ void CCardProcess::ProcessDDFRecord(CardReadType eType,DeviceBaseClass *pCardX,v
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("ProcessDDFRecord::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("ProcessDDFRecord::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("ProcessDDFRecord::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("ProcessDDFRecord::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("ProcessDDFRecord::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
CSimpleStringA errMsg("");
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
DbgWarn(CSimpleStringA::Format("<ProcessADFRecord>, ICCommand 2 failed with errCode:%d(0x%x), errMsg:%s", eErr, eErr, errMsg.GetData()));
|
|
@@ -1304,6 +1579,28 @@ void CCardProcess::ProcessDDFRecord(CardReadType eType,DeviceBaseClass *pCardX,v
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
+
|
|
|
+ if (eType == CARD_MACHINE_ISSUER)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2302")("ProcessDDFRecord::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::ICCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2W02")("ProcessDDFRecord::ICCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA23C9")("ProcessDDFRecord::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_ISSUER_STORE_RF)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2WC9")("ProcessDDFRecord::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+ else if (eType == CARD_MACHINE_RFIC)
|
|
|
+ {
|
|
|
+ //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::RFTypeABCommand").setCostTime(l_endTime - l_beginTime).setResultCode("RTA2J02")("ProcessDDFRecord::RFTypeABCommand err=%s", SpStrError(eErr));
|
|
|
+ }
|
|
|
+
|
|
|
CSimpleStringA errMsg("");
|
|
|
QueryLastErr(eType, errMsg);
|
|
|
DbgWarn(CSimpleStringA::Format("<ProcessADFRecord>, ICCommand failed with errCode:%d(0x%x), errMsg:%s", eErr, eErr, errMsg.GetData()));
|
|
@@ -2357,6 +2654,7 @@ int CCardProcess::DetectAndReadICData(CardReadType eType, DeviceBaseClass *pCard
|
|
|
return -1;
|
|
|
}
|
|
|
int bGetICData = -3;
|
|
|
+
|
|
|
bGetICData = GetICDataFromCard(eType,pCardX,pAIDs);
|
|
|
|
|
|
if (bGetICData != 0)
|
|
@@ -2365,6 +2663,7 @@ int CCardProcess::DetectAndReadICData(CardReadType eType, DeviceBaseClass *pCard
|
|
|
DbgWarn(errMsg.GetData());
|
|
|
return bGetICData;
|
|
|
}
|
|
|
+
|
|
|
GetBaseInfoNotInRecord(eType,pCardX);
|
|
|
|
|
|
return 0;
|
|
@@ -2384,7 +2683,8 @@ int CCardProcess::GetICDataFromCard(CardReadType eType,DeviceBaseClass *pCardX,
|
|
|
aidData.len = aidLen;
|
|
|
char* aidTest = new char[128];
|
|
|
int aidStrLen = HexBuf2StrBuf(aidData.aid,&aidTest,5);
|
|
|
- DbgInfo(CSimpleStringA::Format("<GetICDataFromCard>, aid[%s][%s]",pAIDs[index].GetData(),aidTest));
|
|
|
+ //DbgInfo(CSimpleStringA::Format("<GetICDataFromCard>, aid[%s][%s]",pAIDs[index].GetData(),aidTest));
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<GetICDataFromCard>, aid[%s][%s]", pAIDs[index].GetData(), aidTest);
|
|
|
vector<AIDData> vAIDs;
|
|
|
vAIDs.push_back(aidData);
|
|
|
|