Browse Source

!10681 优化健康握手前置条件判断;去掉系统变量runstate的使用;监护握手日志优化
Merge pull request !10681 from 80174847/oilyang_fixed_everything

杨诗友80174847 7 months ago
parent
commit
a38ceb71d2

+ 5 - 5
Module/mod_healthmanager/GuardianBase.h

@@ -50,11 +50,11 @@ extern "C" {
 #   define GUARDIANBASE_API
 #endif
 
-GUARDIANBASE_API ErrorCodeEnum ShakeHands(WorkStateEnum &eState);
-GUARDIANBASE_API ErrorCodeEnum PushUpdateTask(const char *pszPackName);
-GUARDIANBASE_API bool IsInstalling();
-GUARDIANBASE_API ErrorCodeEnum UpgradeRestart(const DWORD dwParam1,const DWORD dwParam2);
-GUARDIANBASE_API ErrorCodeEnum FrameworkQuit(int eReason);
+	GUARDIANBASE_API int ShakeHands(WorkStateEnum& eState);
+	GUARDIANBASE_API int PushUpdateTask(const char* pszPackName);
+	GUARDIANBASE_API bool IsInstalling();
+	GUARDIANBASE_API int UpgradeRestart(const DWORD dwParam1, const DWORD dwParam2);
+	GUARDIANBASE_API int FrameworkQuit(int eReason);
 
 
 #ifdef __cplusplus

+ 4 - 32
Module/mod_healthmanager/HealthManagerFSM.cpp

@@ -77,8 +77,6 @@ ErrorCodeEnum CHealthManagerFSM::Initial()
 	GetEntityBase()->GetFunction()->GetSysVar("TerminalStage", csTmpTS);
 	if (csTmpTS.Compare("N") != 0)
 		GetEntityBase()->GetFunction()->SetSysVar("TerminalStage", "X");
-	WaitDeamonFinishTask* task = new WaitDeamonFinishTask(this);
-	GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
 	
 	SP::Module::Net::GetINETMacAddresses(m_netList);
 
@@ -101,6 +99,10 @@ void CHealthManagerFSM::s0_on_entry(void)
 	m_elapseTimeFromOSStart = m_ullElapseFromOSStart / 1000;
 	CSimpleStringA xMsg = CSimpleStringA::Format("{\"Decripstion\":\"Entity start\",\"version\":\"%s\",\"elapseTime\":\"%d\"}", m_sysInfo.InstallVersion.ToString().GetData(), m_elapseTimeFromOSStart);
 	LogWarn(Severity_Low, Error_Unexpect, HealthManager_UserErrorCode_Enter_SafeLoad_State, xMsg.GetData());
+
+	FSMEvent* pEvt = new FSMEvent(USER_EVT_WAIT_DEAMON_FINISHED);
+	pEvt->param1 = 0;
+	PostEventFIFO(pEvt);
 }
 void CHealthManagerFSM::s0_on_exit(void)
 {
@@ -238,12 +240,6 @@ void CHealthManagerFSM::s6_on_entry()
 	LOG_FUNCTION();
 	m_preFsmState = m_fsmState;
 	m_fsmState = HM_FSM_STATE_MAINTAINING;
-	ErrorCodeEnum eErrCode;
-	eErrCode = GetEntityBase()->GetFunction()->SetSysVar("RunState","M");
-	if (eErrCode != Error_Succeed)
-	{
-		DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("set RunState M failed (%d).",eErrCode);
-	}
 	CSmartPointer<IEntityFunction> pFunc = GetEntityBase()->GetFunction();
 	CSmartPointer<IEntityFunctionPrivilege> pFuncPrivilege = pFunc.ConvertCase<IEntityFunctionPrivilege>();
 	if (pFuncPrivilege == NULL)
@@ -278,11 +274,6 @@ unsigned int CHealthManagerFSM::s6_on_event(FSMEvent* pEvt)
 			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("un-display blue screen %d",eErr);
 			if (m_stateBeforeMaintain == HM_FSM_STATE_IDLE)
 			{
-				ErrorCodeEnum eErr = GetEntityBase()->GetFunction()->SetSysVar("RunState","O");
-				if (eErr != Error_Succeed)
-				{
-					DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("set RunState O failed (%d).",eErr);
-				}
 			}
 			ret = m_preFsmState;
 		}
