Parcourir la source

!3 uos can get log informations now

chenliangyu il y a 11 mois
Parent
commit
55f8e93694

+ 2 - 1
Framework/Common/SpBase.h

@@ -1163,7 +1163,8 @@ struct IEntityFunctionPrivilege
 	virtual void GetSendLogInfo(unsigned long* t_upload_TerminalSys_Suc, unsigned long* t_upload_TerminalUser_Suc,
 		unsigned long* t_upload_BussinessSys_Suc, unsigned long* t_upload_BussinessUser_Suc, unsigned long* t_upload_beidou_Suc,
 		unsigned long* t_upload_TerminalSys_Err, unsigned long* t_upload_TerminalUser_Err,
-		unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err) = 0;
+		unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err,
+		unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum) = 0;
 
 	
 	//replace params with VTMInitParam; if one param in VTMInitParam equals to "", it will not replace to old value

+ 1 - 0
Framework/Common/def.h

@@ -16,6 +16,7 @@
 #define SHELL_CMD_REQ_WRITE_TERMINALNO			10
 #define SHELL_CMD_REQ_MODIFY_MEM_CFG			11
 #define SHELL_CMD_REQ_TRY_UPDATE_VTMERRMSG		12
+#define SHELL_CMD_REQ_GET_UPLOAD_LOGS_INFO			13
 
 #define SHELL_CMD_INFO_MACHINE_REBOOT		        1
 #define SHELL_CMD_INFO_BLUESCREEN_DISPLAY	    2

+ 1 - 0
Framework/RvcLogSdk/log_db.cpp

@@ -747,6 +747,7 @@ int db_get_count(log_db_manager* manager) {
 
 	try {
 		ret = manager->db->execScalar(sql.c_str());
+		g_notUploadLogNum = ret;
 		//aos_debug_log((LB, "db %s get count %d", manager->file_name.c_str(), ret));
 	}
 	catch (CppSQLite3Exception& e)

+ 8 - 0
Framework/RvcLogSdk/log_producer_config.c

@@ -354,6 +354,14 @@ void log_producer_config_get_upload_info(unsigned long* t_upload_TerminalSys_Suc
     *t_upload_beidou_Err = g_upload_beidou_Err;
 }
 
+void log_producer_config_get_upload_info2(unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum)
+{
+    *t_discard_full = g_discardMsgNum_since_full;
+    *t_discard_RTI1002 = g_discardMsgNum_since_serverRet_RTI1002;
+    *curLogNum = g_notUploadLogNum;
+}
+
+
 LOG_EXPORT void log_producer_config_set_dbgFun(dbg_callback t_callback)
 {
     g_callback = t_callback;

+ 7 - 2
Framework/RvcLogSdk/log_producer_config.h

@@ -80,6 +80,9 @@ extern unsigned long g_upload_TerminalUser_Err;
 extern unsigned long g_upload_BussinessSys_Err;
 extern unsigned long g_upload_BussinessUser_Err;
 extern unsigned long g_upload_beidou_Err;
+extern unsigned long g_discardMsgNum_since_full;
+extern unsigned long g_discardMsgNum_since_serverRet_RTI1002;
+extern unsigned long g_notUploadLogNum;
 
 
 /**
@@ -137,11 +140,13 @@ LOG_EXPORT void log_producer_config_set_united_needArchived(log_producer_config*
 LOG_EXPORT void log_producer_config_set_united_deployUnitId(log_producer_config* config, char* deployUnitId);
 LOG_EXPORT void log_producer_config_set_united_serviceUnitId(log_producer_config* config, char* serviceUnitId);
 
-LOG_EXPORT void log_producer_config_get_upload_info(unsigned long *t_upload_TerminalSys_Suc, unsigned long *t_upload_TerminalUser_Suc, 
-    unsigned long *t_upload_BussinessSys_Suc, unsigned long *t_upload_BussinessUser_Suc, unsigned long *t_upload_beidou_Suc,
+LOG_EXPORT void log_producer_config_get_upload_info(unsigned long* t_upload_TerminalSys_Suc, unsigned long* t_upload_TerminalUser_Suc,
+    unsigned long* t_upload_BussinessSys_Suc, unsigned long* t_upload_BussinessUser_Suc, unsigned long* t_upload_beidou_Suc,
     unsigned long* t_upload_TerminalSys_Err, unsigned long* t_upload_TerminalUser_Err,
     unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err);
 
+LOG_EXPORT void log_producer_config_get_upload_info2(unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum);
+
 typedef void (*dbg_callback)(const char*);
 extern dbg_callback g_callback;
 // 日志回调函数

+ 1 - 0
Framework/RvcLogSdk/log_producer_manager.c

@@ -335,6 +335,7 @@ void* log_producer_write_persistent_thread(void* param)
         t_count = db_get_count(persistent_manager->db_manager);
         if (t_count > (persistent_manager->config->maxPersistentLogCount + 2000)) {
             discardMsg = 1;
+            g_discardMsgNum_since_full = g_discardMsgNum_since_full + 1;
             aos_warn_log((LB, "give up the db content, bcz db count %d exceeds max count %d", t_count, persistent_manager->config->maxPersistentLogCount));
         }
         else {

+ 5 - 3
Framework/RvcLogSdk/log_producer_sender.c

@@ -33,7 +33,6 @@ const char* LOGE_TIME_EXPIRED = "RequestTimeExpired";
 
 ///**TODO(Gifur@4/27/2023): 这套在Linux下行不通!! */
 
-#pragma data_seg("LOG_SEND_INFO")
 unsigned long g_upload_TerminalSys_Suc = 0;
 unsigned long g_upload_TerminalUser_Suc = 0;
 unsigned long g_upload_BussinessSys_Suc = 0;
@@ -46,8 +45,9 @@ unsigned long g_upload_BussinessSys_Err = 0;
 unsigned long g_upload_BussinessUser_Err = 0;
 unsigned long g_upload_beidou_Err = 0;
 unsigned long g_upload_vtmsdk_Err = 0;
-#pragma data_seg()
-#pragma comment(linker,"/section:LOG_SEND_INFO,rws")
+unsigned long g_discardMsgNum_since_full = 0;
+unsigned long g_discardMsgNum_since_serverRet_RTI1002 = 0;
+unsigned long g_notUploadLogNum = 0;
 
 
 //#define SEND_TIME_INVALID_FIX
@@ -271,6 +271,8 @@ void * log_producer_send_fun(void * param)
             default:
                 break;
             }
+            if(rst->statusCode == 300)
+                g_discardMsgNum_since_serverRet_RTI1002 += send_buf->n_logs;
         }
 
         sleepMs = log_producer_on_send_done(send_param, rst, &error_info) / 2;//执行senddone,删除数据库中内容

