Bladeren bron

[BT-6711]add traps, some fix

balbekova 4 jaren geleden
bovenliggende
commit
7a0f613736

+ 6 - 2
config/board_bt6711.h

@@ -178,6 +178,10 @@ XSETTING( Syslog_Settings_t,	sSyslog, SETTINGS_SetSyslogDef, ALL_DEFAULT ) \
   XTRAP(VAC_LOW_OUTPUT_NORM,               12,     true,      GetOutputVoltageStr) \
   XTRAP(VAC_HIGH_OUTPUT_ALARM,             12,     true,      GetOutputVoltageStr) \
   XTRAP(VAC_HIGH_OUTPUT_NORM,              12,     true,      GetOutputVoltageStr) \
+  XTRAP(TEST_BAT_RUN,                      16,     true,      GetBatCapacityStr) \
+  XTRAP(TEST_BAT_STOP,                     16,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_FAIL,                      16,     true,      GetBatCapacityStr) \
+  XTRAP(BATTERY_NORM,                      16,     true,      GetBatCapacityStr) \  
   XTRAP(LOW_BAT_ALARM,                     16,     true,      GetBatCapacityStr) \
   XTRAP(LOW_BAT_NORM,                      16,     true,      GetBatCapacityStr) \
   XTRAP(BATTERY_CONNECT_ALARM,             16,     true,      GetBatCapacityStr) \
@@ -204,10 +208,10 @@ typedef enum
   VAC_LOW_OUTPUT_NORM,
   VAC_HIGH_OUTPUT_ALARM,
   VAC_HIGH_OUTPUT_NORM,
-#if 0
   TEST_BAT_RUN,
   TEST_BAT_STOP,
-#endif
+  BATTERY_FAIL,
+  BATTERY_NORM,
   LOW_BAT_ALARM,
   LOW_BAT_NORM,
   BATTERY_CONNECT_ALARM,

+ 32 - 8
docs/bt6711/BT6711.MIB

@@ -580,53 +580,77 @@ IMPORTS
      DESCRIPTION ""
      ::= { traps 15 } 
 
-     lowBatAlarm  NOTIFICATION-TYPE
+     testBatRun  NOTIFICATION-TYPE
      OBJECTS              { batCap }
      STATUS               current
      DESCRIPTION ""
      ::= { traps 16 }
 
-     lowBatNorm  NOTIFICATION-TYPE
+     testBatStop  NOTIFICATION-TYPE
      OBJECTS              { batCap }
      STATUS               current
      DESCRIPTION ""
      ::= { traps 17 }
 
-     batteryConnectAlarm  NOTIFICATION-TYPE
+     batteryFailed  NOTIFICATION-TYPE
      OBJECTS              { batCap }
      STATUS               current
      DESCRIPTION ""
      ::= { traps 18 }
 
-     batteryConnectNorm  NOTIFICATION-TYPE
+     batteryNorm  NOTIFICATION-TYPE
      OBJECTS              { batCap }
      STATUS               current
      DESCRIPTION ""
      ::= { traps 19 }	
+
+     lowBatAlarm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 20 }
+
+     lowBatNorm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 21 }
+
+     batteryConnectAlarm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 22 }
+
+     batteryConnectNorm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 23 }	
 	 
      powerAlarm  NOTIFICATION-TYPE
      OBJECTS              { power }
      STATUS               current
      DESCRIPTION ""
-     ::= { traps 20 }
+     ::= { traps 24 }
 
     powerNorm  NOTIFICATION-TYPE
      OBJECTS              { power }
      STATUS               current
      DESCRIPTION ""
-     ::= { traps 21 }
+     ::= { traps 25 }
 
 	ConnectMonitorAlarm  NOTIFICATION-TYPE
      OBJECTS              { connectMonitor }
      STATUS               current
      DESCRIPTION ""
-     ::= { traps 22 }
+     ::= { traps 26 }
 	 
      connectMonitorNorm  NOTIFICATION-TYPE
      OBJECTS              { connectMonitor }
      STATUS               current
      DESCRIPTION ""
-     ::= { traps 23 }
+     ::= { traps 27 }
 
 END
 

+ 4 - 4
modules/MegaTec/megatec.c

@@ -778,14 +778,14 @@ void ups_mode_response(char *data)
     DBG printf("UPS ups_mode_parser_start: %s\r\n", data);
 #ifdef UPS_MODE_MONITOR
     if (UPS.Mode != data[0]) {
+        UPS.Mode = data[0]; 
         memset(value, 0, sizeof(value));
         GetModeStr(value, &len);
         SNMP_SendUserTrap(UPS_MODE);
         syslog(SYSLOG_INFORMATIONAL, "Режим ИБП: %s", value);
         log_event_data(LOG_UPS_MODE, value);
     }
-#endif
-    UPS.Mode = data[0]; 
+#endif    
 }
 
 #define BIT_OFFSET(c, offset) ((c - 0x30) << offset)
