Browse Source

Merge branch 'ST2' into T24ND051_base_ST2

80274480 1 year ago
parent
commit
b79f800ad4

+ 13 - 0
Framework/RvcLogSdk/log_api.cpp

@@ -200,6 +200,19 @@ if (result->statusCode / 100 == 2)
 
 */
 
+int LOG_OS_TestLogPost(const char* url, const char* body)
+{
+	HttpClientResponseResult result;
+	HttpClientRequestConfig config(HttpRequestMethod::POST, url);
+
+	std::string str((const char*)body);
+	config.SetJsonBody(str.c_str());
+	RestfulClient client = RestfulClient::getInstance();
+	config.PreDo();
+	client.Do(&config, &result);
+	return 0;
+}
+
 int LOG_OS_HttpPost(const char* url,
 	char** header_array,
 	int header_count,

+ 2 - 0
Framework/RvcLogSdk/log_api.h

@@ -29,5 +29,7 @@ post_log_result * post_logs(const char *endpoint, const char * accesskeyId, cons
 
 void post_log_result_destroy(post_log_result * result);
 
+int LOG_OS_TestLogPost(const char* url, const char* body);
+
 LOG_CPP_END
 #endif

+ 8 - 2
Framework/RvcLogSdk/log_db.cpp

@@ -229,9 +229,11 @@ int open_db(log_db_manager * manager) {
 				COLUMN_Encrypt + " INTEGER DEFAULT 0," +
 				COLUMN_Content + " TEXT" +
 				");");
+			
 			int CTRet = manager->db->execDML(strCreateTable.c_str());
 			//aos_debug_log((LB, "create log table result %d, db name %s", CTRet, name));
 		}
+		//manager->db->execDML("PRAGMA synchronous = FULL;");
 	}
 	catch (CppSQLite3Exception& e)
 	{
@@ -575,7 +577,7 @@ log_group_builder* db_read_table_last_logs(log_db_manager* manager, int count) {
 			//if can not find, try to get LOG_TYPE_SYS_SKYEYE logs
 			std::string searchSys= "select * from ";
 			searchSys.append(manager->table_name);
-			searchSys.append(" where " + COLUMN_Status + " != ").append(strStatus).append(strStatus).append(" AND ").append(COLUMN_Type).append("=").append(std::to_string(LOG_TYPE_SYS_SKYEYE));
+			searchSys.append(" where " + COLUMN_Status + " != ").append(strStatus).append(" AND ").append(COLUMN_Type).append("=").append(std::to_string(LOG_TYPE_SYS_SKYEYE));
 			searchSys.append(/*" order by " + COLUMN_DateTime + */" LIMIT ").append(strCount).append(";");
 			q = manager->db->execQuery(searchSys.c_str());
 		}
@@ -718,7 +720,11 @@ int db_delete_one(log_db_manager* manager, char* uuid) {
 
 	try {
 		int CTRet = manager->db->execDML(sql.c_str());
-		//aos_debug_log((LB, "db %s delete one uuid:%s log result %d", manager->file_name.c_str(), uuid, CTRet));
+		/*
+		aos_debug_log((LB, "db %s delete one uuid:%s log result %d", manager->file_name.c_str(), uuid, CTRet));
+		if (CTRet != 1)
+			MessageBox(NULL, NULL, NULL, 0);
+		*/
 	}
 	catch (CppSQLite3Exception& e)
 	{

+ 17 - 1
Framework/RvcLogSdk/log_producer_manager.c

@@ -187,6 +187,17 @@ void* log_producer_read_persistent_thread(void* param)
 
 
                         send_param = create_log_producer_send_param(config, producer_manager, lz4_buf, builder);
+                        /*
+                        int i = 0;
+                        for (i = 0; i < send_param->log_buf->n_logs; i++)
+                        {
+                            char uuid[MAX_UUID_LEN];
+                            memset(uuid, 0, MAX_UUID_LEN);
+                            memcpy(uuid, send_param->log_buf->uuid[i], MAX_UUID_LEN);
+                            send_log_data("http://127.0.0.1:9000/read_uuid", uuid);
+                        }
+                            */
+
                         producer_manager->send_param_queue[producer_manager->send_param_queue_write++ % producer_manager->send_param_queue_size] = send_param;//放入发送队列
                         CS_LEAVE(producer_manager->lock);
                     }
@@ -242,6 +253,7 @@ void* log_producer_read_persistent_thread(void* param)
             {
                 log_producer_send_param* send_param = producer_manager->send_param_queue[producer_manager->send_param_queue_read++ % producer_manager->send_param_queue_size];
                 // push always success
+                
                 log_queue_push(producer_manager->sender_data_queue, send_param);//往发送队列存
             }
         }
@@ -290,6 +302,7 @@ void* log_producer_write_persistent_thread(void* param)
             continue;
         }
         //第一次执行清理