+ 69 - 7
Framework/spbase/SpEntityPrivilege.cpp

@@ -39,6 +39,7 @@
 #include <winpr/crt.h>
 #include <winpr/file.h>
 #endif //RVC_OS_WIN
+#include <SpHelper.h>
 
 static ErrorCodeEnum ControlEntity(
 	SpEntity *pEntity, 
@@ -2425,18 +2426,79 @@ ErrorCodeEnum SpEntityPrivilege::TryUpdateCenterCfg(bool& isUpdate, bool& isRese
 		
 	return (ErrorCodeEnum)ret;
 }
+struct Log_Info
+{
+	unsigned int t_upload_TerminalSys_Suc;
+	unsigned int t_upload_TerminalUser_Suc;
+	unsigned int t_upload_BussinessSys_Suc;
+	unsigned int t_upload_BussinessUser_Suc;
+	unsigned int t_upload_beidou_Suc;
+	unsigned int t_upload_TerminalSys_Err;
+	unsigned int t_upload_TerminalUser_Err;
+	unsigned int t_upload_BussinessSys_Err;
+	unsigned int t_upload_BussinessUser_Err;
+	unsigned int t_upload_beidou_Err;
+	unsigned int t_discard_full;
+	unsigned int t_discard_RTI1002;
+	unsigned int curLogNum;
+
+	void Serialize(SpBuffer& Buf)
+	{
+		auto& buf = Buf & t_upload_TerminalSys_Suc & t_upload_TerminalUser_Suc & t_upload_BussinessSys_Suc &
+		 t_upload_BussinessUser_Suc & t_upload_beidou_Suc & t_upload_TerminalSys_Err & t_upload_TerminalUser_Err &
+		  t_upload_BussinessSys_Err & t_upload_BussinessUser_Err & t_upload_beidou_Err & t_discard_full & t_discard_RTI1002 & curLogNum;
+	}
+};
+
 
 void SpEntityPrivilege::GetSendLogInfo(unsigned long* t_upload_TerminalSys_Suc, unsigned long* t_upload_TerminalUser_Suc,
 	unsigned long* t_upload_BussinessSys_Suc, unsigned long* t_upload_BussinessUser_Suc, unsigned long* t_upload_beidou_Suc,
 	unsigned long* t_upload_TerminalSys_Err, unsigned long* t_upload_TerminalUser_Err,
-	unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err)
+	unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err, 
+	unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum)
 {
-#if defined(_MSC_VER)
-	log_producer_config_get_upload_info(t_upload_TerminalSys_Suc, t_upload_TerminalUser_Suc, t_upload_BussinessSys_Suc, t_upload_BussinessUser_Suc, t_upload_beidou_Suc,
-		t_upload_TerminalSys_Err, t_upload_TerminalUser_Err, t_upload_BussinessSys_Err, t_upload_BussinessUser_Err, t_upload_beidou_Err);
-#else
-	///*TODO(80374374@3/9/2023):  */
-#endif //_MSC_VER
+	iobuffer_t* req_pkt = iobuffer_create(-1, -1);
+	SpAsyncWaitRPC* pAsyncWait = new SpAsyncWaitRPC(this, &req_pkt, SHELL_CMD_REQ_GET_UPLOAD_LOGS_INFO);
+	ErrorCodeEnum Error = pAsyncWait->Begin();
+
+	if (Error == Error_Succeed)
+	{
+		Error = pAsyncWait->WaitAnswer(30000);//WaitAnswer如果设定为INFINE,则最大10s,在http访问中会触发超时
+		if (Error == Error_Succeed)
+		{
+			CAutoBuffer AnsBuf;
+			bool bEnd;
+			Error = pAsyncWait->AsyncGetAnswer(AnsBuf, bEnd);
+			if (Error == Error_Succeed)
+			{
+				Log_Info cur;
+				SpBuffer2Object(AnsBuf, cur);
+
+				*t_upload_TerminalSys_Suc = cur.t_upload_TerminalSys_Suc;
+				*t_upload_TerminalUser_Suc = cur.t_upload_TerminalUser_Suc;
+				*t_upload_BussinessSys_Suc = cur.t_upload_BussinessSys_Suc;
+				*t_upload_BussinessUser_Suc = cur.t_upload_BussinessUser_Suc;
+				*t_upload_beidou_Suc = cur.t_upload_beidou_Suc;
+				*t_upload_TerminalSys_Err = cur.t_upload_TerminalSys_Err;
+				*t_upload_TerminalUser_Err = cur.t_upload_TerminalUser_Err;
+				*t_upload_BussinessSys_Err = cur.t_upload_BussinessSys_Err;
+				*t_upload_BussinessUser_Err = cur.t_upload_BussinessUser_Err;
+				*t_upload_beidou_Err = cur.t_upload_beidou_Err;
+				*t_discard_full = cur.t_discard_full;
+				*t_discard_RTI1002 = cur.t_discard_RTI1002;
+				*curLogNum = cur.curLogNum;
+				/*
+				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("checkUrlActive::GetSendLogInfo, TS_Suc:%d, TU_Suc:%d, BS_Suc:%d, BU_Suc:%d, beidou_Suc:%d, TS_Err:%d, TU_Err:%d, BS_Err:%d, BU_Err:%d, beidou_Err:%d, discard_forFull:%d, discard_forRTI1002:%d, curNum:%d"
+					, cur.t_upload_TerminalSys_Suc, cur.t_upload_TerminalUser_Suc, cur.t_upload_BussinessSys_Suc, cur.t_upload_BussinessUser_Suc, cur.t_upload_beidou_Suc,
+					cur.t_upload_TerminalSys_Err, cur.t_upload_TerminalUser_Err, cur.t_upload_BussinessSys_Err, cur.t_upload_BussinessUser_Err, cur.t_upload_beidou_Err
+					, cur.t_discard_full, cur.t_discard_RTI1002, cur.curLogNum);
+				*/
+			}
+		}
+	}
+	pAsyncWait->DecrementRef();
+	if (req_pkt)
+		iobuffer_dec_ref(req_pkt);
 
 }
 