@@ -328,25 +319,6 @@ unsigned int CHealthManagerFSM::s11_on_event(FSMEvent* pEvt)
 	return ret;
 }
 
-int CHealthManagerFSM::WaitDeamonFinish()
-{
-	int count = 0;
-	while(1)//max waiting time
-	{
-
-		count++;
-		//query if update deamon process is started oiltmp
-		//case custody
-		//case needreboot
-		//case rollback
-		//case timeout
-		if (count > 2)
-			break;
-		//Sleep(5000);
-	}
-	return 0;
-}
-
 //0:auth suc or have already authed;1:auth failed;
 int CHealthManagerFSM::AccessAuthDoWork()
 {

+ 0 - 15
Module/mod_healthmanager/HealthManagerFSM.h

@@ -159,9 +159,6 @@ public:
 
 	ErrorCodeEnum Initial();
 
-	//¸Ãº¯Êý½¨Òé·ÏÆú
-	int WaitDeamonFinish();
-
 	int AccessAuthDoWork();
 	void SetVtmLoadResult(int bResult);
 	bool GetAccessAuthFlag(){return m_iAccessAuth == VtmLoad_AccessAuth_Suc;}
@@ -230,18 +227,6 @@ private:
 	CAutoArray<SP::Module::Net::NetworkAdapterItem> m_netList;
 };
 
-struct WaitDeamonFinishTask : public ITaskSp
-{
-	CHealthManagerFSM* fsm;
-	WaitDeamonFinishTask(CHealthManagerFSM* f) : fsm(f) {}
-	void Process()
-	{
-		LOG_FUNCTION();
-		FSMEvent *e = new FSMEvent(USER_EVT_WAIT_DEAMON_FINISHED);
-		e->param1 = fsm->WaitDeamonFinish();
-		fsm->PostEventFIFO(e);
-	}
-};
 
 struct AccessAuthTask : public ITaskSp
 {

+ 40 - 68
Module/mod_healthmanager/mod_healthmanager.cpp

@@ -256,7 +256,8 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 		ErrorCodeEnum eErrCode;
 		eErrCode = GetFunction()->GetSysVar("TerminalStage", csTermStage);
 		Dbg("OnCheckTimeTimeout::ToRestartByCenterSetting to get termstage %s", csTermStage.GetData());
-		if (m_bInMainPage || csTermStage.Compare("A"))
+		//oilyang@20250313 in Main page('UIState' is 'M') or TerminalStage is (NOT 'S') AND (NOT 'A'),that is in close page which caused by terminal app
+		if (CheckUIStateIsM() || (!CheckUIStateIsM() && csTermStage.Compare("S") != 0 && csTermStage.Compare("A") != 0) )
 		{
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("THE key CenterSetting updated,we must restart framework right now.");
 			m_fsm.QuitFrameworkAndSaveInfo(RebootTrigger_Resource, RebootWay_Framework);
@@ -299,9 +300,12 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 		//2、have ever enter main page OR 
 		if (!m_bSayIdle)
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_fsm.GetAccessAuthFlag():%d, m_bEnterMainPageEver:%d, m_bInMainPage:%d", m_fsm.GetAccessAuthFlag()
-				, m_bEnterMainPageEver, m_bInMainPage);
-		//oilyang@20241230 check accessauth flag AND if in Main page now or ever
-		if (m_fsm.GetAccessAuthFlag() && (m_bEnterMainPageEver || (!m_bEnterMainPageEver && m_bInMainPage)))
+				, m_bEnterMainPageEver, CheckUIStateIsM());
+		//oilyang@20241230 check accessauth flag AND if in Main page ever
+		//oilyang@20250313 "Main page ever" has two scenes
+		//1. have enter main page ever,that is "m_bEnterMainPageEver is true"
+		//2. healthmanager have been lost at some point in the past,we check the "UIState" value if 'M'
+		if (m_fsm.GetAccessAuthFlag() && (m_bEnterMainPageEver || (!m_bEnterMainPageEver && CheckUIStateIsM())))
 		{
 			iCheckGuardian = CheckGuardianIsRun(true);
 			if (!m_bSayIdle)
@@ -313,8 +317,7 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 				{
 					if (m_pfUpgradeRestart != NULL)
 					{
-						eErr = m_pfUpgradeRestart(3, 0);
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("healthmanager say idle,so tell the guardian.%d", eErr);
+						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("healthmanager say idle,so tell the guardian.%d", m_pfUpgradeRestart(3, 0));
 					}
 				}
 				CSimpleStringA csRunCfgPath(""), csStartTime("");
@@ -348,9 +351,10 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 				if (m_pfShake != NULL)
 				{
 					WorkStateEnum eShake;
-					ErrorCodeEnum eErrShake = m_pfShake(eShake);
+					m_pfShake(eShake);
+					m_ullGuardShakeCount++;
 				}
-				if (m_guardianCount == 0)//in the next timeout(1 minute later than before,to restart guardian)
+				if (m_ullGuardShakeCount == 2)//in the next timeout(1 minute later than before,to restart guardian)
 				{
 					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("准备重新启动guardian");
 					bool bStop = StopGuardian();
@@ -360,7 +364,10 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("restart guardian %d", bGuardian);
 					}
 				}
