Просмотр исходного кода

Z991239-5508 #comment feat: 补齐上电明细处理的硬件埋点日志

Signed-Off-By: commit-hook
刘文涛80174520 1 год назад
Родитель
Сommit
38166830a3
1 измененных файлов с 305 добавлено и 5 удалено
  1. 305 5
      DevAdapter/include/CardAssist.cpp

+ 305 - 5
DevAdapter/include/CardAssist.cpp

@@ -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);