+        
         if (producer_manager->producer_config->enableGuarder && first_process) {
             int recoverRst;
             CS_ENTER(persistent_manager->lock);
@@ -306,6 +319,7 @@ void* log_producer_write_persistent_thread(void* param)
             CS_LEAVE(persistent_manager->lock);
             first_process = 0;
         }
+        
 
         //huchen add,注意事务不能被其他线程打断,通过lock保证事务执行完成
         CS_ENTER(persistent_manager->lock);
@@ -487,7 +501,9 @@ log_producer_manager* create_log_producer_manager(log_producer_config* producer_
             producer_manager->sender_data_queue = log_queue_create(base_queue_size * 2);
             threadId = 0;
             for (; threadId < producer_manager->producer_config->sendThreadCount; ++threadId)
-            {
+            {              
+               
+
                 THREAD_INIT(producer_manager->send_threads[threadId], log_producer_send_thread, producer_manager);
             }
             producer_manager->read_thread = (THREAD*)malloc(sizeof(THREAD));

+ 4 - 0
Framework/RvcLogSdk/log_producer_sender.c

@@ -133,6 +133,10 @@ void * log_producer_send_thread(void * param)
 
     return 0;
 }
+void send_log_data(const char* url, const char* body)
+{
+    LOG_OS_TestLogPost(url, body);
+}
 
 void * log_producer_send_fun(void * param)
 {

+ 2 - 0
Framework/RvcLogSdk/log_producer_sender.h

@@ -49,6 +49,8 @@ extern log_producer_send_param * create_log_producer_send_param(log_producer_con
                                                                 lz4_log_buf* log_buf,
                                                                 log_group_builder * builder);
 
+//extern void send_log_data(const char* url, const char* body);
+
 LOG_CPP_END
 
 #endif //LOG_C_SDK_LOG_PRODUCER_SENDER_H

+ 2 - 2
Framework/spbase/sp_tbs_win.cpp

@@ -771,7 +771,7 @@ static void __bcm_on_message_raw(sp_bcm_listener_t *listener, int from_client_id
 	*msg_pkt = NULL;
 	sp_bcm_listener_inc_ref(listener); //@
 	post_msg(entry->conn->tbs, MSG_ON_EVENT, (int)entry, (int)pkt);
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("post event from_client_id:%d", from_client_id);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("post event from_client_id:%d", from_client_id);
 }
 
 static void __bcm_on_destroy(sp_bcm_listener_t *listener, void *user_data)
@@ -780,7 +780,7 @@ static void __bcm_on_destroy(sp_bcm_listener_t *listener, void *user_data)
 	entry->conn->register_cnt--;
 	hlist_del(&entry->hentry);
 	sock_connection_dec_ref(entry->conn);
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("unregister event ok! register_id = %d", entry->register_id);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("unregister event ok! register_id = %d", entry->register_id);
 	free(entry);
 }
 

+ 3 - 1
Module/mod_chromium/CWebsocketServer.cpp

@@ -14,6 +14,7 @@
 #include <iostream>
 #include <locale>
 #include <codecvt>
+#include "../mod_guiconsole/GUIConsole_msg_g.h"
 
 
 #define DEFAULT_SERVER_PORT 9002
@@ -1219,9 +1220,10 @@ namespace Chromium {
 				do_sendJson(js, msg.getMessageType(), i->second, id);
 				unaccurate_js = js;
 			}
+			auto signatureID = msg.getSignatureID();
 			if (sendArr.size() == 0)
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("message_from_socket event sendArr.size() == 0");
-			else
+			else if(signatureID != eMsgSig_LogInfo && signatureID != eMsgSig_EntityStatus && signatureID != eMsgSig_PerformanceList)//fiter guiconsole msg
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("message_from_socket event %s send to arr:%s"
 					, unaccurate_js.c_str(), formatVectorToString(sendArr).c_str());
 

+ 60 - 40
Module/mod_chromium/mod_chromium.cpp

@@ -828,7 +828,6 @@ namespace Chromium {
 				boost::this_thread::sleep_for(boost::chrono::microseconds(100));
 				continue;
 			}
-
 			m_eventContorl.lock();
 			SYS_EVENT_PARAM curEvent = m_eventArr.front();
 			m_eventArr.pop_front();
@@ -854,75 +853,96 @@ namespace Chromium {
 			{
 				if (0 == CSimpleStringA("A").Compare(curEvent.value.c_str(), true))
 				{
-					if (CModTools::get_mutable_instance().IsConfigWork())//url正常时才关闭
+					try
 					{
+						if (CModTools::get_mutable_instance().IsConfigWork())//url正常时才关闭
+						{
 #if defined(RVC_OS_LINUX)
-						auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
+							auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
 #endif // RVC_OS_UOS
-						
-						if (m_runAd) openAdPage();
-						openMainPage();
-						CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::breakdown);
 
-						std::this_thread::sleep_for(std::chrono::seconds(3));
-						LogWarn(Severity_Low, Error_Debug, LOG_SLV_CHROMIUM_URLOPEN, "正在启动业务界面");
+							if (m_runAd) openAdPage();
+							openMainPage();
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::breakdown);
+
+							std::this_thread::sleep_for(std::chrono::seconds(3));
+							LogWarn(Severity_Low, Error_Debug, LOG_SLV_CHROMIUM_URLOPEN, "正在启动业务界面");
 
 #if defined(RVC_OS_LINUX)
-						for (auto it : srcPids)
-						{
-							CSimpleStringA cmd = CSimpleStringA::Format("sudo kill -9 %d", it);
-							DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CloseCommonPage %s", cmd.GetData());
-							system(cmd.GetData());
-						}
+							for (auto it : srcPids)
+							{
+								CSimpleStringA cmd = CSimpleStringA::Format("sudo kill -9 %d", it);
+								DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CloseCommonPage %s", cmd.GetData());
+								system(cmd.GetData());
+					}
 #else
-						CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
 #endif
-						
-						//DbgEx("UnregistSysVarEvent TerminalStage %s", Error_Succeed == GetFunction()->UnregistSysVarEvent("TerminalStage") ? "success" : "fail");
-					}
+
+							//DbgEx("UnregistSysVarEvent TerminalStage %s", Error_Succeed == GetFunction()->UnregistSysVarEvent("TerminalStage") ? "success" : "fail");
 				}
+			}
+					catch (const std::exception& e)
+					{
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("TerminalStage:A run exception, %s", e.what());
+					}
+		}
 				else if (0 == CSimpleStringA("X").Compare(curEvent.value.c_str(), true))
 					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("TerminalStage X, do nothing.");
 				else
 				{
-					if (!m_withBrowser)
+					try
 					{
+						if (!m_withBrowser)
+						{
 #if defined(RVC_OS_LINUX)
-						auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
+							auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
 #endif // RVC_OS_UOS
 
 
 #if defined(RVC_OS_LINUX)
-						for (auto it : srcPids)
-						{
-							CSimpleStringA cmd = CSimpleStringA::Format("sudo kill -9 %d", it);
-							DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CloseCommonPage %s", cmd.GetData());
-							system(cmd.GetData());
-						}
+							for (auto it : srcPids)
+							{
+								CSimpleStringA cmd = CSimpleStringA::Format("sudo kill -9 %d", it);
+								DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CloseCommonPage %s", cmd.GetData());
+								system(cmd.GetData());
+							}
 #else
-						CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
 #endif
-						
-						auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(
-							0 == CSimpleStringA("S").Compare(curEvent.value.c_str(), true) ? ERR_PAGE_REASON::warnPrompt : ERR_PAGE_REASON::breakdown,
-							std::tuple < std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("access failed, open err page %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
-						CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::main);						
+
+							auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(
+								0 == CSimpleStringA("S").Compare(curEvent.value.c_str(), true) ? ERR_PAGE_REASON::warnPrompt : ERR_PAGE_REASON::breakdown,
+								std::tuple < std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
+							DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("access failed, open err page %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::main);
+						}
+					}
+					catch (const std::exception& e)
+					{
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("TerminalStage:other run exception, %s", e.what());
 					}
 				}
 
 			}
 			else if (0 == CSimpleStringA("CardStoreInUse").Compare(curEvent.key.c_str(), true) && CheckIsCardStore())
 			{
-				if (0 == CSimpleStringA("Y").Compare(curEvent.value.c_str(), true))
+				try
 				{
-					auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::CardStoreIsBusy,
-						std::tuple <std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
-					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CardStoreIsBusy, open page CardStoreIsBusy %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
+					if (0 == CSimpleStringA("Y").Compare(curEvent.value.c_str(), true))
+					{
+						auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::CardStoreIsBusy,
+							std::tuple <std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
+						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CardStoreIsBusy, open page CardStoreIsBusy %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
+					}
+					else
+					{
+						CModTools::get_mutable_instance().StopChromiumBrowser_security(ERR_PAGE_REASON::CardStoreIsBusy, 2);
+					}
 				}
-				else
+				catch (const std::exception& e)
 				{
-					CModTools::get_mutable_instance().StopChromiumBrowser_security(ERR_PAGE_REASON::CardStoreIsBusy, 2);
+					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CardStoreInUse run exception, %s", e.what());
 				}
 			}
 		}

+ 7 - 0
Module/mod_mediacontroller/Event.h

@@ -85,6 +85,13 @@
 #define CAMERA_OPT_ERROR	"O"
 #define CAMERA_BOTH_ERROR	"B"
 
+//sysvar
+#define SYSVAR_CAMERACONFIG	"CameraConfigRet"
+#define CAMERACONFIG_INIT	"X"
+#define CAMERACONFIG_TRUE	"T"
+#define CAMERACONFIG_FALSE	"F"
+
+
 #define EVENT_MOD_CUSTOMERAWARE_BEGIN						0x30830001	//客户感知进入
 #define EVENT_MOD_CUSTOMERAWARE_END							0x30830002	//客户感知退出
 

+ 14 - 0
Module/mod_mediacontroller/mod_mediacontroller.cpp

@@ -187,6 +187,8 @@ void CMediaControllerEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmar
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("register sysvar %s failed!", SYSVAR_CALLSTATE);
 	}
 
