Jelajahi Sumber

Merge branch 'compile_upgrade_base230' into ST2

80374374 1 tahun lalu
induk
melakukan
6666b6d875

+ 112 - 101
DevAdapter/simulator/cardissuer.1.1/cardissuer_impl.cpp

@@ -30,7 +30,7 @@
 
 #define MAX_SHOW 1024
 #define MAX_TRACK_SIZE 512
-#define ENTITY_NAME "CardIssuerStand"
+#define ENTITY_NAME "CardIssuer"
 
 
 #ifdef RVC_OS_WIN
@@ -110,17 +110,17 @@ ErrorCodeEnum CardIssuerImpl::GetDevCategory(DevCategoryInfo& devCategory)
 	strcpy(devCategory.szType, "szType");
 	strcpy(devCategory.szVendor, "szVendor=cmbszSimulator");
 	return Error_Succeed;
-    return Error_Succeed;
+	return Error_Succeed;
 }
 
 ErrorCodeEnum CardIssuerImpl::Reset()
 {
-    return Error_Succeed;
+	return Error_Succeed;
 }
 
 ErrorCodeEnum CardIssuerImpl::DevClose()
 {
-    return Error_Succeed;
+	return Error_Succeed;
 }
 
 ErrorCodeEnum CardIssuerImpl::GetLastErr(DevErrorInfo& devErrInfo)
