Explorar o código

!7 update page and modify guiconsole's returns.

chenliangyu hai 1 ano
pai
achega
08fc896e59

+ 2 - 0
Module/mod_chromium/mod_chromium.cpp

@@ -162,6 +162,7 @@ namespace Chromium {
 	{
 		auto openCommonPageThread = [this](SpReqAnsContext<ChromiumSrv_OpenCommonPage_Req, ChromiumSrv_OpenCommonPage_Ans>::Pointer ctx)
 		{
+			boost::unique_lock<boost::mutex> commonPageLock(m_commonPageLock);
 			std::string strTitle = ctx->Req.title.GetData();
 			std::string strUrl = ctx->Req.url.GetData();
 			int width = ctx->Req.width;
@@ -201,6 +202,7 @@ namespace Chromium {
 	{
 		auto closePage = [this](SpReqAnsContext<ChromiumSrv_CloseCommonPage_Req, ChromiumSrv_CloseCommonPage_Ans>::Pointer ctx)
 		{
+			boost::unique_lock<boost::mutex> commonPageLock(m_commonPageLock);
 			std::string strName = ctx->Req.title.GetData();
 #ifdef RVC_OS_WIN
 			CModTools::get_mutable_instance().stopCommonPage(strName);

+ 1 - 0
Module/mod_chromium/mod_chromium.h

@@ -133,6 +133,7 @@ namespace Chromium {
 		bool m_withMin, m_withClose, m_installMode;
 		boost::container::deque<SYS_EVENT_PARAM> m_eventArr;
 		boost::mutex m_eventContorl, m_eventConditionMu; //sysvarEvent变化时阻塞修改
+		boost::mutex m_commonPageLock;//
 		boost::condition_variable_any m_eventCondition;//满足有数据时激活线程
 		CAutoArray<CSimpleStringA> m_strArgs;
 		CSmartPointer<ITransactionContext> m_pTransactionContext;

+ 3 - 0
Module/mod_guiconsole/mod_GuiConsole.h

@@ -99,6 +99,8 @@ private:
 	virtual void OnCloseConnection(const char* pszCallerEntity, const char* pszServiceEntity) {}
 	virtual void OnUserStateHook(const char* pszEntityName, DWORD dwState, DWORD dwLastState) {}
 
+	void updateStartupEntity();
+
 
 public:
 	//Async
@@ -132,5 +134,6 @@ private:
 	int m_longestEntityMonitor, m_leastEntityMonitor;
 	bool m_entityMonitor_shouldwork;
 	std::chrono::steady_clock::time_point m_entityMonitorlast_notify_time;
+	std::vector<std::string> m_startupEntityArr;
 };
 

+ 88 - 30
Module/mod_guiconsole/mod_guiconsole.cpp

@@ -109,7 +109,7 @@ void CGUIConsoleEntity::OnTimeout(DWORD dwTimerID)
 std::pair<DWORD, std::string> CGUIConsoleEntity::openLogSender(SpReqAnsContext<GUIConsoleService_OpenLogSender_Req, GUIConsoleService_OpenLogSender_Ans>::Pointer ctx)
 {
 	if ((__int64)m_logSubID != 0 && m_isOpenLogSender == true)
-		return std::make_pair(true, "");//should not open again
+		return std::make_pair(ErrorCodeEnum::Error_Succeed, "");//should not open again
 
 
 	if ((__int64)m_logSubID != 0)
@@ -145,7 +145,7 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::closeLogSender()
 {
 	if ((__int64)m_logSubID == 0 && m_isOpenLogSender == false)
 	{
-		return std::make_pair(true, "");//should not close again
+		return std::make_pair(ErrorCodeEnum::Error_Succeed, "");//should not close again
 	}
 
 
@@ -171,7 +171,7 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::closeLogSender()
 std::pair<DWORD, std::string> CGUIConsoleEntity::openEntityMonitor(SpReqAnsContext<GUIConsoleService_OpenEntityMonitor_Req, GUIConsoleService_OpenEntityMonitor_Ans>::Pointer ctx)
 {
 	if(m_isOpenEntityMonitor && thread_entityMonitor != NULL)
-		return std::make_pair(true, "");//should not open again
+		return std::make_pair(ErrorCodeEnum::Error_Succeed, "");//should not open again
 
 
 	m_isOpenEntityMonitor = true;
@@ -260,7 +260,7 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::openEntityMonitor(SpReqAnsConte
 std::pair<DWORD, std::string> CGUIConsoleEntity::closeEntityMonitor()
 {
 	if (m_isOpenEntityMonitor == false && thread_entityMonitor == NULL)
-		return std::make_pair(true, "");//should not close again
+		return std::make_pair(ErrorCodeEnum::Error_Succeed, "");//should not close again
 
 	m_isOpenEntityMonitor = false;
 
@@ -295,7 +295,7 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::closeEntityMonitor()
 std::pair<DWORD, std::string> CGUIConsoleEntity::openPerformanceSender(SpReqAnsContext<GUIConsoleService_OpenPerformanceSender_Req, GUIConsoleService_OpenPerformanceSender_Ans>::Pointer ctx)
 {
 	if (m_isOpenPerformanceSender && thread_performanceSend != NULL)
-		return std::make_pair(true, "");//should not open again
+		return std::make_pair(ErrorCodeEnum::Error_Succeed, "");//should not open again
 
 
 	m_isOpenPerformanceSender = true;
@@ -355,7 +355,7 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::openPerformanceSender(SpReqAnsC
 std::pair<DWORD, std::string> CGUIConsoleEntity::closePerformanceSender()
 {
 	if (m_isOpenPerformanceSender == false && thread_performanceSend == NULL)
-		return std::make_pair(true, "");//should not close again
+		return std::make_pair(ErrorCodeEnum::Error_Succeed, "");//should not close again
 
 
 	m_isOpenPerformanceSender = false;
@@ -486,6 +486,50 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::VTM_controlEntity(SpReqAnsConte
 	return std::pair<DWORD, std::string>(ErrorCodeEnum::Error_Succeed, "");
 }
 
+void CGUIConsoleEntity::updateStartupEntity()
+{
+	if (m_startupEntityArr.size() != 0)
+		return;
+
+	CSystemRunInfo sysRunInfo;
+	if (ErrorCodeEnum::Error_Succeed !=  GetFunction()->GetSystemRunInfo(sysRunInfo))
+		return;
+
+	if (!sysRunInfo.bBasicCfgWork)
+		return;
+
+
+	CSystemStaticInfo m_terminalInfo;
+	if (ErrorCodeEnum::Error_Succeed != GetFunction()->GetSystemStaticInfo(m_terminalInfo))
+		return;
+
+
+	CSmartPointer<IConfigInfo> spConfigCen, spRunCfg;
+	GetFunction()->OpenConfig(Config_CenterSetting, spConfigCen);
+	CSimpleStringA csCoreBootList(true), csSafeLoadList(true), csOperatingList(true), csKeyCB("CoreBootList."), csKeySL("SafeLoadList."), csKeyOp("OperatingList.");
+	spConfigCen->ReadConfigValue("VtmLoader", (csKeyCB + m_terminalInfo.strMachineType).GetData(), csCoreBootList);
+	spConfigCen->ReadConfigValue("VtmLoader", (csKeySL + m_terminalInfo.strMachineType).GetData(), csSafeLoadList);
+	spConfigCen->ReadConfigValue("VtmLoader", (csKeyOp + m_terminalInfo.strMachineType).GetData(), csOperatingList);
+	//"GuiConsole|Chromium|VtmLoader|";
+	int nEntityCount = 3;
+	auto booList =  csCoreBootList.Split('|');
+	booList.Append(csSafeLoadList.Split('|'));
+	booList.Append(csOperatingList.Split('|'));
+
+	if (booList.GetCount() < 8)
+		return;
+	m_startupEntityArr.push_back("VtmLoader");
+	m_startupEntityArr.push_back("Chromium");
+	m_startupEntityArr.push_back("GUIConsole");
+	for (int i = 0; i < booList.GetCount(); i++)
+	{
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", booList[i].GetData());
+		m_startupEntityArr.push_back(booList[i].GetData());
+	}
+		
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Get effect entityNum:%d", m_startupEntityArr.size());
+}
+
 std::pair<DWORD, std::string> CGUIConsoleEntity::GetBasicInformation(SpReqAnsContext<GUIConsoleService_GetBasicInformation_Req, GUIConsoleService_GetBasicInformation_Ans>::Pointer ctx)
 {
 	//get idle entityNum;
@@ -544,6 +588,9 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::GetBasicInformation(SpReqAnsCon
 	ctx->Ans.basicconfig_status = sysRunInfo.bBasicCfgWork;
 	ctx->Ans.errmsg_status = sysRunInfo.bErrCfgWork;
 
+	if (m_startupEntityArr.size() > 0)
+		ctx->Ans.total_entityNum = m_startupEntityArr.size();
+
 	return std::pair<DWORD, std::string>(ErrorCodeEnum::Error_Succeed, "");
 }
 
@@ -1071,16 +1118,6 @@ ErrorCodeEnum CGUIConsoleEntity::GetEntity(const char* entity_name, EntityEntry&
 void CGUIConsoleEntity::PostEntityVary(const char* entity_name)
 {
 	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("PostEntityVary %s ", entity_name);
-	/*
-	EntityEntry ret;
-	DWORD rc;
-	if (ErrorCodeEnum::Error_Succeed != (rc = GetEntity(entity_name, ret)))
-	{
-		LogWarn(SeverityLevelEnum::Severity_Middle, (ErrorCodeEnum)rc, WARN_GUICONSOLE_GETENTITY_FAILED
-			, CSimpleStringA::Format("PostEntityVary-GetEntity failed, reason:%d", rc).GetData());
-		return;
-	}
-	*/
 
 	m_entityMonitor_shouldwork = true;
 
@@ -1098,28 +1135,49 @@ void CGUIConsoleEntity::PostEntityVary(const char* entity_name)
 
 std::pair<DWORD, std::string> CGUIConsoleEntity::GetAllEntity(CAutoArray<EntityEntry>& Entities)
 {
-	CSmartPointer<IEntityFunction> spFunc = GetFunction();
-	CAutoArray<CSimpleStringA> strEntityNames;
-	CAutoArray<WORD> wDevelopIDs;
-	ErrorCodeEnum Error = spFunc->GetAllRegistedEntity(strEntityNames, wDevelopIDs);
-	if (Error_Succeed != Error)
+	CSimpleString ErrInfo;
+	ErrorCodeEnum Error = ErrorCodeEnum::Error_Succeed;
+	updateStartupEntity();
+	if (m_startupEntityArr.size() != 0)
 	{
-		LogWarn(SeverityLevelEnum::Severity_Middle, Error, WARN_GUICONSOLE_GETALLENTITY_REGISTERED, "GetAllEntity-GetAllRegistedEntity failed");
-		return std::make_pair(WARN_GUICONSOLE_GETALLENTITY_REGISTERED, "");
+		ErrInfo = CSimpleStringA::Format("From EntityArr size:%d, ", m_startupEntityArr.size());
+		Entities.Init(m_startupEntityArr.size());
+		for (int i = 0; i < m_startupEntityArr.size(); i++)
+		{
+			Error = GetEntity(m_startupEntityArr[i].c_str(), Entities[i]);
+			if (Error != Error_Succeed)
+				ErrInfo += CSimpleString::Format("|%s %d|", m_startupEntityArr[i].c_str(), Error);
+		}
 	}
-	
-	CSimpleString ErrInfo;
-	Entities.Init(strEntityNames.GetCount());
-	for (int i = 0; i < strEntityNames.GetCount(); ++i) {
-		Error = GetEntity(strEntityNames[i], Entities[i]);
-		if (Error != Error_Succeed)
-			ErrInfo += CSimpleString::Format("|%s %d|", strEntityNames[i].GetData(), Error);
+	else
+	{
+		
+		CSmartPointer<IEntityFunction> spFunc = GetFunction();
+		CAutoArray<CSimpleStringA> strEntityNames;
+		CAutoArray<WORD> wDevelopIDs;
+		Error = spFunc->GetAllRegistedEntity(strEntityNames, wDevelopIDs);
+		ErrInfo = CSimpleStringA::Format("From GetAllRegistedEntity size:%d, ", strEntityNames.GetCount());
+		if (Error_Succeed != Error)
+		{
+			LogWarn(SeverityLevelEnum::Severity_Middle, Error, WARN_GUICONSOLE_GETALLENTITY_REGISTERED, "GetAllEntity-GetAllRegistedEntity failed");
+			return std::make_pair(WARN_GUICONSOLE_GETALLENTITY_REGISTERED, "");
+		}
+
+		Entities.Init(strEntityNames.GetCount());
+		for (int i = 0; i < strEntityNames.GetCount(); ++i) {
+			Error = GetEntity(strEntityNames[i], Entities[i]);
+			if (Error != Error_Succeed)
+				ErrInfo += CSimpleString::Format("|%s %d|", strEntityNames[i].GetData(), Error);
+		}
 	}
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(ErrInfo.GetData());
+	/*
 	if (ErrInfo.GetLength() > 0)
 	{
 		LogWarn(SeverityLevelEnum::Severity_Middle, Error, WARN_GUICONSOLE_GETALLENTITY_GETENTITY, ErrInfo.GetData());
 		return std::make_pair(WARN_GUICONSOLE_GETALLENTITY_GETENTITY, "");
 	}
+	*/
 	return std::make_pair(ErrorCodeEnum::Error_Succeed, "");
 }
 

+ 22 - 14
addin/res/ManagerDesktop/startPage.html

@@ -15,9 +15,9 @@
 				box-shadow: inset 0px 0px 4px 0px rgba(0,0,0,0.5);
 			}
 			.start_page .logo{
-				height: 20px;
+				height: 25px;
     			margin: 10px 30px;
-				padding: 13px 0px;
+				padding: 10px 0px;
 			}
 			h3{
 				font-family: PingFangSC-Semibold;
@@ -30,7 +30,7 @@
 			}
 			.entity_list{
 				padding: 15px 30px;
-				height: 750px;
+				height: 800px;
 				overflow: auto;
 			}
 			.entity_list li{
@@ -85,26 +85,30 @@
 				font-family: HYQiHei-EES;
 				font-size: 10px;
 				color: #272727;
+				height: 35px;
+				line-height: 35px;
 				font-weight: 400;
-				margin-left: 6px;
+				text-align: center;
+				box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.2);
 			}
 			@media screen and (max-width:1300px) {
 				.entity_list{
-					height: 860px;
+					height: 830px;
 				}
 			}
 			@media screen and (max-width:1000px) {
 				.entity_list{
-					height: 410px;
+					height: 400px;
 				}
 			}
 			
 		</style>
 	</head>
 	<body class="start_page">
+		<p class="sub" id="deviceInfo"></p>
+
 		<div class="logo">
 			<img height="100%" src="./images/logo_cmb.png" />
-			<span class="sub" id="deviceInfo"></span>
 		</div>
 		<h3 id="entityNum"></h3>
 		<ul class="entity_list" id="logList">
@@ -142,16 +146,20 @@
 			req.reserved2 = 0;
 			req.reserved3 = '';
 			GUIConsoleService.GetBasicInformation(req,function(ret){
-				// console.log('GetBasicInformation---',ret)
 				if(ret.errorCode===0){
 					let data = JSON.parse(ret['{e12a3dc0-3a0b-47c4-a8c3-75190a42ae68}'])
-					// console.log('GetBasicInformation---data',data)
 					document.getElementById('entityNum').innerHTML = '正在启动('+data.Idle_entityNum+'/'+data.total_entityNum+')'
-					// document.getElementById('terminalNo').innerHTML = data.terminalNo
-					// document.getElementById('versionNo').innerHTML = 'V'+data.versionNo
-					// document.getElementById('env').innerHTML = data.machineType+'-'+data.Env+'ver'
-					document.getElementById('deviceInfo').innerHTML = data.machineType+'-'+data.Env+'ver.['+data.terminalNo+' V'+data.versionNo+']'
-					document.getElementById('pageTitle').textContent ='.'// data.machineType+'-'+data.Env+'ver.['+data.terminalNo+' V'+data.versionNo+']'
+						// WIN标题栏
+					let env = data.Env?'-'+data.Env+'ver.' :' '
+					if(navigator.userAgent.toLowerCase().indexOf('windows')>-1){
+						$('#logList').css({height:'375px'})
+						document.getElementById('deviceInfo').innerHTML = data.machineType+env+'['+data.terminalNo+' V'+data.versionNo+']'
+					}else{
+						// UOS标题栏
+						$('#deviceInfo').hide()
+						document.getElementById('pageTitle').textContent = data.machineType+env+'['+data.terminalNo+' V'+data.versionNo+']'
+					}
+					
 				}
 			})
 		}