+	SetCameraConfigSysVar(CAMERACONFIG_INIT);
+
 	int i = 0;
 
 	m_arrListener.Init(14);
@@ -272,6 +274,7 @@ void CMediaControllerEntity::OnStarted()
 					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Camera State to CAMERA_OPT_ERROR");
 					m_nCameraErrorCode = Error_OptCamera;
 				}
+				SetCameraConfigSysVar(CAMERACONFIG_FALSE);
 			}
 			else
 			{
@@ -283,8 +286,12 @@ void CMediaControllerEntity::OnStarted()
 					m_nCameraErrorCode = Error_AllCamera;
 				}
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Load Config failed!");
+				SetCameraConfigSysVar(CAMERACONFIG_FALSE);
 			}
 		}
+		else {
+			SetCameraConfigSysVar(CAMERACONFIG_TRUE);
+		}
 	}
 	else{
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("capture_lib_init failed!");
@@ -471,6 +478,13 @@ ErrorCodeEnum CMediaControllerEntity::SetCameraSysVar(const CSimpleStringA &newV
 }
 
 
+ErrorCodeEnum CMediaControllerEntity::SetCameraConfigSysVar(const CSimpleStringA& newVal)
+{
+	CSmartPointer<IEntityFunction> spFunction = this->GetFunction();
+
+	return spFunction->SetSysVar(SYSVAR_CAMERACONFIG, newVal.GetData());
+}
+
 void CMediaControllerEntity::OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext) 
 { 
 	CSmartPointer<IEntityFunction> spFunction = GetFunction();

+ 1 - 0
Module/mod_mediacontroller/mod_mediacontroller.h

@@ -122,6 +122,7 @@ public:
 	void OnTimeCameraStatusCheck();
 	ErrorCodeEnum ConnectAssistChannel();
 	void LogTransactionRecordCtrEvt(int iEvtType);
+	ErrorCodeEnum SetCameraConfigSysVar(const CSimpleStringA& newVal);
 
 public:
 	DeviceTypeEnum m_eDeviceType;

+ 5 - 5
Module/mod_vtmloader/VtmLoaderFSM.cpp

@@ -2627,19 +2627,19 @@ void CVtmLoaderFSM::CheckVideo(SpReqAnsContext<VtmLoaderService_CheckDeviceEntit
 		{
 			if (runInfo.eState == EntityState_Idle)
 			{
-				CSimpleStringA csCameraState("");
-				eErrCode = GetEntityBase()->GetFunction()->GetSysVar("CameraState", csCameraState);
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("eErrCode:%d csCameraState:%s", eErrCode, csCameraState.GetData());
+				CSimpleStringA csCameraConfigRet("");
+				eErrCode = GetEntityBase()->GetFunction()->GetSysVar("CameraConfigRet", csCameraConfigRet);
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("eErrCode:%d csCameraConfigRet:%s", eErrCode, csCameraConfigRet.GetData());
 				if (!m_bMediaControllerOK)
 					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("wait for MediaController to check video setting");
-				else if (eErrCode == Error_Succeed && csCameraState.Compare("N") == 0)
+				else if (eErrCode == Error_Succeed && csCameraConfigRet.Compare("T") == 0)
 				{
 					ctx->Answer(Error_Succeed);
 					return;
 				}
 				else
 				{
-					ctx->Answer(Error_Unexpect, VtmLoader_FailToStartEntity);
+					ctx->Answer(Error_Unexpect, VtmLoader_CheckVideoCfgFail);
 					return;
 				}
 			}

+ 1 - 0
Module/mod_vtmloader/VtmLoader_UserCode.h

@@ -20,3 +20,4 @@ const int VtmLoader_GetConfig_InitCfgUrl_Failed = 0x10f00213;
 const int VtmLoader_GetConfig_UpdateToken_Failed = 0x10f00214;
 const int VtmLoader_GetConfig_UpdateCfg_Failed = 0x10f00215;
 const int VtmLoader_CoreBootCfg_Err = 0x10f00216;
+const int VtmLoader_CheckVideoCfgFail = 0x10f00217;

+ 2 - 0
addin/cfg/shell.ini.in

@@ -113,6 +113,8 @@ ShellTeriminalInfoUrl=GUIConsole,""
 shell_channelId=GUIConsole,""
 shell_token=GUIConsole,""
 InitFWBFromStart=HealthManager,""
+CameraConfigRet=MediaController,"X"
+
 
 [Startup]
 Number=0