@@ -155,7 +155,7 @@ ErrorCodeEnum CardIssuerImpl::GetDeviceSN(char*& pDevSN)
 
 ErrorCodeEnum CardIssuerImpl::MoveCard(CardPosEnum eCardPos, int hopperNo)
 {
-	if (MoveCardHttp(eCardPos,hopperNo)) {
+	if (MoveCardHttp(eCardPos, hopperNo)) {
 		return Error_Succeed;
 	}
 	else {
@@ -392,7 +392,7 @@ ErrorCodeEnum CardIssuerImpl::GetSlotSum(int& sum)
 
 ErrorCodeEnum CardIssuerImpl::QuerySlotsStatus(SlotStatus& slots, const int slot, bool bFull /*= false*/)
 {
-	if (QuerySlotsStatusHttp(slots,slot,bFull)) {
+	if (QuerySlotsStatusHttp(slots, slot, bFull)) {
 		return Error_Succeed;
 	}
 	else {
@@ -456,7 +456,7 @@ bool CardIssuerImpl::GetDevStatusHttp(CardIssuerStatus& devStatus)
 					devStatus.dwRetainCount = dwRetainCountRet;
 
 					for (int i = 0; i < 12; i++) {
-						int eIssuerBinRet =  rootRet["data"]["eIssuerBin"][i].asInt();
+						int eIssuerBinRet = rootRet["data"]["eIssuerBin"][i].asInt();
 						devStatus.eIssuerBin[i] = (IssHopperStatusEnum)eIssuerBinRet;
 					}
 					for (int i = 0; i < 12; i++) {
@@ -553,16 +553,16 @@ bool CardIssuerImpl::GetDeviceSNHttp(char*& pDevSN)
 	}
 }
 
-bool CardIssuerImpl::MoveCardHttp(CardPosEnum eCardPos, int hopperNo )
+bool CardIssuerImpl::MoveCardHttp(CardPosEnum eCardPos, int hopperNo)
 {
 
-	LOG4VTM(INFO, "MoveCardHttp eCardPos=" << eCardPos <<" hopperNo=" << hopperNo);
+	LOG4VTM(INFO, "MoveCardHttp eCardPos=" << eCardPos << " hopperNo=" << hopperNo);
 	return commonSimpleHttp("MoveCard");
 }
 
 bool CardIssuerImpl::SetCardInTypeHttp(CardInEnum eCardIn)
 {
-	LOG4VTM(INFO, "SetCardInTypeHttp eCardIn=" << eCardIn );
+	LOG4VTM(INFO, "SetCardInTypeHttp eCardIn=" << eCardIn);
 	return commonSimpleHttp("SetCardInType");
 }
 
@@ -600,29 +600,30 @@ bool CardIssuerImpl::MagReadHttp(MagTracks& magTracks)
 			if (rootRet.isMember("data")) {
 				bool isResult = rootRet["data"]["result"].asBool();
 				if (isResult) {
-					int trackRangeRet = rootRet["data"]["TrackRange"].asInt();
-					magTracks.eRange = (TrackRange)trackRangeRet;
+					int eRangeRet = rootRet["data"]["eRange"].asInt();
+					magTracks.eRange = (TrackRange)eRangeRet;
 					LOG4VTM(INFO, "MagReadHttp magTracks.eRange=" << magTracks.eRange);
 					for (int i = 0; i < 3; i++) {
-						int  TrackSrcEnumRet = rootRet["data"]["TrackInfo"][i]["TrackSrcEnum"].asInt();
-						magTracks.track[i].eSource = (TrackSrcEnum)TrackSrcEnumRet;
+						int  eSourceRet = rootRet["data"]["track"][i]["eSource"].asInt();
+						magTracks.track[i].eSource = (TrackSrcEnum)eSourceRet;
 
-						int  TrackDataStateEnumRet = rootRet["data"]["TrackInfo"][i]["TrackDataStateEnum"].asInt();
-						magTracks.track[i].eStatus = (TrackDataStateEnum)TrackDataStateEnumRet;
+						int  eStatusRet = rootRet["data"]["track"][i]["eStatus"].asInt();
+						magTracks.track[i].eStatus = (TrackDataStateEnum)eStatusRet;
 
-						int  dwSizeRet = rootRet["data"]["TrackInfo"][i]["dwSize"].asInt();
+						int  dwSizeRet = rootRet["data"]["track"][i]["dwSize"].asInt();
 						magTracks.track[i].dwSize = dwSizeRet;
 
-						string  dataRet = rootRet["data"]["TrackInfo"][i]["data"].asString();
-						PBYTE pData = new BYTE[MAX_SHOW];
-						ZeroMemory(pData, MAX_SHOW);
-						int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
-						memcpy(magTracks.track[i].data, pData, dataLen);//赋值
-						delete[] pData;
+						string  dataRet = rootRet["data"]["track"][i]["data"].asString();
+						//PBYTE pData = new BYTE[MAX_SHOW];
+						//ZeroMemory(pData, MAX_SHOW);
+						//int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
+						//memcpy(magTracks.track[i].data, pData, dataLen);//赋值
+						//delete[] pData;
+						memcpy(magTracks.track[i].data, dataRet.c_str(), dwSizeRet);//赋值
 						LOG4VTM(INFO, "MagReadHttp magTracks.track.eSource=" << magTracks.track[i].eSource);
 						LOG4VTM(INFO, "MagReadHttp magTracks.track.eStatus=" << magTracks.track[i].eStatus);
 						LOG4VTM(INFO, "MagReadHttp magTracks.track.dwSize=" << magTracks.track[i].dwSize);
-						LOG4VTM(INFO, "MagReadHttp magTracks.track.data.len=" << strlen((const char *)magTracks.track[i].data));
+						LOG4VTM(INFO, "MagReadHttp magTracks.track.data.len=" << strlen((const char*)magTracks.track[i].data));
 					}
 					return true;
 				}
@@ -682,7 +683,7 @@ bool CardIssuerImpl::ICCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 	ZeroMemory(show, MAX_SHOW);
 	HexBuf2StrBuf(sendBuf.data, &show, sendBuf.dwSize);
 
-	LOG4VTM(INFO, "ICCommandHttp sendBuf=" << show );
+	LOG4VTM(INFO, "ICCommandHttp sendBuf=" << show);
 
 	CommonReq cReq;
 	CommonRet cRet;
@@ -695,8 +696,8 @@ bool CardIssuerImpl::ICCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 	rootReq["ip"] = GetLocalIP();
 	rootReq["entityName"] = ENTITY_NAME;
 	rootReq["adapterInterName"] = "ICCommand";//适配器接口名
-	rootReq["CmdInfo"]["dwSize"] = (int)sendBuf.dwSize;
-	rootReq["CmdInfo"]["dwData"] = show;
+	//rootReq["dwSize"] = CSimpleStringA::Format("%d",sendBuf.dwSize).GetData();
+	//rootReq["dwData"] = CSimpleStringA::Format("%s",show).GetData();
 
 
 	cReq.m_url = getUrl();
@@ -720,19 +721,19 @@ bool CardIssuerImpl::ICCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 			if (rootRet.isMember("data")) {
 				bool isResult = rootRet["data"]["result"].asBool();
 				if (isResult) {
-					int dwSizeRet = rootRet["data"]["CmdInfo"]["dwSize"].asInt();
-					string  dwDataRet = rootRet["data"]["CmdInfo"]["dwData"].asString();
+					int dwSizeRet = rootRet["data"]["dwSize"].asInt();
+					string  dataRet = rootRet["data"]["data"].asString();
 
-					LOG4VTM(INFO, "ICCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "ICCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
 					//反解析
 					PBYTE pData = new BYTE[MAX_SHOW];
 					ZeroMemory(pData, MAX_SHOW);
-					int dataLen = StrBuf2HexBuf(dwDataRet.c_str(), &pData);
+					int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
 					ZeroMemory(recvBuf.data, MAX_SHOW);
 
 					memcpy(recvBuf.data, pData, dataLen);//赋值
 					recvBuf.dwSize = dataLen;//赋值
-					LOG4VTM(INFO, "ICCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "ICCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dataRet);
 					delete[] pData;
 					return true;
 				}
@@ -775,8 +776,8 @@ bool CardIssuerImpl::SAMCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 	rootReq["ip"] = GetLocalIP();
 	rootReq["entityName"] = ENTITY_NAME;
 	rootReq["adapterInterName"] = "SAMCommand";//适配器接口名
-	rootReq["CmdInfo"]["dwSize"] = (int)sendBuf.dwSize;
-	rootReq["CmdInfo"]["dwData"] = show;
+	//rootReq["CmdInfo"]["dwSize"] = CSimpleStringA::Format("%d", sendBuf.dwSize).GetData();
+	//rootReq["CmdInfo"]["dwData"] = CSimpleStringA::Format("%s", show).GetData();
 
 
 	cReq.m_url = getUrl();
@@ -800,19 +801,19 @@ bool CardIssuerImpl::SAMCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 			if (rootRet.isMember("data")) {
 				bool isResult = rootRet["data"]["result"].asBool();
 				if (isResult) {
-					int dwSizeRet = rootRet["data"]["CmdInfo"]["dwSize"].asInt();
-					string  dwDataRet = rootRet["data"]["CmdInfo"]["dwData"].asString();
+					int dwSizeRet = rootRet["data"]["dwSize"].asInt();
+					string  dataRet = rootRet["data"]["data"].asString();
 
-					LOG4VTM(INFO, "SAMCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "SAMCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
 					//反解析
 					PBYTE pData = new BYTE[MAX_SHOW];
 					ZeroMemory(pData, MAX_SHOW);
-					int dataLen = StrBuf2HexBuf(dwDataRet.c_str(), &pData);
+					int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
 					ZeroMemory(recvBuf.data, MAX_SHOW);
 
 					memcpy(recvBuf.data, pData, dataLen);//赋值
 					recvBuf.dwSize = dataLen;//赋值
-					LOG4VTM(INFO, "SAMCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "SAMCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dataRet);
 					delete[] pData;
 					return true;
 				}
@@ -870,19 +871,19 @@ bool CardIssuerImpl::ActiveICCardATRHttp(CmdInfo& atrBuf)
 			if (rootRet.isMember("data")) {
 				bool isResult = rootRet["data"]["result"].asBool();
 				if (isResult) {
-					int dwSizeRet = rootRet["data"]["CmdInfo"]["dwSize"].asInt();
-					string  dwDataRet = rootRet["data"]["CmdInfo"]["dwData"].asString();
+					int dwSizeRet = rootRet["data"]["dwSize"].asInt();
+					string  dataRet = rootRet["data"]["data"].asString();
 
-					LOG4VTM(INFO, "ActiveICCardATRHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "ActiveICCardATRHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
 					//反解析
 					PBYTE pData = new BYTE[MAX_SHOW];
 					ZeroMemory(pData, MAX_SHOW);
-					int dataLen = StrBuf2HexBuf(dwDataRet.c_str(), &pData);
+					int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
 					ZeroMemory(atrBuf.data, MAX_SHOW);
 
 					memcpy(atrBuf.data, pData, dataLen);//赋值
 					atrBuf.dwSize = dataLen;//赋值
-					LOG4VTM(INFO, "ActiveICCardATRHttp recvBuf.dwSize=" << atrBuf.dwSize << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "ActiveICCardATRHttp recvBuf.dwSize=" << atrBuf.dwSize << ", recvBuf.dwData=" << dataRet);
 					delete[] pData;
 					return true;
 				}
@@ -920,9 +921,9 @@ bool CardIssuerImpl::ActiveContactlessICCardHttp(char fstType, char scdType, cha
 	rootReq["ip"] = GetLocalIP();
 	rootReq["entityName"] = ENTITY_NAME;
 	rootReq["adapterInterName"] = "ActiveContactlessICCard";//适配器接口名
-	rootReq["fstType"] = fstType;
-	rootReq["scdType"] = scdType;
-	rootReq["thdType"] = thdType;
+	//rootReq["fstType"] = fstType;
+	//rootReq["scdType"] = scdType;
+	//rootReq["thdType"] = thdType;
 
 	cReq.m_url = getUrl();
 	cReq.m_timeOut = 30;
@@ -999,8 +1000,8 @@ bool CardIssuerImpl::RFTypeABCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 	rootReq["ip"] = GetLocalIP();
 	rootReq["entityName"] = ENTITY_NAME;
 	rootReq["adapterInterName"] = "RFTypeABCommand";//适配器接口名
-	rootReq["CmdInfo"]["dwSize"] = (int)sendBuf.dwSize;
-	rootReq["CmdInfo"]["dwData"] = show;
+	//rootReq["CmdInfo"]["dwSize"] = (int)sendBuf.dwSize;
+	//rootReq["CmdInfo"]["dwData"] = show;
 
 
 	cReq.m_url = getUrl();
@@ -1024,19 +1025,19 @@ bool CardIssuerImpl::RFTypeABCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 			if (rootRet.isMember("data")) {
 				bool isResult = rootRet["data"]["result"].asBool();
 				if (isResult) {
-					int dwSizeRet = rootRet["data"]["CmdInfo"]["dwSize"].asInt();
-					string  dwDataRet = rootRet["data"]["CmdInfo"]["dwData"].asString();
+					int dwSizeRet = rootRet["data"]["dwSize"].asInt();
+					string  dataRet = rootRet["data"]["data"].asString();
 
-					LOG4VTM(INFO, "RFTypeABCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "RFTypeABCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
 					//反解析
 					PBYTE pData = new BYTE[MAX_SHOW];
 					ZeroMemory(pData, MAX_SHOW);
-					int dataLen = StrBuf2HexBuf(dwDataRet.c_str(), &pData);
+					int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
 					ZeroMemory(recvBuf.data, MAX_SHOW);
 
 					memcpy(recvBuf.data, pData, dataLen);//赋值
 					recvBuf.dwSize = dataLen;//赋值
-					LOG4VTM(INFO, "RFTypeABCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dwDataRet);
+					LOG4VTM(INFO, "RFTypeABCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dataRet);
 					delete[] pData;
 					return true;
 				}
@@ -1062,7 +1063,7 @@ bool CardIssuerImpl::RFTypeABCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
 
 bool CardIssuerImpl::DevOpenExHttp(DWORD dwPort, DWORD dwBaudRate, BYTE btOpenType, const char* pDevSN, BYTE& btType)
 {
-	LOG4VTM(INFO, "DevOpenExHttp dwPort=" << dwPort <<" dwBaudRate=" << dwBaudRate <<" btOpenType=" << btOpenType << " pDevSN=" << pDevSN);
+	LOG4VTM(INFO, "DevOpenExHttp dwPort=" << dwPort << " dwBaudRate=" << dwBaudRate << " btOpenType=" << btOpenType << " pDevSN=" << pDevSN);
 	CommonReq cReq;
 	CommonRet cRet;
 	IHttpFunc* client;
@@ -1168,20 +1169,23 @@ bool CardIssuerImpl::TransferEnInitHttp(int& iStatus, BYTE*& Cr1, int& lenR1, BY
 						string  Cr3Ret = rootRet["data"]["Cr3"].asString();
 						string  dKeyRet = rootRet["data"]["dKey"].asString();
 
-						PBYTE pData = new BYTE[2048];
-						ZeroMemory(pData, 2048);
-						int dataLen = StrBuf2HexBuf(Cr1Ret.c_str(), &pData);
-						memcpy(Cr1, pData, dataLen);//赋值
+						//PBYTE pData = new BYTE[2048];
+						//ZeroMemory(pData, 2048);
+						//int dataLen = StrBuf2HexBuf(Cr1Ret.c_str(), &pData);
+						//memcpy(Cr1, pData, dataLen);//赋值
 
-						ZeroMemory(pData, MAX_TRACK_SIZE);
-						dataLen = StrBuf2HexBuf(Cr3Ret.c_str(), &pData);
-						memcpy(Cr3, pData, dataLen);//赋值
+						//ZeroMemory(pData, MAX_TRACK_SIZE);
+						//dataLen = StrBuf2HexBuf(Cr3Ret.c_str(), &pData);
+						//memcpy(Cr3, pData, dataLen);//赋值
 
-						ZeroMemory(pData, MAX_TRACK_SIZE);
-						dataLen = StrBuf2HexBuf(dKeyRet.c_str(), &pData);
-						memcpy(dKey, pData, dataLen);//赋值
+						//ZeroMemory(pData, MAX_TRACK_SIZE);
+						//dataLen = StrBuf2HexBuf(dKeyRet.c_str(), &pData);
+						//memcpy(dKey, pData, dataLen);//赋值
+						//delete[] pData;
+						memcpy(Cr1, Cr1Ret.c_str(), lenR1Ret);//赋值
+						memcpy(Cr3, Cr3Ret.c_str(), lenR3Ret);//赋值
+						memcpy(dKey, dKeyRet.c_str(), lenKeyRet);//赋值
 
-						delete[] pData;
 						LOG4VTM(INFO, "TransferEnInitHttp lenR1" << lenR1);
 						LOG4VTM(INFO, "TransferEnInitHttp lenR3" << lenR3);
 						LOG4VTM(INFO, "TransferEnInitHttp lenKey" << lenKey);
@@ -1216,9 +1220,9 @@ bool CardIssuerImpl::TransferEnInitHttp(int& iStatus, BYTE*& Cr1, int& lenR1, BY
 
 bool CardIssuerImpl::SetR2Http(int& iStatus, BYTE* pCr2, int lenR2)
 {
-	LOG4VTM(INFO, "SetR2Http pCr2Len=" << sizeof(pCr2) <<", lenR2=" << lenR2);
+	LOG4VTM(INFO, "SetR2Http pCr2Len=" << sizeof(pCr2) << ", lenR2=" << lenR2);
 	if (commonSimpleHttp("SetR2")) {
-		iStatus =0;
+		iStatus = 0;
 		return true;
 	}
 	else {
@@ -1281,31 +1285,47 @@ bool CardIssuerImpl::ReadAccountHttp(CardNo& cardNo)
 			if (rootRet.isMember("data")) {
 				bool isResult = rootRet["data"]["result"].asBool();
 				if (isResult) {
-					int dwSizeRet = rootRet["data"]["CardNo"]["dwSize"].asInt();
+					int dwSizeRet = rootRet["data"]["dwSize"].asInt();
 					cardNo.dwSize = dwSizeRet;
-					int dwTrack2SizeRet = rootRet["data"]["CardNo"]["dwTrack2Size"].asInt();
+					int dwTrack2SizeRet = rootRet["data"]["dwTrack2Size"].asInt();
 					cardNo.dwTrack2Size = dwTrack2SizeRet;
-					int dwTrack3SizeRet = rootRet["data"]["CardNo"]["dwTrack3Size"].asInt();
+					int dwTrack3SizeRet = rootRet["data"]["dwTrack3Size"].asInt();
 					cardNo.dwTrack3Size = dwTrack3SizeRet;
 
-					string  accountRet = rootRet["data"]["CardNo"]["account"].asString();
-					string  track2Ret = rootRet["data"]["CardNo"]["track2"].asString();
-					string  track3Ret = rootRet["data"]["CardNo"]["track3"].asString();
-
-					PBYTE pData = new BYTE[MAX_TRACK_SIZE];
-					ZeroMemory(pData, MAX_TRACK_SIZE);
-					int dataLen = StrBuf2HexBuf(accountRet.c_str(), &pData);
-					memcpy(cardNo.account, pData, dataLen);//赋值
-
-					ZeroMemory(pData, MAX_TRACK_SIZE);
-					dataLen = StrBuf2HexBuf(track2Ret.c_str(), &pData);
-					memcpy(cardNo.track2, pData, dataLen);//赋值
-
-					ZeroMemory(pData, MAX_TRACK_SIZE);
-					dataLen = StrBuf2HexBuf(track3Ret.c_str(), &pData);
-					memcpy(cardNo.track3, pData, dataLen);//赋值
+					string  accountRet = rootRet["data"]["account"].asString();
+					string  track2Ret = rootRet["data"]["track2"].asString();
+					string  track3Ret = rootRet["data"]["track3"].asString();
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.dwSize=" << cardNo.dwSize);
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack2Size=" << cardNo.dwTrack2Size);
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack3Size=" << cardNo.dwTrack3Size);
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.account=" << accountRet.c_str());
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.track2=" << track2Ret.c_str());
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.track3=" << track3Ret.c_str());
+
+					//PBYTE pData = new BYTE[MAX_MAG_TRACK_SIZE];
+					//ZeroMemory(pData, MAX_MAG_TRACK_SIZE);
+					//int dataLen = StrBuf2HexBuf(accountRet.c_str(), &pData);
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.account=" << pData);
+					//memcpy(cardNo.account, pData, dataLen);//赋值
+					//delete[] pData;
+
+					//pData = new BYTE[MAX_MAG_TRACK_SIZE];
+					//ZeroMemory(pData, MAX_MAG_TRACK_SIZE);
+					//dataLen = StrBuf2HexBuf(track2Ret.c_str(), &pData);
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.track2=" << pData);
+					//memcpy(cardNo.track2, pData, dataLen);//赋值
+					//delete[] pData;
+
+					//pData = new BYTE[MAX_MAG_TRACK_SIZE];
+					//ZeroMemory(pData, MAX_MAG_TRACK_SIZE);
+					//dataLen = StrBuf2HexBuf(track3Ret.c_str(), &pData);
+					//LOG4VTM(INFO, "ReadAccountHttp cardNo.track3=" << pData);
+					//memcpy(cardNo.track3, pData, dataLen);//赋值
+					//delete[] pData;
+					memcpy(cardNo.account, accountRet.c_str(), cardNo.dwSize);//赋值
+					memcpy(cardNo.track2, track2Ret.c_str(), cardNo.dwTrack2Size);//赋值
+					memcpy(cardNo.track3, track3Ret.c_str(), cardNo.dwTrack3Size);//赋值
 
-					delete[] pData;
 					LOG4VTM(INFO, "ReadAccountHttp cardNo.dwSize=" << cardNo.dwSize);
 					LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack2Size=" << cardNo.dwTrack2Size);
 					LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack3Size=" << cardNo.dwTrack3Size);
@@ -1406,8 +1426,8 @@ bool CardIssuerImpl::QuerySlotsStatusHttp(SlotStatus& slots, const int slot, boo
 	rootReq["ip"] = GetLocalIP();
 	rootReq["entityName"] = ENTITY_NAME;
 	rootReq["adapterInterName"] = "QuerySlotsStatus";//适配器接口名
-	rootReq["slot"] = slot;
-	rootReq["bFull"] = bFull ? 1 : 0;//转换成0和1表示
+	//rootReq["slot"] = slot;
+	//rootReq["bFull"] = bFull ? 1 : 0;//转换成0和1表示
 
 	cReq.m_url = getUrl();
 	cReq.m_timeOut = 30;
@@ -1429,10 +1449,10 @@ bool CardIssuerImpl::QuerySlotsStatusHttp(SlotStatus& slots, const int slot, boo
 			if (rootRet.isMember("data")) {
 				bool isResult = rootRet["data"]["result"].asBool();
 				if (isResult) {
-					int sumRet = rootRet["data"]["SlotStatus"]["dwSize"].asInt();
+					int sumRet = rootRet["data"]["dwSize"].asInt();
 					slots.dwSize = sumRet;
 					for (int i = 0; i < sumRet; i++) {
-						slots.status[i] = rootRet["data"]["SlotStatus"]["dwSize"][i].asInt();
+						slots.status[i] = rootRet["data"]["status"][i].asInt();
 					}
 					return true;
 				}
@@ -1530,12 +1550,3 @@ bool CardIssuerImpl::commonSimpleHttp(string adapterInterName)
 	}
 }
 
-#ifdef NEWER_COMPILER_WORKAROUNDS
-
-DEVICEBASE_API ErrorCodeEnum  GetDevAdapterVersion(DevSoftVersion& retVesion)
-{
-	retVesion.wMajor = retVesion.wMinor = retVesion.wBuild = retVesion.wRevision = 0;
-	return Error_Succeed;
-}
-
-#endif // NEWER_COMPILER_WORKAROUNDS

+ 1 - 0
Module/mod_chromium/CModTools.cpp

@@ -522,6 +522,7 @@ namespace Chromium {
 		strCmdLine.Append(" --hide-controls");
 		strCmdLine.Append(" --lang=zh-CN");//install page need language chinese
 		strCmdLine.Append(" --hide-tabs");
+		strCmdLine.Append(" --top=-1");
 		strCmdLine.Append(" --logextend=").Append((+PAGE_TYPE::Install)._to_string());
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("cmdline : %s", strCmdLine.GetData());
 		return strCmdLine.GetData();

+ 37 - 3
Module/mod_chromium/mod_chromium.cpp

@@ -560,9 +560,43 @@ namespace Chromium {
 		}
 		else
 		{
-			ResourceWatcher::BrowserCacheClean evt;
-			evt.needClean = 1;
-			OnBrowserCacheClean(NULL, 0, 0, evt);
+
+			CSimpleString tmpCacheDir;
+			if (Error_Succeed != GetFunction()->GetPath("Temp", tmpCacheDir) || tmpCacheDir.GetLength() == 0)
+			{
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("OnBrowserCacheClean get cache path err");
+				return;
+			}
+#if (defined _WIN32 || defined _WIN64)
+			auto tmpArr = find_files(tmpCacheDir.GetData(), "cefCache*", true);
+			std::shared_ptr<std::vector<std::string>> tmpDirArr(new std::vector<std::string>());
+			for each(auto it in tmpArr)
+				tmpDirArr.get()->push_back(it);
+
+			auto runCacheClean = [](std::shared_ptr<std::vector<std::string>> p) ->void {
+				CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::breakdown, true);//close all tab
+				for each (auto it in *p.get())
+				{
+					LogWarn(Severity_Low, Error_Debug, LOG_EVT_CHROMIUM_BROWSER_CACHE_CLEAER, CSimpleStringA::Format("clear chromium browser cache %s %s", it.c_str(),
+						RemoveDirRecursive(it.c_str()) ? "success" : "fail"));
+				}
+			};
+			runCacheClean(tmpDirArr);
+
+#else
+			//uos 由于无guard,需要重启整个chromium实体
+			CModTools::get_mutable_instance().killAllChromium();
+			auto tmpDirArr = find_files(tmpCacheDir.GetData(), "cefCache*", true);
+			auto uosTmpDirArr = find_files(tmpCacheDir.GetData(), "UOSBrowser*", true);
+			std::for_each(uosTmpDirArr.begin(), uosTmpDirArr.end(), [&](std::string tmp) {
+				tmpDirArr.push_back(tmp);
+				});//insert uosTmpDirArr into tmpDirArr
+
+			for (auto it = tmpDirArr.begin(); it != tmpDirArr.end(); it++)
+				LogWarn(Severity_Low, Error_Debug, LOG_EVT_CHROMIUM_BROWSER_CACHE_CLEAER, CSimpleStringA::Format("clear chromium browser cache %s %s", it->c_str(),
+					RemoveDirRecursive(it->c_str()) ? "success" : "fail"));
+#endif 
+			boost::this_thread::sleep_for(boost::chrono::seconds(2));
 			openInstallPage();
 		}