Просмотр исходного кода

[ups monitor]define fail akb test

balbekova 3 лет назад
Родитель
Сommit
5eeee9bc74
1 измененных файлов с 30 добавлено и 9 удалено
  1. 30 9
      modules/monitor/ups_monitor.c

+ 30 - 9
modules/monitor/ups_monitor.c

@@ -322,7 +322,7 @@ void UPS_NonCriticalAlarmMonitor(void)
   NonCriticalAlarmOldState = NonCriticalAlarmCurrent;
 }
 #endif
-
+static bool test_akb_flag = false;
 /**
   * @brief  Мониторинг бита Test in progress
   */
@@ -368,7 +368,7 @@ void UPS_TestFinishMonitor(void)
           sprintf(log_string, "Авария(%0.2f Ач)", Ccalc);
           log_event_data(LOG_TEST_ALARM_AKB, log_string);
 	        syslog(SYSLOG_INFORMATIONAL, "Ёмкость АКБ: %s", log_string);
-#ifdef HARDWARE_BT6711
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1
           SNMP_SendUserTrap(BATTERY_FAIL);
 #endif
 #ifdef RELAY_ALARM_AKB
@@ -379,7 +379,7 @@ void UPS_TestFinishMonitor(void)
           sprintf(log_string, "Норма(%0.2f Ач)", Ccalc);
           log_event_data(LOG_TEST_ALARM_AKB, log_string);
 	        syslog(SYSLOG_INFORMATIONAL, "Ёмкость АКБ: %s", log_string);
-#ifdef HARDWARE_BT6711
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1
           SNMP_SendUserTrap(BATTERY_NORM);
 #endif
 #ifdef RELAY_ALARM_AKB
@@ -406,7 +406,7 @@ void UPS_TestFinishMonitor(void)
        log_event_data(LOG_TEST_UPS, log_string);
        syslog(SYSLOG_INFORMATIONAL, "Тест батареи: %s", log_string);
        test_time = 0;
-#ifdef HARDWARE_BT6711
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1
           SNMP_SendUserTrap(TEST_BAT_STOP);
 #endif
 #else
@@ -415,6 +415,7 @@ void UPS_TestFinishMonitor(void)
 #endif
       flUpdateLog = true;
     } else {
+      test_akb_flag = true;
       memset(log_string, 0, sizeof(log_string));
       switch (get_act_source()) {
         case WEB_ACT:
@@ -448,7 +449,7 @@ void UPS_TestFinishMonitor(void)
       printf("Test start\r\n");
       log_event_data(LOG_TEST_UPS, log_string);
       syslog(SYSLOG_INFORMATIONAL, "Тест батареи: %s", log_string);
-#ifdef HARDWARE_BT6711
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1
           SNMP_SendUserTrap(TEST_BAT_RUN);
 #endif
       flUpdateLog = true;
@@ -466,6 +467,25 @@ uint8_t UPS_VACinputRangeAlarm(void)
   static uint8_t stateCurrentVACinput_low = HYST_IDLE;
   static uint8_t stateCurrentVACinput_high = HYST_IDLE;
   float VACinputCurrent = UPS.VAC_in;
+  static uint8_t cnt = 0;
+  if(test_akb_flag) {
+   
+    if (UPS.VAC_in>255) {
+      test_akb_flag = false;
+      cnt = 0;
+      ups_metac_service_pdu(ups_cancel_test);
+      log_event_data(LOG_TEST_UPS, "Ошибка");
+    } else {
+      if(cnt < 20){
+        cnt++;
+      } else {
+          if (UPS.Mode == 'L') {
+            test_akb_flag = false;
+          }
+        cnt = 0;
+      }
+    }
+  }
 
   /* Отслеживается переход через нижнию границу */
   if (VACinputCurrent < sSettings.sAlarmManager.ac_input_range.low)
@@ -656,7 +676,7 @@ void UPS_VACoutputLowRangeMonitor(void)
           relay_setup_log(CurrROtype_Sourse, DC_PRESENT, 1);
 #endif
 	        log_event_data(LOG_ALARM_VAC_LOW_OUTPUT, "Авария");
-#ifdef HARDWARE_BT6711
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1
 	        // Отправка трапа о занижении
 	        SNMP_SendUserTrap(VAC_LOW_OUTPUT_ALARM);
 		syslog(SYSLOG_ERROR, "Низкое входное напряжение (%0.1f В)", VACoutputCurrent);
@@ -679,7 +699,7 @@ void UPS_VACoutputLowRangeMonitor(void)
 	        relay_setup_log(CurrROtype_Sourse, DC_PRESENT, 0);
 #endif
 	        log_event_data(LOG_ALARM_VAC_LOW_OUTPUT, "Норма");
-#ifdef HARDWARE_BT6711
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1
 	        // Отправка трапа о нормализации
 	        SNMP_SendUserTrap(VAC_LOW_OUTPUT_NORM);
 		syslog(SYSLOG_NOTICE, "Выходное напряжение в норме (%0.1f В)", VACoutputCurrent);
@@ -730,7 +750,7 @@ void UPS_VACoutputHighRangeMonitor(void)
           relay_setup_log(CurrROtype_Sourse, DC_PRESENT, 1);
 #endif
 	        log_event_data(LOG_ALARM_VAC_HIGH_OUTPUT, "Авария");
-#ifdef HARDWARE_BT6711
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1
 	        // Отправка трапа о завышении
 	        SNMP_SendUserTrap(VAC_HIGH_OUTPUT_ALARM);
 		syslog(SYSLOG_ERROR, "Высокое входное напряжение (%0.1f В)", VACoutputCurrent);
@@ -752,7 +772,7 @@ void UPS_VACoutputHighRangeMonitor(void)
 	        relay_setup_log(CurrROtype_Sourse, DC_PRESENT, 0);
 #endif
 	        log_event_data(LOG_ALARM_VAC_HIGH_OUTPUT, "Норма");
-#ifdef HARDWARE_BT6711         
+#if HARDWARE_BT6711 || HARDWARE_BT6711_V1       
 	        // Отправка трапа о нормализации
 	        SNMP_SendUserTrap(VAC_HIGH_OUTPUT_NORM);
 		syslog(SYSLOG_NOTICE, "Выходное напряжение в норме (%0.1f В)", VACoutputCurrent);
@@ -1387,6 +1407,7 @@ void UPS_BatteryConnectMonitor(void)
   else{
 	  AKBconnectCurrent = 0;
   }
+  AKBconnectCurrent |= UPS.warn_status & 0x01;
 
   UPS.Alarm = (UPS.Alarm & 0xfffffff7) | (AKBconnectCurrent << 3);