#include "head.h" NAME_COMPARE str_di_name[STR_MAX_NUM]; //存储屏蔽相关关键字后字符的数组 /************************************************************************** 函数名称:three_remote_run 创建日期:2021.11 函数功能说明:根据三遥通道配置中的关键字配置完成对应功能的处理 输入参数:无 输出参数:无 返回值:无 ***************************************************************************/ void three_remote_run(void) { int i,j,k; struct equ_config_di *ecd_di; struct equ_config_do *ecd_do; struct equ_config_ac *ecd_ac; int s_ac_num=0, s_di_num=0, s_do_num=0; bool sb_wrong=true; rt_printf("关键字数:%d.\r\n",REMOTE_NUM); for(i=0;iequ_slot_num; j++) { if(0 != j) { s_ac_num += g_board_info[j-1].ac_num; ecd_ac = &g_equ_config_ac[s_ac_num]; } for(k=0;kequ_slot_num; j++) { if(0 != j) { s_di_num += g_board_info[j-1].di_num; ecd_di = &g_equ_config_di[s_di_num]; } for(k=0;kdo_num;k++) { ecd_do = &g_equ_config_do[k]; if(0 == strncmp(ecd_do->name,g_three_remote_func[i].name,strlen(g_three_remote_func[i].name))) { rt_printf("遥控:%s,硬件地址:%d,do_num=%d\r\n",ecd_do->name,(ecd_do->index+1),g_equ_config->do_num); g_three_remote_func[i].function(ecd_do->index); } }*/ ecd_do = &g_equ_config_do[0]; for(j=0; jequ_slot_num; j++) { if(0 != j) { s_do_num += g_board_info[j-1].do_num; ecd_do = &g_equ_config_do[s_do_num]; } for(k=0;k开关1 合位开入,20,否\r\n\ ATTENTION,!!请务必不能忽略关键字的尖括号“<>”!!\r\n"); rt_file_write(pfile,tmp_keyword,strlen(tmp_keyword),&pos); memset(tmp_keyword, 0, sizeof(tmp_keyword)); rt_file_close(pfile,0); } /************************************************************************** 函数名称:shield_str 创建日期:2021.11 函数功能说明:屏蔽"<交流>"等关键字的显示(面板和SOE) 输入参数:ecd,str_type 输出参数:str_name 返回值:无 ***************************************************************************/ char* shield_str(struct equ_config_di *ecd) { int i,len; for(i=0; iname,g_three_remote_func[i].name,strlen(g_three_remote_func[i].name))) { len = strlen(g_three_remote_func[i].name); strcpy(str_di_name[i].namestr,&ecd->name[len]); return str_di_name[i].namestr; } } return ecd->name; } /************************************************************************** 函数名称:print_di 创建日期:2022.12 函数功能说明:将开入配置打印成文件,放到tmp文件夹中 输入参数:无 输出参数:无 返回值:无 ***************************************************************************/ static void print_di(void) { struct file *pfile; loff_t pos=0; char str_config[64]; int i; // 创建描述文件 pfile = rt_file_open("/tmp/equ_di.csv",O_CREAT|O_RDWR|O_TRUNC,0); if(IS_ERR(pfile)) return; for(i=0;idi_num) { sprintf(str_config, "遥信\r\n"); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } else { for(i=0;idi_num;i++) { tbl_getname(RES_TYPE_YX,i,name); if(0 == i) sprintf(str_config, "遥信,%s\r\n", name); else sprintf(str_config, ",%s\r\n", name); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } } if(0 == g_table_head->ac_num) { sprintf(str_config, "遥测\r\n"); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } else { for(i=0;iac_num;i++) { tbl_getname(RES_TYPE_YC,i,name); if(0 == i) sprintf(str_config, "遥测,%s\r\n", name); else sprintf(str_config, ",%s\r\n", name); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } } if(0 == g_table_head->do_num) { sprintf(str_config, "遥控\r\n"); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } else { for(i=0;ido_num;i++) { tbl_getname(RES_TYPE_YK,i,name); if(0 == i) sprintf(str_config, "遥控,%s\r\n", name); else sprintf(str_config, ",%s\r\n", name); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } } if(0 == g_table_head->dd_num) { sprintf(str_config, "电度\r\n"); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } else { for(i=0;idd_num;i++) { tbl_getname(RES_TYPE_DD,i,name); if(0 == i) sprintf(str_config, "电度,%s\r\n", name); else sprintf(str_config, ",%s\r\n", name); rt_file_write(pfile,str_config,strlen(str_config),&pos); memset(str_config, 0, sizeof(str_config)); } } rt_file_close(pfile,0); } /************************************************************************** 函数名称:get_config 创建日期:2022.12 函数功能说明:将开入、开出、灯、事件记录、转发点表打印成文件 输入参数:无 输出参数:无 返回值:无 ***************************************************************************/ void get_config(void) { print_di(); print_do(); print_led(); print_soe(); print_forward_tab(); }