Parcourir la source

Z991239-6413 #comment 机型枚举新增

80374374 il y a 2 mois
Parent
commit
b980214aca

+ 12 - 0
Framework/Common/SpBase.h

@@ -115,6 +115,16 @@ enum InstallStateEnum
 	Install_Installed,			// D, only used to LightPack
 };
 
+/* terminal machine type*/
+enum MachineTypeEnum
+{
+	RVC_Unknown = 0,
+	RVC_Stand2S,
+	RVC_Stand1SPlus,
+	RVC_CardStore,
+	RVC_CardPrinter
+};
+
 /** terminal application boot state*/
 enum AppBootStateEnum
 {
@@ -819,6 +829,8 @@ struct IEntityFunction
 {
 	virtual ~IEntityFunction() {}
 
+	/** get Machine Type, the outStrMachine out param will store the MachineType String if not nulll */
+	virtual MachineTypeEnum GetMachineType(CSimpleStringA* outStrMachine = NULL) = 0;
 	/** get CSystemStaticInfo information */
 	virtual ErrorCodeEnum GetSystemStaticInfo(CSystemStaticInfo& Info) = 0;
 	virtual ErrorCodeEnum GetInstallInfo(CVersion Version, CInstallInfo& Info) = 0;	//include latter/current/history version

+ 4 - 0
Framework/Common/SpDefine.h

@@ -1,3 +1,5 @@
+#ifndef _SP_DEFINE_H__
+#define _SP_DEFINE_H__
 
 
 class SpDefine
@@ -56,3 +58,5 @@ public:
 
 
 };
+
+#endif //_SP_DEFINE_H__

+ 2 - 1
Framework/Common/SpHelper.h

@@ -364,7 +364,6 @@ static ErrorCodeEnum SpSendBroadcast(CSmartPointer<IEntityFunction> pFunc, DWORD
 // <class_name>
 SPBASE_API ErrorCodeEnum SpExtractClassFunctionName(const char *pszParam, CSimpleStringA &strClassName, CSimpleStringA &strFunctionName);
 
-
 //SpBase Enum Stringtify
 
 SPBASE_API LPCTSTR SpStrEntityState(const EntityStateEnum state);
@@ -377,6 +376,8 @@ SPBASE_API LPCTSTR SpStrRebootWay(const RebootWayEnum way);
 
 SPBASE_API LPCTSTR SpStrAppBootState(const AppBootStateEnum state);
 
+SPBASE_API MachineTypeEnum SpStr2MachineType(const CSimpleStringA& strMachineType);
+
 #define IS_SUCCEED(hr)	((hr) == Error_Succeed)
 
 #define IS_FAILURED(hr) (!(IS_SUCCEED(hr)))

+ 16 - 0
Framework/spbase/SpEntity.cpp

@@ -1123,6 +1123,22 @@ DWORD SpEntity::GetUserDefineState()
     return (DWORD)(m_ent->user_state);
 }
 
+MachineTypeEnum SpEntity::GetMachineType(CSimpleStringA* outStrMachine)
+{
+	MachineTypeEnum machineType(RVC_Unknown);
+	CSystemStaticInfo stStaticinfo;
+	CSimpleStringA strMachineType(true);
+	auto rc = GetSystemStaticInfo(stStaticinfo);
+	if (rc == Error_Succeed) {
+		strMachineType = stStaticinfo.strMachineType;
+		machineType = SpStr2MachineType(strMachineType);
+	}
+	if (outStrMachine != NULL) {
+		(*outStrMachine) = strMachineType.GetData();
+	}
+	return machineType;
+}
+
 ErrorCodeEnum SpEntity::GetSystemStaticInfo(CSystemStaticInfo &Info)
 {
 	sp_env_t *env = sp_get_env();

+ 1 - 0
Framework/spbase/SpEntity.h

@@ -94,6 +94,7 @@ public:
 	virtual ErrorCodeEnum OpenConfig(ConfigTypeEnum eConfigType,CSmartPointer<IConfigInfo> &pConfigInfo, bool forceFile);
 
 	// gets
+	virtual MachineTypeEnum GetMachineType(CSimpleStringA* outStrMachine = NULL);
 	virtual ErrorCodeEnum GetSystemStaticInfo(CSystemStaticInfo &Info);
 	virtual ErrorCodeEnum GetInstallInfo(CVersion Version,CInstallInfo &Info);
 	virtual ErrorCodeEnum GetPath(const char *pszKey,CSimpleStringA &strPath);

+ 20 - 0
Framework/spbase/SpHelper.cpp

@@ -883,5 +883,25 @@ SPBASE_API LPCTSTR SpStrAppBootState(const AppBootStateEnum state)
 	return content;
 }
 
+SPBASE_API MachineTypeEnum SpStr2MachineType(const CSimpleStringA& strMachineType)
+{
+	MachineTypeEnum machineType(RVC_Unknown);
+	if (!strMachineType.IsNullOrEmpty()) {
+		if (_stricmp(strMachineType, "RVC.Stand2S") == 0) {
+			machineType = RVC_Stand2S;
+		}
+		else if (_stricmp(strMachineType, "RVC.Stand1SPlus") == 0) {
+			machineType = RVC_Stand1SPlus;
+		}
+		else if (_stricmp(strMachineType, "RVC.CardStore") == 0) {
+			machineType = RVC_CardStore;
+		}
+		else if (_stricmp(strMachineType, "RVC.CardPrinter") == 0) {
+			machineType = RVC_CardPrinter;
+		}
+	}
+	return machineType;
+}
+
 #undef ENT_ENUM_MAP
 

+ 0 - 113
Module/include/CommEntityUtil.hpp

@@ -192,119 +192,6 @@ static BOOL IsFirsRunAppAfterSystemBoot(CEntityBase* pEntity, DWORD theReportUse
 	return result;
 }
 
-inline
-CSimpleStringA GetCurrMachineType(CEntityBase* pEntity)
-{
-    CSystemStaticInfo sysInfo;
-    pEntity->GetFunction()->GetSystemStaticInfo(sysInfo);
-    return sysInfo.strMachineType;
-}
-            enum Site
-            {
-                CMB_UNKNOWN,
-                CMB_LIB,       /** 行内大堂*/
-                CMB_FLB,      /** 离行机器*/
-            };
-
-#define SITE_ENUM_TYPE(MACRO)	\
-		MACRO(LIB)\
-		MACRO(FLB)
-
-
-#define ENUM_MAP_CONVERT(elem) \
-	if (streq(lpcszSiteName, "CMB."#elem) == 0) return CMB_##elem;
-/*!
- * convert cmb site name to enum type.
- */
-static Site Str2Site(LPCSTR lpcszSiteName)
-{
-	if (lpcszSiteName == NULL || strlen(lpcszSiteName) == 0)
-		return CMB_UNKNOWN;
-	SITE_ENUM_TYPE(ENUM_MAP_CONVERT)
-		return CMB_UNKNOWN;
-}
-
-#undef ENUM_MAP_CONVERT
-#define ENUM_MAP_CONVERT(elem) case CMB_##elem: return "CMB."#elem;
-
-static LPCSTR Site2Str(Site site)
-{
-	switch (site) {
-		SITE_ENUM_TYPE(ENUM_MAP_CONVERT)
-	default:
-		break;
-	}
-	return "Unkown";
-}
-
-            enum What
-            {
-                RVC_UNKNOWN,
-                RVC_Stand2S,          /** 落地式大机*/
-                RVC_PAD,                /** PAD*/
-                RVC_Desk2S,           /** 低柜双屏*/
-                RVC_CardStore,		/** 卡库*/
-                RVC_CardPrinter,     /** 制卡机*/
-				RVC_Stand1SPlus     /** 单屏大机*/
-            };
-
-#define MACHINE_ENUM_TYPE(MACRO)	\
-		MACRO(Stand2S)\
-		MACRO(PAD)\
-		MACRO(Desk2S)\
-		MACRO(CardStore)\
-		MACRO(CardPrinter)\
-		MACRO(Stand1SPlus)
-
-#undef ENUM_MAP_CONVERT
-#define ENUM_MAP_CONVERT(elem) \
-	if (streq(lpcszTypeName, "RVC."#elem) == 0) return RVC_##elem;
-/*!
- * convert cmb site name to enum type.
- */
-static What Str2Type(LPCSTR lpcszTypeName)
-{
-	if (lpcszTypeName == NULL || strlen(lpcszTypeName) == 0)
-		return RVC_UNKNOWN;
-	MACHINE_ENUM_TYPE(ENUM_MAP_CONVERT)
-	return RVC_UNKNOWN;
-}
-
-#undef ENUM_MAP_CONVERT
-#define ENUM_MAP_CONVERT(elem) case RVC_##elem: return "RVC."#elem;
-
-static LPCSTR Type2Str(What what)
-{
-	switch (what) {
-		MACHINE_ENUM_TYPE(ENUM_MAP_CONVERT)
-	default:
-		break;
-	}
-	return "Unkown";
-}
-
-struct TerminalMachineInfo
-{
-	Site site;
-	What type;
-    struct {
-        WORD minor;
-        WORD major;
-    } gen;
-};
-
-inline TerminalMachineInfo GetTerminalMachineInfo(CEntityBase* pEntity)
-{
-    CSystemStaticInfo sysInfo;
-	TerminalMachineInfo termInfo;
-	pEntity->GetFunction()->GetSystemStaticInfo(sysInfo);
-	termInfo.site = Str2Site(sysInfo.strSite);
-	termInfo.type = Str2Type(sysInfo.strMachineType);
-	termInfo.gen.major = sysInfo.MachineVersion.GetMajor();
-	termInfo.gen.minor = sysInfo.MachineVersion.GetMinor();
-	return termInfo;
-}
-
 inline ULLINT RVCGetTickCount()
 {
 #ifdef RVC_OS_WIN

+ 9 - 12
Module/mod_CardReadAdapter/CardReadAdapterFSM.cpp

@@ -36,10 +36,7 @@ void CCardReadAdapterFSM::s0_on_entry()
 	m_minorVerion = sysInfo.MachineVersion.GetMinor();
 	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("machineType:%s,terminalNo:%s,machineVersion:%d.%d", (const char*)m_csMachineType, (const char*)m_terminalNo
 	, m_majorVerion, m_minorVerion);
-
-	///**TODO(Gifur@8/17/2023): 覆盖其他需要字段 */
-	const auto terminInfo = SP::Module::Comm::GetTerminalMachineInfo(GetEntityBase());
-	m_eMachineType = terminInfo.type;
+	m_eMachineType = SpStr2MachineType(sysInfo.strMachineType);
 
 	FSMEvent *pEvt;
 
@@ -130,7 +127,7 @@ unsigned int CCardReadAdapterFSM::s2_on_event(FSMEvent* pEvt)
 			CardReadEvent* cre = dynamic_cast<CardReadEvent*>(pEvt);
 			bool bCardIssuer, bContactlessCard;
 			bCardIssuer = bContactlessCard = false;
-			if (m_eMachineType == SP::Module::Comm::RVC_Stand2S || m_eMachineType == SP::Module::Comm::RVC_Stand1SPlus)
+			if (m_eMachineType == RVC_Stand2S || m_eMachineType == RVC_Stand1SPlus)
 			{
 				ContactlessCardReadTask* cTask = new ContactlessCardReadTask(this);
 				cTask->ctx = cre->ctx;
@@ -767,7 +764,7 @@ int CCardReadAdapterFSM::CardIssuerRead(SpReqAnsContext<CardReadAdapterService_R
 						ctx->Ans.ICCardNo = ansR.ICData;
 						ctx->Ans.status = ansR.status;
 						///**TODO(Gifur@8/22/2023):  增加单屏机型判断,需要诗友确认*/
-						if (m_eMachineType == SP::Module::Comm::RVC_Stand2S || m_eMachineType == SP::Module::Comm::RVC_Stand1SPlus)
+						if (m_eMachineType == RVC_Stand2S || m_eMachineType == RVC_Stand1SPlus)
 							ctx->Ans.cardPos = CardPos_CardIssuer_Stand2S;
 						else
 							ctx->Ans.cardPos = CardPos_CardIssuer_Split;
@@ -920,7 +917,7 @@ int CCardReadAdapterFSM::CardIssuerRead(SpReqAnsContext<CardReadAdapterService_R
 						ctx->Ans.ICCardNo = ansR.ICData;
 						ctx->Ans.status = ansR.status;
 						///**TODO(Gifur@8/22/2023):  增加单屏机型判断,需要诗友确认*/
-						if (m_eMachineType == SP::Module::Comm::RVC_Stand2S || m_eMachineType == SP::Module::Comm::RVC_Stand1SPlus)
+						if (m_eMachineType == RVC_Stand2S || m_eMachineType == RVC_Stand1SPlus)
 							ctx->Ans.cardPos = CardPos_CardIssuer_Stand2S;
 						else
 							ctx->Ans.cardPos = CardPos_CardIssuer_Split;
@@ -1727,7 +1724,7 @@ void CCardReadAdapterFSM::CheckAndReconnectSession()
 			}
 		}
 		//ContactlessCard
-		if ((m_eMachineType != SP::Module::Comm::RVC_CardStore && m_eMachineType != SP::Module::Comm::RVC_CardPrinter)
+		if ((m_eMachineType != RVC_CardStore && m_eMachineType != RVC_CardPrinter)
 			&& (m_pContactless == NULL || (m_pContactless != NULL && m_pContactless->QuerySessionClosed())))
 		{
 			if (m_pContactless != NULL)
@@ -1792,10 +1789,10 @@ bool CCardReadAdapterFSM::IsTheEntity(int module,ModuleType eModule)
 		
 		if (eModule == Module_CardIssuer)
 		{
-			if (m_eMachineType == SP::Module::Comm::RVC_Stand2S
-				|| m_eMachineType == SP::Module::Comm::RVC_CardStore
-				|| m_eMachineType == SP::Module::Comm::RVC_CardPrinter
-				|| m_eMachineType == SP::Module::Comm::RVC_Stand1SPlus)
+			if (m_eMachineType == RVC_Stand2S
+				|| m_eMachineType == RVC_CardStore
+				|| m_eMachineType == RVC_CardPrinter
+				|| m_eMachineType == RVC_Stand1SPlus)
 				return true;
 			else
 				return false;

+ 3 - 3
Module/mod_CardReadAdapter/CardReadAdapterFSM.h

@@ -821,7 +821,7 @@ public:
 		event = m_lastS2Event;
 		param1 = m_lastS2EvtParam1;
 	}
-	SP::Module::Comm::What GetMachineType() {return m_eMachineType;}
+	MachineTypeEnum GetMachineType() {return m_eMachineType;}
 	int QueryCIStatus(SpReqAnsContext<CardReadAdapterService_QueryCIStatus_Req, CardReadAdapterService_QueryCIStatus_Ans>::Pointer ctx);
 	void WaitCardActive();
 protected:
@@ -841,7 +841,7 @@ private:
 	//m_lastModule:0~7
 	//0:all; 1:CardIssuerStand or CardIssuerStore; 2:ContactlessCard
 	int m_lastModule,m_lastS2Event, m_lastS2EvtParam1;
-	SP::Module::Comm::What m_eMachineType;
+	MachineTypeEnum m_eMachineType;
 	WORD m_majorVerion,m_minorVerion;
 	///
 	int m_resetTimes;
@@ -894,7 +894,7 @@ private:
 	}
 
 	bool IsCardIssuerStore() {
-		if (m_eMachineType == SP::Module::Comm::RVC_CardStore || m_eMachineType == SP::Module::Comm::RVC_CardPrinter) {
+		if (m_eMachineType == RVC_CardStore || m_eMachineType == RVC_CardPrinter) {
 			return true;
 		}
 		else {

+ 4 - 2
Module/mod_ResourceWatcher/ResourceWatcherFSM.cpp

@@ -1765,12 +1765,14 @@ void ResourceWatcherFSM::UploadScreenInfo()
 	const int screenNums = GetSystemMetrics(SM_CMONITORS);
 	const int aimScreenNums4Stand2S = 2;
 	const int aimScreenNums4Other = 1;
-	if (0 == m_RvcSysinfo.strMachineType.Compare("RVC.Stand2S", true) && screenNums != aimScreenNums4Stand2S) {
+    const MachineTypeEnum mt = SpStr2MachineType(m_RvcSysinfo.strMachineType);
+
+	if (mt == RVC_Stand2S && screenNums != aimScreenNums4Stand2S) {
 		LogWarn(Severity_Low, Error_Unexpect, LOG_RESOURCEWATCHER_LACK_OF_MONITOR
 			, CSimpleStringA::Format("{\"subject\":\"screen_count\",\"machine_type\":\"%s\",\"expect\":%d,\"actual\":%d}"
 				, m_RvcSysinfo.strMachineType.GetData(), aimScreenNums4Stand2S, screenNums));
 	}
-	else if (0 != m_RvcSysinfo.strMachineType.Compare("RVC.Stand2S", true) && screenNums != aimScreenNums4Other) {
+	else if (mt != RVC_Stand2S && screenNums != aimScreenNums4Other) {
 		LogWarn(Severity_Low, Error_Unexpect, LOG_RESOURCEWATCHER_LACK_OF_MONITOR
 			, CSimpleStringA::Format("{\"subject\":\"screen_count\",\"machine_type\":\"%s\",\"expect\":%d,\"actual\":%d}"
 				, m_RvcSysinfo.strMachineType.GetData(), aimScreenNums4Other, screenNums));

+ 1 - 1
Module/mod_accessauth/mod_AccessAuth.cpp

@@ -192,7 +192,6 @@ void CAccessAuthEntity::OnStarted()
 	m_FSM.Init(this);
 	CSimpleStringA strErrMsg;
 	CSmartPointer<IEntityFunction> spFunction = this->GetFunction();
-	memset(&m_info,0, sizeof(CSystemStaticInfo));
 	auto rc = GetFunction()->GetSystemStaticInfo(m_info);
 	if (rc != Error_Succeed)
 	{
@@ -1014,6 +1013,7 @@ bool CAccessAuthEntity::SendInitMKReqACS(CInitlizerMKReq& initMKReq)
 		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("GetEncTerminalInfo failed:%d", nRet);
 		return false;
 	}
+	//TODO: CrossPlaform  [Gifur@202584]
 	char* pTmp = Str2Hex((char*)encInfo.m_pData, encInfo.m_iLength);
 	initMKReq.iniTerminalInfo = pTmp;
 

+ 1 - 0
Module/mod_assistantchannel/mod_assistantchannel.cpp

@@ -132,6 +132,7 @@ DeviceTypeEnum CBizChannelEntity::RvcGetDeviceType()
 	CSmartPointer<IEntityFunction> spFunction = GetFunction();
 	CSystemStaticInfo stStaticinfo;
 	spFunction->GetSystemStaticInfo(stStaticinfo);
+	//TODO: recommand to use  SpStr2MachineType in SpHelper.h [Gifur@202584]
 	if (_stricmp(stStaticinfo.strMachineType, "RVC.Stand1SPlus") == 0) {
 		eType = eStand1SPlusType;
 	}

+ 0 - 3
Module/mod_healthmanager/mod_healthmanager.cpp

@@ -659,9 +659,6 @@ bool CHealthManagerEntity::StopGuardian()
 							return false;
 						}
 					}
-					Sleep(3000);
-					WaitForSingleObject(&pe.th32ProcessID, INFINITE );
-					break;
 				}
 			} while (Process32Next(hSnapshot, &pe));
 		}