+ 2 - 1
Framework/spbase/SpEntityPrivilege.h

@@ -69,7 +69,8 @@ public:
 	virtual void GetSendLogInfo(unsigned long* t_upload_TerminalSys_Suc, unsigned long* t_upload_TerminalUser_Suc,
 		unsigned long* t_upload_BussinessSys_Suc, unsigned long* t_upload_BussinessUser_Suc, unsigned long* t_upload_beidou_Suc,
 		unsigned long* t_upload_TerminalSys_Err, unsigned long* t_upload_TerminalUser_Err,
-		unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err);
+		unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err,
+		unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum);
 
 	//Ïȵ÷ÓÃÕâ¸öÈ¥³õʼ»¯url
 	virtual ErrorCodeEnum InitCfgUrl(VTMInitParam& info);

+ 15 - 0
Framework/spbase/sp_cfg.cpp

@@ -47,6 +47,7 @@
 #include "JsonConvertHelper.hpp"
 #endif //_MSC_VER
 #include "sp_checkEntity.h"
+#include <log_producer_config.h>
 
 
 
@@ -591,6 +592,20 @@ int sp_cfg_getVer(char *ver)
 	return Error_Succeed;
 }
 
+void get_upload_info(unsigned long* t_upload_TerminalSys_Suc, unsigned long* t_upload_TerminalUser_Suc,
+	unsigned long* t_upload_BussinessSys_Suc, unsigned long* t_upload_BussinessUser_Suc, unsigned long* t_upload_beidou_Suc,
+	unsigned long* t_upload_TerminalSys_Err, unsigned long* t_upload_TerminalUser_Err,
+	unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err)
+{
+	log_producer_config_get_upload_info(t_upload_TerminalSys_Suc, t_upload_TerminalUser_Suc, t_upload_BussinessSys_Suc, t_upload_BussinessUser_Suc, t_upload_beidou_Suc,
+		t_upload_TerminalSys_Err, t_upload_TerminalUser_Err, t_upload_BussinessSys_Err, t_upload_BussinessUser_Err, t_upload_beidou_Err);
+}
+
+void get_upload_info2(unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum)
+{
+	log_producer_config_get_upload_info2(t_discard_full, t_discard_RTI1002, curLogNum);
+}
+
 int sp_TryUpdateToken(char *oldToken, char *newToken)
 {
 	auto cfg = sp_get_env()->cfg;

+ 6 - 0
Framework/spbase/sp_cfg.h

@@ -262,6 +262,12 @@ SPBASE_API void sp_cfg_setShellFirstStartTime(LARGE_TIME t_shellFirstStart);
 SPBASE_API void load_specialRunInfoInCentersetting(const char* fileName);
 SPBASE_API LARGE_TIME sp_cfg_getShellFirstStartTime();
 SPBASE_API int sp_cfg_getVer(char* ver);
+SPBASE_API void get_upload_info(unsigned long* t_upload_TerminalSys_Suc, unsigned long* t_upload_TerminalUser_Suc,
+	unsigned long* t_upload_BussinessSys_Suc, unsigned long* t_upload_BussinessUser_Suc, unsigned long* t_upload_beidou_Suc,
+	unsigned long* t_upload_TerminalSys_Err, unsigned long* t_upload_TerminalUser_Err,
+	unsigned long* t_upload_BussinessSys_Err, unsigned long* t_upload_BussinessUser_Err, unsigned long* t_upload_beidou_Err);
+
+SPBASE_API void get_upload_info2(unsigned long* t_discard_full, unsigned long* t_discard_RTI1002, unsigned long* curLogNum);
 
 #define SP_MAX_VER_LEN		128
 #define SPSHELL_NAME		"SpShell"

+ 1 - 0
Framework/spshell/app.cpp

@@ -118,6 +118,7 @@ static void on_req(sp_rpc_server_t *server, int epid, int svc_id, int rpc_id, in
 		HANDLE_REQ(SHELL_CMD_REQ_WRITE_TERMINALNO, on_write_terminalNo)
 		HANDLE_REQ(SHELL_CMD_REQ_MODIFY_MEM_CFG, on_modify_mem_cfg)
 		HANDLE_REQ(SHELL_CMD_REQ_TRY_UPDATE_VTMERRMSG, on_try_update_VTMERRMSG)
+		HANDLE_REQ(SHELL_CMD_REQ_GET_UPLOAD_LOGS_INFO, on_try_upload_logs_info)
 	END_REQ_MAP()
 }
 

+ 71 - 0
Framework/spshell/svc.cpp

@@ -793,6 +793,9 @@ iobuffer_t* on_try_update_VTMERRMSG(sp_rpc_server_t* server, int epid, int svc_i
 	return ans_pkt;
 }
 
+
+
+
 iobuffer_t* on_try_update_cfg(sp_rpc_server_t* server, int epid, int svc_id, int rpc_id, int call_type, iobuffer_t** req_pkt)
 {
 	iobuffer_t* ans_pkt = iobuffer_create(-1, -1);
@@ -877,3 +880,71 @@ iobuffer_t* on_modify_mem_cfg(sp_rpc_server_t* server, int epid, int svc_id, int
 	
 	return ans_pkt;
 }
+
+iobuffer_t* on_try_upload_logs_info(sp_rpc_server_t* server, int epid, int svc_id, int rpc_id, int call_type, iobuffer_t** req_pkt)
+{
+	iobuffer_t* ans_pkt = iobuffer_create(-1, -1);
+	unsigned long t_upload_TerminalSys_Suc = 0,
+		t_upload_TerminalUser_Suc = 0,
+		t_upload_BussinessSys_Suc = 0,
+		t_upload_BussinessUser_Suc = 0,
+		t_upload_beidou_Suc = 0,
+		t_upload_TerminalSys_Err = 0,
+		t_upload_TerminalUser_Err = 0,
+		t_upload_BussinessSys_Err = 0,
+		t_upload_BussinessUser_Err = 0,
+		t_upload_beidou_Err = 0;
+	unsigned long t_discard_full = 0,
+		t_discard_RTI1002 = 0,
+		curLogNum = 0;
+	get_upload_info(&t_upload_TerminalSys_Suc, &t_upload_TerminalUser_Suc, &t_upload_BussinessSys_Suc, &t_upload_BussinessUser_Suc, &t_upload_beidou_Suc,
+		&t_upload_TerminalSys_Err, &t_upload_TerminalUser_Err, &t_upload_BussinessSys_Err, &t_upload_BussinessUser_Err, &t_upload_beidou_Err);
+
+	get_upload_info2(&t_discard_full, &t_discard_RTI1002, &curLogNum);
+
+	ErrorCodeEnum nRet = Error_Succeed;
+	int end = 0;
+
+	//iobuffer_write(ans_pkt, IOBUF_T_I4, &nRet, 0);//dwSysError
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &nRet, 0);//UserError
+	//char* tmpStr = "";
+	//iobuffer_write(ans_pkt, IOBUF_T_STR, tmpStr, 0);
+	//iobuffer_write(ans_pkt, IOBUF_T_I4, &end, 0);//end
+
+	unsigned int i_upload_TerminalSys_Suc = t_upload_TerminalSys_Suc;
+	unsigned int i_upload_TerminalUser_Suc = t_upload_TerminalUser_Suc;
+	unsigned int i_upload_BussinessSys_Suc = t_upload_BussinessSys_Suc;
+	unsigned int i_upload_BussinessUser_Suc = t_upload_BussinessUser_Suc;
+	unsigned int i_upload_beidou_Suc = t_upload_beidou_Suc;
+	unsigned int i_upload_TerminalSys_Err = t_upload_TerminalSys_Err;
+	unsigned int i_upload_TerminalUser_Err = t_upload_TerminalUser_Err;
+	unsigned int i_upload_BussinessSys_Err = t_upload_BussinessSys_Err;
+	unsigned int i_upload_BussinessUser_Err = t_upload_BussinessUser_Err;
+	unsigned int i_upload_beidou_Err = t_upload_beidou_Err;
+	unsigned int i_discard_full = t_discard_full;
+	unsigned int i_discard_RTI1002 = t_discard_RTI1002;
+	unsigned int i_curLogNum = curLogNum;
+
+
+
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_TerminalSys_Suc, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_TerminalUser_Suc, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_BussinessSys_Suc, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_BussinessUser_Suc, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_beidou_Suc, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_TerminalSys_Err, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_TerminalUser_Err, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_BussinessSys_Err, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_BussinessUser_Err, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_upload_beidou_Err, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_discard_full, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_discard_RTI1002, 0);
+	iobuffer_write(ans_pkt, IOBUF_T_I4, &i_curLogNum, 0);
+	
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("checkUrlActive::GetSendLogInfo, TS_Suc:%d, TU_Suc:%d, BS_Suc:%d, BU_Suc:%d, beidou_Suc:%d, TS_Err:%d, TU_Err:%d, BS_Err:%d, BU_Err:%d, beidou_Err:%d, discard_forFull:%d, discard_forRTI1002:%d, curNum:%d"
+		, t_upload_TerminalSys_Suc, t_upload_TerminalUser_Suc, t_upload_BussinessSys_Suc, t_upload_BussinessUser_Suc, t_upload_beidou_Suc,
+		t_upload_TerminalSys_Err, t_upload_TerminalUser_Err, t_upload_BussinessSys_Err, t_upload_BussinessUser_Err, t_upload_beidou_Err
+		, t_discard_full, t_discard_RTI1002, curLogNum);
+
+	return ans_pkt;
+}

