new version-alarm lincense

This commit is contained in:
root
2025-06-03 11:53:01 +08:00
parent 5026cdb2b7
commit c7523004bd
5 changed files with 187 additions and 5 deletions

View File

@@ -12,6 +12,8 @@ int getOmcSysNo(int* sysNo);
int getOmcStatus(int sysNo);
int omcSysNo=-1;
static char cstaproc_sqlstr[8192];
/*
return:
TIMETO_NONE
@@ -1145,7 +1147,7 @@ int csta_record(csta_src *pcsta,csta_sys *psys,snmp_pdu *pdu)
{
csta_obj *pobj;
var_list *pvar;
DWORD d_timestamp,*p_long;
DWORD d_timestamp,*p_long;
DWORD *pval4;
WORD *pval2;
char sqlstr[8192],sumsqlstr[8192],sumCondition[512],sumFieldList[8192];
@@ -1227,6 +1229,7 @@ int csta_record(csta_src *pcsta,csta_sys *psys,snmp_pdu *pdu)
sprintf(tmpstr3," and %s=%d",pobj->id1_field,psys->pre_id1 + pobj->id1_offset);
strcat(sumCondition,tmpstr3);
}
break;
case 2:
sprintf(key_field,"%s,%s,",pobj->id1_field, pobj->id2_field);
@@ -1236,6 +1239,7 @@ int csta_record(csta_src *pcsta,csta_sys *psys,snmp_pdu *pdu)
sprintf(tmpstr3," and %s=%d and %s=%d",pobj->id1_field,psys->pre_id1 + pobj->id1_offset,pobj->id2_field,psys->pre_id2 + pobj->id2_offset);
strcat(sumCondition,tmpstr3);
}
break;
}
//csta_log("single_message_flag:%d",pcsta->single_message_flag);
@@ -1243,13 +1247,14 @@ int csta_record(csta_src *pcsta,csta_sys *psys,snmp_pdu *pdu)
{
sprintf(sqlstr, "replace into %s.%sData (%s%s%s,csta_datetime)VALUES(%s%s",
CSTA_DB,pobj->detail_table,sys_field,key_field,pobj->sql_detail,sys_value,key_value);
//sum up accord to the map table
if(needSumFlag)
{
sprintf(tmpstr3," and UNIX_TIMESTAMP(csta_datetime) = %ld",d_timestamp);
strcat(sumCondition,tmpstr3);
sprintf(sumsqlstr,"select %s from %s.%sData where %s",pobj->sql_sum,CSTA_DB,pobj->detail_table,sumCondition);
}
if(pobj->field_width == 2)
@@ -1394,6 +1399,9 @@ int csta_record(csta_src *pcsta,csta_sys *psys,snmp_pdu *pdu)
sprintf(sqlstr, "replace into %s.%sData (%s%s%scsta_datetime)VALUES(%s%s",
CSTA_DB,pobj->sum_table,sys_field,key_field,sumFieldList,sys_value,key_value);
for(i=0;i<pobj->sum_field_count;i++)
{
if(row[i] == NULL)
@@ -1412,7 +1420,56 @@ int csta_record(csta_src *pcsta,csta_sys *psys,snmp_pdu *pdu)
}
sprintf(tmpstr3,"FROM_UNIXTIME(%ld))",d_timestamp);
strcat(sqlstr,tmpstr3);
//only 320 mscSumData.check Signal Error
if (pcsta->sysTypeNo == 320 && strcmp(pobj->sum_table, "mscSumData") == 0) {
int sysNo = psys->sysid; // <20><> psys <20><>ȡ sysNo
int subSysNo = psys->subsysid;
unsigned int SignalErr = 0, Attempt = 0 ,KeyType =0;
sscanf(sqlstr, "%*[^,],%*[^,],%u,%*[^,],%u,%*[^,],%u", &KeyType,&Attempt, &SignalErr);
// MO-12 MT-13
if (Attempt > 0 && (KeyType == 12 || KeyType == 13)) {
double ratio = (double)SignalErr / Attempt;
// <20><><EFBFBD><EFBFBD> SignalErr / Attempt > 5%<25><><EFBFBD>򴥷<EFBFBD><F2B4A5B7>
if (ratio > 5.0) {
time_t current_time = time(NULL);
char alarmIdStr[32];
sprintf(alarmIdStr, "%ld", (long)current_time); // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> alarmInfo <20><><EFBFBD><EFBFBD> SQL <20><><EFBFBD><EFBFBD>
sprintf(cstaproc_sqlstr, "insert into OMC_PUB.sysAlarmInfo(sysTypeNo,sysNo,subSysNo,compCode,alarmCode,alarmTime,clearTime,clearMode,alarmInfo,alarmId) "
"values(%d,%d,%d,%d,%d,CURRENT_TIMESTAMP,'0000-00-00 00:00:00',1,'Call failure rate exceeds 5%%');",
pcsta->sysTypeNo,sysNo,subSysNo, 0, 10, alarmIdStr);
// ִ<><D6B4> SQL <20><><EFBFBD><EFBFBD>
if (mysql_getnores(pubConn, cstaproc_sqlstr) != 0) {
csta_log("[SQL ERR]: %s", cstaproc_sqlstr);
} else {
csta_log("Inserted into alarmInfo: %s", cstaproc_sqlstr);
}
}else{
//clear 5% alarm
sprintf(cstaproc_sqlstr, "update OMC_PUB.sysAlarmInfo set clearTime=CURRENT_TIMESTAMP,clearMode=0,clearBy='System' "
"where sysTypeNo=%d and sysNo=%d and subSysNo=%d and compCode=%d and alarmCode=%d and clearMode=1;",
pcsta->sysTypeNo, sysNo, subSysNo, 0, 10);
// ִ<><D6B4> SQL <20><><EFBFBD><EFBFBD>
if (mysql_getnores(pubConn, cstaproc_sqlstr) != 0) {
csta_log("[SQL ERR]: %s", cstaproc_sqlstr);
} else {
csta_log("Cleared alarmInfo: %s", cstaproc_sqlstr);
}
}
} else {
csta_log("Attempt is zero, skipping SignalErr/Attempt calculation.");
}
}
if(mysql_getnores(pCstaConn,sqlstr) != 0)
{
if(mysql_errno(pCstaConn) == 1146)