-				m_guardianCount--;
+				else if (m_ullGuardShakeCount % 5 == 0)
+				{
+					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("the %d shake hand(guardian)", m_ullGuardShakeCount);
+				}
 			}
 			else if (iCheckGuardian == -1)
 			{
@@ -378,17 +385,13 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 				{
 					if (m_pfUpgradeRestart != NULL)
 					{
-						eErr = m_pfUpgradeRestart(5, 0);
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("auth suc,so tell the guardian.%d", eErr);
+						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("auth suc,so tell the guardian.%d", m_pfUpgradeRestart(5, 0));
 					}
 				}
 			}
 		}
 	}
-	else
-	{
-		m_bSayIdle = false;
-	}
+
 	//oilyang@20210331 if accessauth told me not to restart framework,so that it can have time to retry
 	if (!m_bNeedGuardianRestart)
 	{
@@ -397,8 +400,7 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 			if (m_pfShake != NULL)
 			{
 				WorkStateEnum eShake;
-				eErr = m_pfShake(eShake);
-				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("accessauth told me not to restart framework,so that it can have time to retry.%d", eErr);
+				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("accessauth told me not to restart framework,so that it can have time to retry.%d", m_pfShake(eShake));
 			}
 		}
 	}
@@ -886,14 +888,14 @@ bool CHealthManagerEntity::DoRestart()
 		if (m_bNeedGuardian)
 		{
 			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("to tell guardian framework is starting.");
-			eErr = m_pfUpgradeRestart(4, 0);//tell guardian framework is starting...oilyang 20150514
-			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of framework is starting.%d", eErr);
+			//tell guardian framework is starting...oilyang 20150514
+			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of framework is starting.%d", m_pfUpgradeRestart(4, 0));
 		}
 		else
 		{
 			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("need Upgrade guardian only");
-			eErr = m_pfUpgradeRestart(6, 0);//tell guardian framework we need Upgrade !!!Only!!! oilyang@20211221
-			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of need Upgrade guardian only.%d", eErr);
+			//tell guardian framework we need Upgrade !!!Only!!! oilyang@20211221
+			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of need Upgrade guardian only.%d", m_pfUpgradeRestart(6, 0));
 		}
 	}
 
