Procházet zdrojové kódy

Z991239-6443 #comment 卡机功能集 GetTickCountRVC

80374374 před 1 měsícem
rodič
revize
29a5ce6061

+ 13 - 21
Module/mod_CardReadAdapter/CardReadAdapterFSM.cpp

@@ -5,23 +5,15 @@
 #include "EventCode.h"
 #include <algorithm>
 #include <map>
+#include "publicFunExport.h"
+
 using namespace std;
+using namespace SP::Module::Comm;
+
 #define _ATL_NO_AUTOMATIC_NAMESPACE
 #define ReadCard_TIMEOUT	62000	//web的超时时间是65s
 #define ReadCard_Min_Time	12000	//Read+PreOnline 
 
-//TODO: CrossPlaform  [Gifur@2025730]
-unsigned long long GetTickCountRVC() {
-#ifdef RVC_OS_WIN
-	return GetTickCount64();
-#else
-	struct timespec ts;
-
-	clock_gettime(CLOCK_MONOTONIC, &ts);
-
-	return (ts.tv_sec * 1000 + ts.tv_nsec / 1000000);
-#endif //RVC_OS_WIN
-}
 class CCardReadAdapterEntity;
 void CCardReadAdapterFSM::s0_on_entry()
 {
@@ -1004,8 +996,8 @@ int CCardReadAdapterFSM::ContactlessCardRead(SpReqAnsContext<CardReadAdapterServ
 	}
 	ErrorCodeEnum eErr = Error_Unexpect;
 	DWORD elapsed = 0;
-	DWORD dwStart = GetTickCountRVC();
-	DWORD dwEnd = GetTickCountRVC();
+	DWORD dwStart = RVCGetTickCount();
+	DWORD dwEnd = RVCGetTickCount();
 	int insertloopNum = 0;
 	int preloopNum = 0;
 	while(elapsed + ReadCard_Min_Time < ReadCard_TIMEOUT)
@@ -1018,7 +1010,7 @@ int CCardReadAdapterFSM::ContactlessCardRead(SpReqAnsContext<CardReadAdapterServ
 			DWORD dwUserCode = 0;
 			req.aid = ctx->Req.aid;
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("to call contactless insert...");
-			dwEnd = GetTickCountRVC();
+			dwEnd = RVCGetTickCount();
 			DWORD dwTimeout = ReadCard_TIMEOUT - (dwEnd-dwStart);
 			m_busCtx.eCardFromWhich = Card_In_No_Where;
 			m_busCtx.eCardProcStage = Card_ProcStage_WaitForCard;
@@ -1063,7 +1055,7 @@ int CCardReadAdapterFSM::ContactlessCardRead(SpReqAnsContext<CardReadAdapterServ
 			}
 			else if(eErr == Error_Interact){
 				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("maybe ICCommand error, need loop!!!");
-				dwEnd = GetTickCountRVC();
+				dwEnd = RVCGetTickCount();
 				elapsed = dwEnd - dwStart;
 				Sleep(400);
 				insertloopNum++;
@@ -1084,7 +1076,7 @@ int CCardReadAdapterFSM::ContactlessCardRead(SpReqAnsContext<CardReadAdapterServ
 			{
 				//oilyang@20210223 add,The Entity FSM is too late to change state ,as the call coming so fast
 				Sleep(200);
-				dwEnd = GetTickCountRVC();
+				dwEnd = RVCGetTickCount();
 				DWORD elapsed1 = ReadCard_TIMEOUT - (dwEnd-dwStart);
 				if(elapsed1 < 5000)//PreOnline较慢,预留一定时间
 				{
@@ -1107,7 +1099,7 @@ int CCardReadAdapterFSM::ContactlessCardRead(SpReqAnsContext<CardReadAdapterServ
 					ctx->Ans.status = 0;
 				}else if(eErr == Error_Interact){
 					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("ContacelssCard return Error_Interact, need loop.");
-					dwEnd = GetTickCountRVC();
+					dwEnd = RVCGetTickCount();
 					elapsed = dwEnd - dwStart;
 					preloopNum++;
 					Sleep(400);
@@ -2286,7 +2278,7 @@ int CCardReadAdapterFSM::PreOnlineOnStore(SpReqAnsContext<CardReadAdapterService
 	ErrorCodeEnum eErr = Error_Unexpect;
 	CSimpleStringA errMsg(true);
 
-	m_ullCrossStart = GetTickCountRVC();
+	m_ullCrossStart = RVCGetTickCount();
 
 	if (m_pHBClient != NULL)
 	{
@@ -2322,7 +2314,7 @@ int CCardReadAdapterFSM::NotifyPreonline(SpReqAnsContext<CardReadAdapterService_
 {
 	LOG_FUNCTION();
 
-	UINT64 crossEnd = GetTickCountRVC();
+	UINT64 crossEnd = RVCGetTickCount();
 	//? ? ? 为什么是110s,重试?从生产实际来看,在25s到40s之间,大部分在30s左右,需要和前端(65s)一致,改成60s oilyang@20221019
 	//in 110 second 
 	if (m_crossCtx != NULL)
@@ -2709,7 +2701,7 @@ void CCardReadAdapterFSM::WaitCardActive()
 	{
 		if (m_bCardActiveNotify)
 			break;
-		UINT64 crossEnd = GetTickCountRVC();
+		UINT64 crossEnd = RVCGetTickCount();
 		if ((crossEnd - m_ullCrossStart) < 62 * 1000)
 			Sleep(1000);
 		else {

+ 4 - 5
Module/mod_cardissuerstore/CardIssuerStoreFSM.cpp

@@ -11,15 +11,14 @@
 #include <algorithm>
 #include <map>
 #include <list>
-#ifdef RVC_OS_WIN
-#define _ATL_NO_AUTOMATIC_NAMESPACE
-#include <atltime.h>
-#endif //RVC_OS_WIN
+#include <regex>
 
 #include "CardIssuerClass.h"
 #include "mod_cardissuerStore.h"
 #include "stdafx.h"
-#include <regex>
+#if defined(RVC_OS_LINUX)
+#include <dlfcn.h>
+#endif //RVC_OS_LINUX
 
 using namespace SP::Module::Comm;
 

+ 1 - 0
Tool/guardian/guardian.cpp

@@ -152,6 +152,7 @@ DWORD WINAPI DoWork(void* pData);
 #define	FUNCTION_STDCALL __stdcall
 #endif 
 
+//TODO: CrossPlaform 首先将其改造到WINPR的接口试点  [Gifur@2025820]
 unsigned long long GetTickCountRVC() {
 #ifdef linux
 	struct timespec ts;