Преглед на файлове

[BT-6710][ups_monitor] improve detect temperature alarm

balbekova преди 5 години
родител
ревизия
0f6842e483
променени са 1 файла, в които са добавени 34 реда и са изтрити 0 реда
  1. 34 0
      modules/monitor/ups_monitor.c

+ 34 - 0
modules/monitor/ups_monitor.c

@@ -770,8 +770,10 @@ void sensorTemperatureMonitor(void)
       alarm[i] = 0;
       if (type_sensor[i] == TS_AKB) {
         log_event_data(LOG_ALARM_SENSOR_AKB, "Норма");
+        flUpdateLog = true;
       } else if (type_sensor[i] == TS_CABINET) {
         log_event_data(LOG_ALARM_SENSOR_CABINET, "Норма");
+        flUpdateLog = true;
       }
     }
     if (sSettings.sTempControl[i].type_sensor == TS_AKB) {
@@ -779,12 +781,14 @@ void sensorTemperatureMonitor(void)
       if(temperature == 85) {
         if(!alarm[i]) {
           log_event_data(LOG_ALARM_SENSOR_AKB, "Авария");
+          flUpdateLog = true;
           flLedAlarm = true;
           alarm[i] = 1;
         }
       } else {
         if(alarm[i]) {
           log_event_data(LOG_ALARM_SENSOR_AKB, "Норма");
+          flUpdateLog = true;
           alarm[i] = 0;
         }
       }
@@ -793,12 +797,14 @@ void sensorTemperatureMonitor(void)
       if(temperature == 85) {
         if(!alarm[i]) {
           log_event_data(LOG_ALARM_SENSOR_CABINET, "Авария");
+          flUpdateLog = true;
           flLedAlarm = true;
           alarm[i] = 1;
         }
       } else {
         if(alarm[i]) {
           log_event_data(LOG_ALARM_SENSOR_CABINET, "Норма");
+          flUpdateLog = true;
           alarm[i] = 0;
         }
       }
@@ -822,6 +828,13 @@ void UPS_TemperatureHighRangeMonitor(void)
 
   if(temperature == 85) {
     UPS.Alarm = (UPS.Alarm & 0xfffffffd) | (1 << 1);
+    if (stateCurrent == HYST_UP) {
+      stateCurrent = HYST_IDLE;
+      log_event_data(LOG_ALARM_HIGH_TEMP, "Норма");
+      // Отправка трапа о нормализации
+	    SNMP_SendUserTrap(BATTERY_HIGH_TEMPERATURE_NORM);
+      flUpdateLog = true;
+    }
     return;
   } else {
     if (stateCurrent == HYST_IDLE) {
@@ -874,6 +887,13 @@ void UPS_TemperatureLowRangeMonitor(void)
 
   if(temperature == 85) {
     UPS.Alarm = (UPS.Alarm & 0xfffffeff) | (1 << 8);
+    if (stateCurrent == HYST_DOWN) {
+      stateCurrent = HYST_IDLE;
+      log_event_data(LOG_ALARM_LOW_TEMP, "Норма");
+      // Отправка трапа о нормализации
+	    SNMP_SendUserTrap(BATTERY_LOW_TEMPERATURE_NORM);
+      flUpdateLog = true;
+    }
     return;
   } else {
     if (stateCurrent == HYST_IDLE) {
@@ -928,6 +948,13 @@ void Cabinet_TemperatureHighRangeMonitor(void)
 
   if(temperature == 85) {
     UPS.Alarm = (UPS.Alarm & 0xfffffdff) | (1 << 9);
+    if (stateCurrent == HYST_UP) {
+      stateCurrent = HYST_IDLE;
+      log_event_data(LOG_ALARM_HIGH_CABINET_TEMP, "Норма");
+      // Отправка трапа о нормализации
+	    SNMP_SendUserTrap(CABINET_HIGH_TEMPERATURE_NORM);
+      flUpdateLog = true;
+    }
     return;
   } else {
     if (stateCurrent == HYST_IDLE) {
@@ -981,6 +1008,13 @@ void Cabinet_TemperatureLowRangeMonitor(void)
 
   if(temperature == 85) {
     UPS.Alarm = (UPS.Alarm & 0xfffffbff) | (1 << 10);
+    if (stateCurrent == HYST_DOWN) {
+      stateCurrent = HYST_IDLE;
+      log_event_data(LOG_ALARM_LOW_CABINET_TEMP, "Норма");
+      // Отправка трапа о нормализации
+	    SNMP_SendUserTrap(CABINET_LOW_TEMPERATURE_NORM);
+      flUpdateLog = true;
+    }
     return;
   } else {
     if (stateCurrent == HYST_IDLE) {