Ver Fonte

!2 Unbind entity and sysevent, bind sysevent with spshell

chenliangyu há 1 mês atrás
pai
commit
cfa46b62d7

+ 9 - 4
Framework/spbase/sp_cfg.cpp

@@ -1735,7 +1735,7 @@ static int shell_ini__load_sysevent(sp_cfg_shell_ini_t* shell, const char* shell
 		sysevent->arr_owner_entity = shm_array_make(0, sizeof(sp_cfg_shell_entity_t*));
 		int ret = sscanf(it->second.c_str(), "%[^,], \"%[^\"]", tmp, sysevent->init_value);
 
-		auto varRet = inifile_format_read(shell_var_path, "SysEvent", sysevent->name, "%[^,], \"%[^\"]", tmp2, initVar);
+		auto varRet = inifile_format_read(shell_var_path, SHELL_SYSEVENT_HEAD, sysevent->name, "%[^,], \"%[^\"]", tmp2, initVar);
 		if (varRet == 2) {
 			/** 缺陷修复,以shell.ini的实体内容为准 Gifur@2023426]*/
 			/**TODO(Gifur): BUG: 如果在已有的系统变量上添加已有的实体,会因运行时存在文件而导致添加失败 [5/23/2020 Gifur] */
@@ -1750,6 +1750,14 @@ static int shell_ini__load_sysevent(sp_cfg_shell_ini_t* shell, const char* shell
 			strcpy(sysevent->init_value, "I");
 
 		if (ret > 0) {
+			sp_cfg_shell_entity_t* shell_entity = find_entity(shell, SPSHELL_NAME);
+			if (shell_entity) {
+				SHM_ARRAY_PUSH(sysevent->arr_owner_entity, sp_cfg_shell_entity_t*) = shell_entity;
+			}
+			else {
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("cannot find entity %s", SPSHELL_NAME);
+			}
+
 			const char* seps = ";\t ";
 			char* tok = strtok(tmp, seps);
 			while (tok) {
@@ -1759,9 +1767,6 @@ static int shell_ini__load_sysevent(sp_cfg_shell_ini_t* shell, const char* shell
 				}
 				else {
 					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("cannot find entity %s", tok);
-					rc = Error_NotExist;
-					destroy_sysevent(sysevent);
-					break;
 				}
 				tok = strtok(NULL, seps);
 			}

+ 2 - 2
Framework/spbase/sp_var.c

@@ -151,7 +151,7 @@ int sp_var_client_set(sp_var_client_t *client, const char *key, const char *str,
 			TOOLKIT_ASSERT(names);
 			TOOLKIT_ASSERT(strlen(names) > 0);
 			inifile_format_write(cfg->shellvar_ini_path != NULL ? cfg->shellvar_ini_path : cfg->shell_ini_path,
-				"SysEvent", key, "%s,\"%s\"", /*sp_cfg_get_entity_by_idx(cfg, svc_id)->name*/names, str);
+				SHELL_SYSEVENT_HEAD, key, "%s,\"%s\"", /*sp_cfg_get_entity_by_idx(cfg, svc_id)->name*/names, str);
 			free(names);
 		}
 
@@ -163,7 +163,7 @@ int sp_var_client_set(sp_var_client_t *client, const char *key, const char *str,
 			TOOLKIT_ASSERT(names);
 			TOOLKIT_ASSERT(strlen(names) > 0);
 			inifile_format_write(cfg->shellvar_ini_path != NULL ? cfg->shellvar_ini_path : cfg->shell_ini_path,
-				"SysEvent", key, "%s,\"\"", /*sp_cfg_get_entity_by_idx(cfg, svc_id)->name*/names);
+				SHELL_SYSEVENT_HEAD, key, "%s,\"\"", /*sp_cfg_get_entity_by_idx(cfg, svc_id)->name*/names);
 			free(names);
 		}
 

+ 1 - 0
Other/libpublicFun/exLog/skyeyeLog.cpp

@@ -36,6 +36,7 @@
 
 #define MAX_LOG_LEN 1900
 void skyeye_GetToken(char* channelId, char* token, char* terminalno, char* reserve1);
+void skyeye_GetTerminalNo(char* channelId, char* token, char* terminalno, char* reserve1);