+ 1 - 0
Framework/spshell/svc.h

@@ -89,6 +89,7 @@ iobuffer_t* on_try_update_cfg(sp_rpc_server_t * server, int epid, int svc_id, in
 iobuffer_t* on_write_terminalNo(sp_rpc_server_t * server, int epid, int svc_id, int rpc_id, int call_type, iobuffer_t * *req_pkt);
 iobuffer_t* on_modify_mem_cfg(sp_rpc_server_t * server, int epid, int svc_id, int rpc_id, int call_type, iobuffer_t * *req_pkt);
 iobuffer_t* on_try_update_VTMERRMSG(sp_rpc_server_t * server, int epid, int svc_id, int rpc_id, int call_type, iobuffer_t * *req_pkt);
+iobuffer_t* on_try_upload_logs_info(sp_rpc_server_t * server, int epid, int svc_id, int rpc_id, int call_type, iobuffer_t * *req_pkt);
 
 int  stop_all_stated_entity(void* param);
 int KickoffSpRestart(bool bRestart);

+ 6 - 3
Module/mod_vtmloader/VtmLoaderFSM.cpp

@@ -175,13 +175,16 @@ DWORD checkUrlActive(LPVOID param)
 		Sleep(entityInfo->m_uploadLogInfo_waitSec * 1000);
 		unsigned long t_upload_TerminalSys_Suc, t_upload_TerminalUser_Suc, t_upload_BussinessSys_Suc, t_upload_BussinessUser_Suc, t_upload_beidou_Suc;
 		unsigned long t_upload_TerminalSys_Err, t_upload_TerminalUser_Err, t_upload_BussinessSys_Err, t_upload_BussinessUser_Err, t_upload_beidou_Err;
+		unsigned long t_discard_full, t_discard_RTI1002, curLogNum;
 		entityInfo->GetEntityBase()->GetFunction()->GetPrivilegeFunction()->GetSendLogInfo(&t_upload_TerminalSys_Suc, &t_upload_TerminalUser_Suc,
 			&t_upload_BussinessSys_Suc, &t_upload_BussinessUser_Suc, &t_upload_beidou_Suc,
-			&t_upload_TerminalSys_Err, &t_upload_TerminalUser_Err, &t_upload_BussinessSys_Err, &t_upload_BussinessUser_Err, &t_upload_beidou_Err);
+			&t_upload_TerminalSys_Err, &t_upload_TerminalUser_Err, &t_upload_BussinessSys_Err, &t_upload_BussinessUser_Err, &t_upload_beidou_Err,
+			&t_discard_full, &t_discard_RTI1002, &curLogNum);
 		LogWarn(SeverityLevelEnum::Severity_Low, Error_Trace, WARN_SendEndpoint_LOG_INFO,
-			CSimpleString::Format("checkUrlActive::GetSendLogInfo, TS_Suc:%d, TU_Suc:%d, BS_Suc:%d, BU_Suc:%d, beidou_Suc:%d, TS_Err:%d, TU_Err:%d, BS_Err:%d, BU_Err:%d, beidou_Err:%d"
+			CSimpleString::Format("checkUrlActive::GetSendLogInfo, TS_Suc:%d, TU_Suc:%d, BS_Suc:%d, BU_Suc:%d, beidou_Suc:%d, TS_Err:%d, TU_Err:%d, BS_Err:%d, BU_Err:%d, beidou_Err:%d, discard_forFull:%d, discard_forRTI1002:%d, curNum:%d"
 				, t_upload_TerminalSys_Suc, t_upload_TerminalUser_Suc, t_upload_BussinessSys_Suc, t_upload_BussinessUser_Suc, t_upload_beidou_Suc,
-				t_upload_TerminalSys_Err, t_upload_TerminalUser_Err, t_upload_BussinessSys_Err, t_upload_BussinessUser_Err, t_upload_beidou_Err).GetData());
+				t_upload_TerminalSys_Err, t_upload_TerminalUser_Err, t_upload_BussinessSys_Err, t_upload_BussinessUser_Err, t_upload_beidou_Err
+			, t_discard_full, t_discard_RTI1002, curLogNum).GetData());
 	}
 	return 0;
 }