int getCardChinese(int card, char* ret) { char color[10]; char chinese[10]; int ret1 = getCardColor(card, color); int ret2 = getCardNum(card, chinese); if (ret1 && ret2) { sprintf(ret, "%s%s", color, chinese); return 1; } else if (ret2) { sprintf(ret, "%s", chinese); return 1; } return 0; }
/* *功能:获取光口和电口的告警信息 *@itemNames :in 参数名称 *@data :out 输出结果 *return 成功,return true,else return false */ boolean getFTAlertData(char *itemNames,char *data){ struct Alert tempAlert; //temp alert structure //打开告警信息文件 FILE *alertfile = fopen(currentAlertFilePath,"r"); //FILE *fp = NULL; //lock_t lock = lck_open(FTAlertFilePath,"r",&fp); //打开文件出错 if(alertfile == NULL ){ //this file is already lock by other process webLog("file=%s;func=%s;msg=open file %s error;",__FILE__,__FUNCTION__,currentAlertFilePath); return false ; } char row[300]; //记录 char value[20]; //中间变量 char temp[50]; //临时变量 char sBeginTime[20]; char sEndTime[20]; int ret = 0; //获取机架编号 int devNum = getCardNum(itemNames,"devId"); //设置返回结果 strcpy(data,"FTalerts="); //读取文件内容 while(1){ //scanf datas to the alert structure ret = fscanf(alertfile,"%d %d %d %d %d %s %s %d", &tempAlert.Specific, &tempAlert.address, &tempAlert.slot, &tempAlert.flag, &tempAlert.port, sBeginTime, sEndTime, &tempAlert.value); if(ret < 0){ break; } //获取该机架的告警 //getValueByName(row,"address",value); //设备给出的机架号是从0开始的 //if(devNum == (atoi(value) + 1)){ if(devNum == tempAlert.address +1 ){ //电口0或光口1 //getValueByName(row,"Specific",value); //电口 12 //if(!strcmp(value,"12")){ if(tempAlert.Specific == 12){ sprintf(temp,"FX:%s,","0"); } //光口 13 //else if(!strcmp(value,"13")){ else if(tempAlert.Specific == 13){ sprintf(temp,"FX:%s,","1"); }else{ //非电口或光口告警 continue ; } strcat(data,temp); //卡号 //getValueByName(row,"slot",value); //{ // sprintf(temp,"cardId:%d,",atoi(value)+1); sprintf(temp,"cardId:%d,",tempAlert.slot+1); strcat(data,temp); //} //远端或近端 //getValueByName(row,"flag",value); //近端 12 //if(!strcmp(value,"0")){ if(tempAlert.flag == 0){ sprintf(temp,"remote:%s,","0"); } //远端 13 else{ sprintf(temp,"remote:%s,","1"); } strcat(data,temp); //一条告警信息结束 strcat(data,"."); } } //告警信息结束 strcat(data,";"); //关闭文件 fclose(alertfile); //lck_close(lock,fp); return true; }