@@ -966,7 +966,7 @@ void kstar_mode(void)
 void request_task(void *params)
 {
     uint8_t kestar_req[3] = { ups_status_req, ups_remain_time_reg, ups_info};
-    uint8_t voltronic_req[8] = {ups_status_req, ups_akb_info, ups_model_req, ups_version_req, ups_version2_req, ups_serial_req, ups_mode_req, ups_warning_status};//
+    uint8_t voltronic_req[8] = {ups_status_req, ups_akb_info, ups_model_req, ups_mode_req, ups_version_req, ups_version2_req, ups_serial_req, ups_warning_status};//
     uint8_t num_req = 0;
     uint8_t *req;
 
@@ -1120,7 +1120,7 @@ void ups_megatec_init(void)
 {
     init_UPS_value();
     UPS.Present = true;
-    xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
+    xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 3, NULL, tskIDLE_PRIORITY, NULL);
     xTaskCreate(akb_time_work_task, ( char * ) "akb_time_work_task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY,
         NULL);
     UPSRestoreTimer = xTimerCreate("UPSRestoreTmr", configTICK_RATE_HZ*30, pdFALSE, ( void * ) 0, UPSRestoreCallback);

+ 2 - 0
modules/cli/CLI_Commands.c

@@ -38,7 +38,9 @@
 #include "cli.h"
 #include "netconf.h"
 #include "control_symbol.h"
+#ifdef SYSLOG_ENABLE
 #include "syslog.h"
+#endif
 
 const int8_t *const pcInvalidCommand = ( int8_t * )
     "Неправильно введены параметры команды.  Введите \"help\" для просмотра списка поддерживаемых команд.\r\n\r\n";

+ 16 - 4
modules/monitor/ups_monitor.c

@@ -367,7 +367,10 @@ void UPS_TestFinishMonitor(void)
         if (Ccalc_percent >= 80) {
           sprintf(log_string, "Авария(%0.2f Ач)", Ccalc);
           log_event_data(LOG_TEST_ALARM_AKB, log_string);
-	  syslog(SYSLOG_INFORMATIONAL, "Тест батареи: %s", log_string);
+	        syslog(SYSLOG_INFORMATIONAL, "Ёмкость АКБ: %s", log_string);
+#ifdef HARDWARE_BT6711
+          SNMP_SendUserTrap(BATTERY_FAIL);
+#endif
 #ifdef RELAY_ALARM_AKB
           relay_setup_log(CurrROtype_Sourse, ALARM_AKB, 1);
           AKBAlarmState = 1;
@@ -375,7 +378,10 @@ void UPS_TestFinishMonitor(void)
         } else {
           sprintf(log_string, "Норма(%0.2f Ач)", Ccalc);
           log_event_data(LOG_TEST_ALARM_AKB, log_string);
-	  syslog(SYSLOG_INFORMATIONAL, "Тест батареи: %s", log_string);
+	        syslog(SYSLOG_INFORMATIONAL, "Ёмкость АКБ: %s", log_string);
+#ifdef HARDWARE_BT6711
+          SNMP_SendUserTrap(BATTERY_NORM);
+#endif
 #ifdef RELAY_ALARM_AKB
           relay_setup_log(CurrROtype_Sourse, ALARM_AKB, 0);
           AKBAlarmState = 0;
@@ -400,6 +406,9 @@ void UPS_TestFinishMonitor(void)
        log_event_data(LOG_TEST_UPS, log_string);
        syslog(SYSLOG_INFORMATIONAL, "Тест батареи: %s", log_string);
        test_time = 0;
+#ifdef HARDWARE_BT6711
+          SNMP_SendUserTrap(TEST_BAT_STOP);
+#endif
 #else
       log_event_data(LOG_TEST_UPS, "Завершен");
       syslog_str(SYSLOG_INFORMATIONAL, "Тест батареи: Завершён");
@@ -439,6 +448,9 @@ 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
+          SNMP_SendUserTrap(TEST_BAT_RUN);
+#endif
       flUpdateLog = true;
     }
   }
@@ -874,7 +886,7 @@ static uint8_t UPS_LoadRangeAlarm(void)
   /* Отслеживается переход через верхнюю границу */
   if (load > sSettings.sAlarmManager.load_range.high)
   {
-     if (stateCurrent == HYST_IDLE) {
+     if (stateCurrent == HYST_IDLE || stateCurrent == HYST_UP) {
         stateCurrent = HYST_UP;
         flag = 1;
       }
@@ -1043,7 +1055,7 @@ static uint8_t UPS_TempHighRangeAlarm(void)
   /* Отслеживается переход через верхнюю границу */
   if (temperature > sSettings.sAlarmManager.Temprature_range.high)
   {
-     if (stateCurrent == HYST_IDLE) {
+     if (stateCurrent == HYST_IDLE || stateCurrent == HYST_UP) {
         stateCurrent = HYST_UP;
         flag = 1;
       }

+ 8 - 3
modules/settings_api_bt6711.c

@@ -66,6 +66,7 @@ const char* name_traps[] =
   "Успешное обновл. ПО",
   "Сброс настроек",
   "Перезагрузка",
+  "Режим работы ИБП",
   "Норм. темп. АКБ по верх. границы",
   "Авария темп. АКБ по верх. границы",
   "Норм. темп. АКБ по ниж. границы",
@@ -77,13 +78,17 @@ const char* name_traps[] =
   "Авария вых. напряжения по верх. границы",
   "Норм. вых. напряжения по верх. границы",
   "Низкий заряд АКБ",
+  "Тест АКБ запущен",
+  "Тест АКБ завершен",
+  "Отказ АКБ",
+  "АКБ в норме",
   "Нормализация заряда АКБ",
-  "Нагрузка в норме",
+  "Отключение АКБ",
+  "Подключение АКБ",
   "Авария нагрузки",
+  "Нагрузка в норме",
   "Авария соединения с ИБП",
   "Норм. соединения с ИБП",
-  "Отключение АКБ",
-  "Подключение АКБ",
 };
 
 /**