@@ -1417,9 +1419,8 @@ void CHealthManagerEntity::WarnAndRestartFunc(RebootTriggerEnum eTrigger, Reboot
 		if (CheckGuardianIsRun(true) > 0)
 		{
 			ErrorCodeEnum eErr = Error_Unexpect;
-			eErr = m_pfUpgradeRestart(1, 0);
 			//Dbg("to tell guardian framework is restarting.%d",eErr);
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("to tell guardian framework is restarting.%d", eErr);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("to tell guardian framework is restarting.%d", m_pfUpgradeRestart(1, 0));
 		}
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("framework shutdown in restart task");
 	}
@@ -1512,16 +1513,7 @@ void CHealthManagerEntity::OnEntityStateHook(const char* pszEntityName, const ch
 				m_modRunInfo[pszEntityName].bAbnormalBusy = true;
 				m_modRunInfo[pszEntityName].abnormalCount++;
 				EntityLostProcTask* task;
-				//oiltmp@20240415 to be delete after x months
-				if (_strnicmp("CardIssuer", pszEntityName, strlen(pszEntityName)) == 0)
-				{
-					if (m_sysStaticInfo.strMachineType.Compare("RVC.CardStore") == 0 || m_sysStaticInfo.strMachineType.Compare("RVC.CardPrinter") == 0)
-						task = new EntityLostProcTask(this, "CardIssuerStore");
-					else
-						task = new EntityLostProcTask(this, "CardIssuerStand");
-				}
-				else
-					task = new EntityLostProcTask(this, pszEntityName);
+				task = new EntityLostProcTask(this, pszEntityName);
 				GetFunction()->PostThreadPoolTask(task);
 			}
 		}
@@ -1579,28 +1571,12 @@ void CHealthManagerEntity::OnAnswer(CSmartPointer<IAsynWaitSp> pAsynWaitSp)
 	new_entry->state = entry->state;
 
 	if (new_entry->op == Test_ShakeHand && new_entry->ErrorResult != Error_Succeed) {
-		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("shake hand %s turns out %s, entity state: %s, bBusy:%d", (LPCTSTR)new_entry->EntityName
-			, SpStrError(new_entry->ErrorResult), SpStrEntityState((EntityStateEnum)new_entry->state), m_modRunInfo[new_entry->EntityName].bAbnormalBusy);
 		if (!m_modRunInfo[new_entry->EntityName].bAbnormalBusy)
 		{
-			//oiltmp@20240415 to be delete after x months
-			if (_strnicmp("CardIssuer", new_entry->EntityName.GetData(), new_entry->EntityName.GetLength()) == 0)
-			{
-				if (m_sysStaticInfo.strMachineType.Compare("RVC.CardStore") == 0 || m_sysStaticInfo.strMachineType.Compare("RVC.CardPrinter") == 0)
-				{
-					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("ExceptionErrorProcess CardIssuerStore");
-					ExceptionErrorProcess("CardIssuerStore", new_entry->ErrorResult);
-				}
-				else
-				{
-					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("ExceptionErrorProcess CardIssuerStand");
-					ExceptionErrorProcess("CardIssuerStand", new_entry->ErrorResult);
-				}
-			}
-			else
-				ExceptionErrorProcess((const char*)new_entry->EntityName, new_entry->ErrorResult);
+			ExceptionErrorProcess((const char*)new_entry->EntityName, new_entry->ErrorResult);
 			std::map<std::string, std::string> msgInfo;
 			msgInfo["EntityName"] = new_entry->EntityName.GetData();
+			msgInfo["EntityState"] = SpStrEntityState((EntityStateEnum)new_entry->state);
 			msgInfo["SelfTestReturnCode"] = SpStrError(new_entry->ErrorResult);
 			std::pair<bool, std::string> strResult;
 			strResult = generateJsonStr(msgInfo);
@@ -1685,22 +1661,7 @@ ErrorCodeEnum CHealthManagerEntity::CheckEntity(const char* pszEntityName, Entit
 	CSmartPointer<IEntityFunctionPrivilege> pFuncPrivilege = pFunc.ConvertCase<IEntityFunctionPrivilege>();
 	CSmartPointer<IAsynWaitSp> spWait;
 	ErrorCodeEnum errCode;
-	//oiltmp@20240415 to be delete after x months
-	if (_strnicmp("CardIssuer", pszEntityName, strlen(pszEntityName)) == 0)
-	{
-		if (m_sysStaticInfo.strMachineType.Compare("RVC.CardStore") == 0 || m_sysStaticInfo.strMachineType.Compare("RVC.CardPrinter") == 0)
-		{
-			errCode = pFuncPrivilege->TestEntity("CardIssuerStore", eTestType, spWait);
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("TestEntity CardIssuerStore");
-		}
-		else
-		{
-			errCode = pFuncPrivilege->TestEntity("CardIssuerStand", eTestType, spWait);
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("TestEntity CardIssuerStand");
-		}
-	}
-	else
-		errCode = pFuncPrivilege->TestEntity(pszEntityName, eTestType, spWait);
+	errCode = pFuncPrivilege->TestEntity(pszEntityName, eTestType, spWait);
 
 	if (errCode == Error_Succeed)
 	{
@@ -1745,7 +1706,8 @@ void CHealthManagerEntity::OnSelfCheckTimeout()
 		else if (tmpTerminalStage.Compare("A") != 0)
 		{
 			//the hardward entity and some other entity no need to test
-			if (_strnicmp("PinPad", pszEntityName, strlen("PinPad")) == 0 || _strnicmp("CardIssuer", pszEntityName, strlen("CardIssuer")) == 0
+			if (_strnicmp("PinPad", pszEntityName, strlen("PinPad")) == 0 
+				|| _strnicmp("CardIssuerStand", pszEntityName, strlen("CardIssuerStand")) == 0 || _strnicmp("CardIssuerStore", pszEntityName, strlen("CardIssuerStore")) == 0
 				|| _strnicmp("ContactlessCard", pszEntityName, strlen("ContactlessCard")) == 0
 				|| _strnicmp("IDCertificate", pszEntityName, strlen("IDCertificate")) == 0
 				|| _strnicmp("gpio", pszEntityName, strlen("gpio")) == 0 || _strnicmp("HSPScanner", pszEntityName, strlen("HSPScanner")) == 0
@@ -1789,6 +1751,16 @@ void CHealthManagerEntity::EntityLostProc(CSimpleStringA entityName)
 	}
 	m_modRunInfo[entityName].bAbnormalBusy = false;
 }
+bool CHealthManagerEntity::CheckUIStateIsM()
+{
+	if (m_bInMainPage)
+		return true;
+	CSimpleStringA uiState(true);
+	if (GetFunction()->GetSysVar("UIState", uiState) != Error_Succeed || uiState.Compare("M") != 0)
+		return false;
+	else
+		return true;
+}
 SP_BEGIN_ENTITY_MAP()
 	SP_ENTITY(CHealthManagerEntity)
 SP_END_ENTITY_MAP()

+ 8 - 7
Module/mod_healthmanager/mod_healthmanager.h

@@ -19,12 +19,12 @@ using namespace UpgradeManager;
 
 
 #include "GuardianBase.h"
-typedef ErrorCodeEnum (*pfShakeHands)(WorkStateEnum &eState);
+typedef int (*pfShakeHands)(WorkStateEnum &eState);
 
-typedef ErrorCodeEnum (*pfPushUpdateTask)(const char *pszPackName);
+typedef int (*pfPushUpdateTask)(const char *pszPackName);
 typedef bool (*pfIsInstalling)();
-typedef ErrorCodeEnum (*pfUpgradeRestart)(const DWORD dwParam1,const DWORD dwParam2);
-typedef ErrorCodeEnum (*pfFrameworkQuit)(RebootTriggerEnum eReason);
+typedef int (*pfUpgradeRestart)(const DWORD dwParam1,const DWORD dwParam2);
+typedef int (*pfFrameworkQuit)(RebootTriggerEnum eReason);
 
 #define DEPLOYSTATE_NOTINIT 0
 #define DEPLOYSTATE_DONE 1
@@ -85,7 +85,7 @@ public:
 	CHealthManagerEntity() :
 		m_bWaitRestartPC(false)
 		, m_bScreenLock(false)
-		, m_bSayIdle(false), m_bGuardianRun(false), m_guardianCount(1)
+		, m_bSayIdle(false), m_bGuardianRun(false), m_ullGuardShakeCount(0)
 		, m_menuChoice(""), m_menuPre(""), m_netState("N")
 		, m_bInMainPage(false), m_stopSelfCheck(0)
 		, m_bEnterMainPageEver(false),m_bHaveThrowMainPage(false)
@@ -263,14 +263,14 @@ private:
 		, m_uuidRemoteController, m_uuidGUIConsole, m_uuidHeartBeat, m_uuidIE, m_uuidCenterS, m_uuidVtmLoader;
 	CUUID m_uuidPublic, m_uuid4SIPPhone;
 	int m_stopSelfCheck;
-	int m_restartHour, m_restartMinute, m_lastHour, m_guardianCount, m_maxAbnormalTimes, m_rebootHourBegin, m_rebootHourEnd;;
+	int m_restartHour, m_restartMinute, m_lastHour, m_maxAbnormalTimes, m_rebootHourBegin, m_rebootHourEnd;;
 	bool m_bWaitRestartPC, m_bScreenLock, m_bSayIdle
 		, m_bGuardianRun
 		, m_bInMainPage, m_bEnterMainPageEver, m_bHaveThrowMainPage, m_bToRestartByCenterSetting;
 	bool m_bNeedAuthRetry/*需要重试准入*/, m_bNeedGuardianRestart/*需要重启*/, m_bNeedGuardian;
 	DWORD m_dwTimeOfAuthSuc;
 	int m_maxWaitMainpageTime;
-	ULONGLONG m_OSRunTicks;
+	ULONGLONG m_OSRunTicks, m_ullGuardShakeCount;
 
 	CSimpleStringA m_menuChoice,m_currentVer,m_menuPre,m_netState, m_versionEx;
 	map<CSimpleStringA,ModuleRunInfo> m_modRunInfo;
@@ -299,6 +299,7 @@ private:
 	bool IsTestMode();
 
 	void ToCalcRebootHourAndMinute(int restartBegin, int restartEnd);
+	bool CheckUIStateIsM();
 };
 #endif // __MOD_HEALTHMANAGER_H
 

+ 1 - 10
Module/mod_vtmloader/VtmLoaderFSM.cpp

@@ -695,16 +695,7 @@ void CVtmLoaderFSM::s3_on_entry()
 		{
 		case LOADOPT_IGNORE:
 		{
-			//oiltmp@20240415 to be delete after x months
-			if (_strnicmp("CardIssuer", it->first, it->first.GetLength()) == 0)
-			{
-				if (m_sysInfo.strMachineType.Compare("RVC.CardStore") == 0 || m_sysInfo.strMachineType.Compare("RVC.CardPrinter") == 0)
-					pFuncPrivilege->StartEntity("CardIssuerStore", NULL, spWait);
-				else
-					pFuncPrivilege->StartEntity("CardIssuerStand", NULL, spWait);
-			}
-			else
-				pFuncPrivilege->StartEntity(it->first, NULL, spWait);
+			pFuncPrivilege->StartEntity(it->first, NULL, spWait);
 			if (spWait != NULL)
 				spWait->WaitAnswer(MAX_IGNORE_TIMEOUT);
 			it->second.eResult = LOADING_SUCCEED;

+ 1 - 0
Tool/GuardianBase/CMakeLists.txt

@@ -11,6 +11,7 @@ add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
 target_include_directories(${MODULE_NAME} PRIVATE
     ${RVC_TOOLKIT_INCLUDE_DIR}
     ${RVC_WINPR_INCLUDE_DIR}
+    ${OTHER_LIB_BASE_DIR}/liblog4rvcother
 )
 
 target_compile_definitions(${MODULE_NAME} PUBLIC "GUARDIANBASE_EXPORTS")

+ 16 - 12
Tool/GuardianBase/GuardianBase.cpp

@@ -30,7 +30,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
-
+#include "log4rvcother.h"
 
 #define DEFAULT_PORT "30005"
 const int default_port = 30005;
@@ -48,12 +48,12 @@ int GetSocket()
 	int client_socket = socket(AF_INET, SOCK_STREAM, 0);
 	if (client_socket < 0)
 	{
-		printf("Create Socket Failed!\n");
+		//LOG4VTM(ERROR, "Create Socket Failed!");
 		return -1;
 	}
 	if (bind(client_socket, (struct sockaddr*) & client_addr, sizeof(client_addr)))
 	{
-		printf("Client Bind Port Failed!\n");
+		//LOG4VTM(ERROR, "Client Bind Port Failed!");
 		return -1;
 	}
 
@@ -67,7 +67,7 @@ int GetSocket()
 	//向服务器发起连接,连接成功后client_socket代表了客户机和服务器的一个socket连接
 	if (connect(client_socket, (struct sockaddr*) & server_addr, server_addr_length) < 0)
 	{
-		printf("Can Not Connect To server!\n");
+		//LOG4VTM(ERROR, "Can Not Connect To server!");
 		return -1;
 	}
 	syslog(LOG_ERR,"after getsocket");
@@ -160,6 +160,7 @@ int GetSocket()
 }
 int SendData(GuardianInfo& info,int &sendSocket)
 {
+	//LOG4VTM(INFO, "SendData");
 #ifdef linux
 
 	openlog("gdbase",LOG_CONS|LOG_PID,LOG_LOCAL0);
@@ -168,7 +169,7 @@ int SendData(GuardianInfo& info,int &sendSocket)
 	ConnectSocket = GetSocket();
 
 	if (ConnectSocket == -1) {
-		printf("Unable to connect to server!\n");
+		//LOG4VTM(ERROR, "Unable to connect to server!" );
 		return -1;
 }
 	sendSocket = ConnectSocket;
@@ -269,9 +270,11 @@ int ShakeHands(WorkStateEnum &eState)
 	memset(pGdInfo, 0, sizeof(GuardianInfo));
 	pGdInfo->eType = GdOpShakeHand;
 	int socket = -1;
+	//LOG4VTM(INFO, "ShakeHands to SendData");
 	int eErr = SendData(*pGdInfo, socket);
 	if (eErr != 0)
 		return eErr;
+
 	char recvbuf[DATA_BUFSIZE];
 	int recvbuflen = DATA_BUFSIZE;
 	int iResult;
@@ -279,10 +282,11 @@ int ShakeHands(WorkStateEnum &eState)
     do {
 
         iResult = recv(socket, recvbuf, recvbuflen, 0);
-        if ( iResult > 0 )
+		//LOG4VTM(INFO, "ShakeHands to recv:" << iResult << "recvbuflen:" << recvbuflen << "recvbuf:" << recvbuf);
+		if (iResult > 0)
 		{
-            //printf("Bytes received: %d\n%s\n", iResult,recvbuf);
-			switch(recvbuf[0])
+			//printf("Bytes received: %d\n%s\n", iResult,recvbuf);
+			switch (recvbuf[0])
 			{
 			case 'u':
 				eState = WorkStateUpgrading;
@@ -300,10 +304,10 @@ int ShakeHands(WorkStateEnum &eState)
 				break;
 			}
 		}
-        else if ( iResult == 0 )
-            printf("Connection closed\n");
-        else
-            printf("recv failed with error\n");
+		//else if (iResult == 0)
+		//	LOG4VTM(INFO, "Connection closed\n");
+		//else
+		//	LOG4VTM(ERROR, "recv failed with error:" << iResult);
 
     } while( iResult > 0 );