Quellcode durchsuchen

1)remove unuse file
2)[bt_6709]add alarm change_akb log/trap

balbekova vor 5 Jahren
Ursprung
Commit
3c55b3672d

+ 12 - 0
docs/bt6709/BT6709.MIB

@@ -531,6 +531,18 @@ IMPORTS
      STATUS               current
      DESCRIPTION ""
      ::= { traps 18 }
+
+     changeBatteryAlarm  NOTIFICATION-TYPE
+     OBJECTS              { intTemp }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 19 }
+
+     changeBatteryNorm  NOTIFICATION-TYPE
+     OBJECTS              { intTemp }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 20 }
 	
 END
 

+ 21 - 7
modules/Ethernet/trap_api.c

@@ -280,11 +280,25 @@ void SNMP_InitTrapsBase(void)
   traps[BATTERY_LOW_TEMPERATURE_ALARM].varbindId = 10;
 #elif defined HARDWARE_BT6707
   traps[BATTERY_LOW_TEMPERATURE_ALARM].varbindId = 11;
-#elif defined HARDWARE_BT608
+#elif defined HARDWARE_BT609
   traps[BATTERY_LOW_TEMPERATURE_ALARM].varbindId = 9;
 #endif
   traps[BATTERY_LOW_TEMPERATURE_ALARM].trapEnable = true;
   traps[BATTERY_LOW_TEMPERATURE_ALARM].handle = GetInternalTempStr; /* BatteryTemperature */
+
+#ifdef HARDWARE_BT6709
+ /* 23. AKBChangeAlarm */ // +
+    traps[BATTERY_CHANGE_ALARM].trapId = BATTERY_CHANGE_ALARM;
+    traps[BATTERY_CHANGE_ALARM].varbindId = 49;
+    traps[BATTERY_CHANGE_ALARM].trapEnable = true;
+    traps[BATTERY_CHANGE_ALARM].handle = GetDataNextChangeAKBStr; /* data next change AKB */
+
+ /* 24. AKBChangeNorm */ // +
+    traps[BATTERY_CHANGE_MORM].trapId = BATTERY_CHANGE_MORM;
+    traps[BATTERY_CHANGE_MORM].varbindId = 49;
+    traps[BATTERY_CHANGE_MORM].trapEnable = true;
+    traps[BATTERY_CHANGE_MORM].handle = GetDataNextChangeAKBStr; /* data next change AKB */
+#endif
 }
 
 /**
@@ -336,14 +350,14 @@ uint32_t snmp_time = 0;
 struct snmp_obj_id  mib2_base_oid_systime ={ 9, { 1, 3, 6, 1, 2, 1, 1, 3, 0 }};
 struct snmp_obj_id  trap_oid = {11, {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0}};
 #ifdef HARDWARE_BT6703
-struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
-struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
+struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 6, 2, 1}};
+struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 6, 1, 1}};
 #elif defined HARDWARE_BT6707
-struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 4, 2, 1}};
-struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 4, 1, 1}};
+struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 7, 2, 1}};
+struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 7, 1, 1}};
 #elif defined HARDWARE_BT6709
-struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 5, 2, 1}};
-struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 5, 1, 1}};
+struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 8, 2, 1}};
+struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 8, 1, 1}};
 #endif
 /**
   * @brief  Отправка трапа с переменной, зарегистрированного в базе.

+ 4 - 0
modules/Ethernet/trap_api.h

@@ -52,6 +52,10 @@ typedef enum
   BATTERY_CONNECT_NORM,
   BATTERY_LOW_TEMPERATURE_NORM,
   BATTERY_LOW_TEMPERATURE_ALARM,
+#ifdef HARDWARE_BT6709
+  BATTERY_CHANGE_ALARM,
+  BATTERY_CHANGE_MORM,
+#endif
   ALL_TRAPS
 } TRAP_LIST_t;
 

+ 0 - 1
modules/HTTP_Server/http_server.c

@@ -8,7 +8,6 @@
 #include "web_params_api.h"
 #include "parameters.h"
 #include "urlcode.h"
-#include "trap_params.h"
 #ifdef HARDWARE_BT6707
 #include "bt6707_fs/fsdata.c"
 #elif HARDWARE_BT6709

+ 0 - 40
modules/HTTP_Server/trap_params.c

@@ -1,40 +0,0 @@
-/********************************* (C) РОТЕК ***********************************
- * @module  trap_params
- * @file    trap_params.c
- * @version 1.0.0
- * @date    XX.XX.XXXX
- * $brief   trap_params
- *******************************************************************************
- * @history     Version  Author         Comment
- * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
- *******************************************************************************
- */
-
-#include "stm32f4xx.h"  
-#include "trap_params.h"
-#include "settings_api.h"
-#include "trap_api.h"
-
-#ifdef PRINTF_STDLIB
-#include <stdio.h>
-#endif
-#ifdef PRINTF_CUSTOM
-#include "tinystdio.h"
-#endif
-#include <string.h>
-#include <stdlib.h>
-   
-/**
-  * @brief  Общая структура настроек
-  */
-extern SETTINGS_t sSettings;
-
-/**
-  * @brief  Пул всех возможных трапов устройства
-  */
-extern TRAP_t traps[];
-
-
-
-
-/********************************* (C) РОТЕК **********************************/

+ 0 - 185
modules/HTTP_Server/trap_params.h

@@ -1,185 +0,0 @@
-/********************************* (C) РОТЕК ***********************************
- * @module  trap_params
- * @file    trap_params.h
- * @version 1.0.0
- * @date    XX.XX.XXXX
- * $brief   trap_params
- *******************************************************************************
- * @history     Version  Author         Comment
- * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
- *******************************************************************************
- */
-
-/* Define to prevent recursive  ----------------------------------------------*/
-#ifndef TRAP_PARAMS_H
-#define TRAP_PARAMS_H
-
-/**
-  * @brief  Нормализация напряжения на АКБ
-  */
-void GetBatteryVoltageNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryVoltageAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatterySimmetryNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatterySimmetryAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryControlChanged(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryChargeControlChanged(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryCurrentNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryCurrentAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryTemperatureNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryTemperatureAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetDoorNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetDoorAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetLoadVoltageNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetLoadVoltageAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetLoadCurrentNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetLoadCurrentAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetLoadControlChanged(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetTemperatureNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetTemperatureAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetPPSOutVoltageNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetPPSOutVoltageAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetPPSOutCurrentNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetPPSOutCurrentAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetPPSControlChanged(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetCheck220VACNorm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetCheck220VACAlarm(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetDeviceRestored(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetDeviceRebooted(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetModeChanged(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryTimeout(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetFWVersionUpdate(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetFWVersionUpdated(char *str, uint8_t *len);
-
-/**
-  * @brief  
-  */
-void GetBatteryProfilaction(char *str, uint8_t *len);
-
-
-#endif /* #ifndef TRAP_PARAMS_H */
-
-/********************************* (C) РОТЕК **********************************/

+ 1 - 2
modules/HTTP_Server/web_params_api.c

@@ -18,7 +18,6 @@
 #include "my_ssl_server.h"
 #endif
 #include "parameters.h"
-#include "trap_params.h"
 #include "snmp_api.h"
 #include "trap_api.h"
 #include "settings_api.h"
@@ -112,7 +111,7 @@ char *HTTP_GetParamsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t le
     strcat(bufOut, "\",\"bat_cap\":\"");
     strncat(bufOut, str, len);
 
-    GetDataNextChangeAKBStr(str, &len);
+    GetDataNextChangeAKBStrRU(str, &len);
     strcat(bufOut, "\",\"bat_exp\":\"");
     strncat(bufOut, str, len);
 

+ 2 - 2
modules/Telnet_Server/CLI_Parameters.c

@@ -413,7 +413,7 @@ void ups_sensor_param(int8_t *buf)
 //Параметры аккумуляторных батарей
 void ups_sensor_akb_param(int8_t *buf)
 {
-	char str[20];
+	char str[40];
 	uint8_t len = 0;
 
 	const int8_t * const pcAKBInfoTableHeader = ( int8_t * ) "\r\n*********Параметры аккумуляторных батарей*********\r\n";
@@ -443,7 +443,7 @@ void ups_sensor_akb_param(int8_t *buf)
 	strncat(( char * ) buf, str, len);
 
 	strcat(( char * ) buf, "\r\nДата следующей замены:\t\t\t");
-	GetDataNextChangeAKBStr(str, &len);
+	GetDataNextChangeAKBStrRU(str, &len);
 	strncat(( char * ) buf, str, len);
 #endif
 

+ 3 - 0
modules/log/log.c

@@ -49,6 +49,9 @@ const char* logsStrShortRu[] =
     "Авария нагрузки",
     "Авария связи с ИБП",
     "Авария отключения АКБ",
+#ifdef HARDWARE_BT6709
+	"Замена АКБ",
+#endif
 };
 
 bool flUpdateLog = false;

+ 3 - 0
modules/log/log.h

@@ -47,6 +47,9 @@ typedef __packed enum {
 	LOG_ALARM_POWER,
 	LOG_ALARM_UPS,
 	LOG_ALARM_AKB,
+#ifdef HARDWARE_BT6709
+	LOG_ALARM_CHANGE_AKB,
+#endif
 	LOG_VALUE,
 	LOG_NONE,
 } log_type_t;

+ 65 - 0
modules/monitor/ups_monitor.c

@@ -17,6 +17,7 @@
 #include "megatec.h"
 #include "led.h"
 #include "log.h"
+#include "rtc.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -66,6 +67,9 @@ void UPS_Monitor(void *params)
 #ifndef HARDWARE_BT6709
     UPS_DI0Monitor();
 #endif
+#ifdef HARDWARE_BT6709
+    AKB_Change_Monitor();
+#endif
 #ifdef HARDWARE_BT6703
     UPS_CriticalAlarmMonitor();
     UPS_NonCriticalAlarmMonitor();
@@ -406,6 +410,12 @@ void UPS_LineFailMonitor(void)
 
     	log_event_data(LOG_ALARM_LINE, "Авария");
     	SNMP_SendUserTrap(LINE_ALARM);
+#ifdef HARDWARE_BT6709
+      if(UPS.Alarm & 0x40) {
+        log_event_data(LOG_ALARM_CHANGE_AKB, "Авария");
+    	  SNMP_SendUserTrap(BATTERY_CHANGE_ALARM);
+      }   
+#endif
     	flUpdateLog = true;
     }
     else{
@@ -939,7 +949,62 @@ void UPS_BatteryConnectMonitor(void)
   }
 }
 
+#ifdef HARDWARE_BT6709
+/**
+  * @brief  Мониторинг параметра замены АКБ
+  */
+void AKB_Change_Monitor(void)
+{
+  uint32_t data_change = sSettings.UPS_Setting.set_data + (31536000*sSettings.UPS_Setting.life_time);
+  TM_RTC_t tmp_data;
+  static bool isValueRecv = false;
+  static uint8_t status_change_akb = 0;
+  uint8_t curr_status_change_akb = 0;
+  
+  TM_RTC_GetDateTime(&tmp_data, TM_RTC_Format_BIN);
+  
+  if (tmp_data.unix >= data_change) {
+    UPS.Alarm |= (1 << 6);
+    curr_status_change_akb = 1;
+    flCriticalAlarm = true;
+  }
+  else {
+    UPS.Alarm &= 0xbf;
+    curr_status_change_akb = 0;
+  }
+
+  if (!isValueRecv) {
+    isValueRecv = true;
+    status_change_akb = curr_status_change_akb;
+    if (curr_status_change_akb){
+    	log_event_data(LOG_ALARM_CHANGE_AKB, "Авария");
+    	SNMP_SendUserTrap(BATTERY_CHANGE_ALARM);
+    	flUpdateLog = true;
+    }
+    else{
+    	log_event_data(LOG_ALARM_CHANGE_AKB, "Норма");
+      SNMP_SendUserTrap(BATTERY_CHANGE_MORM);
+      flUpdateLog = true;
+    }
+    return;
+  }
 
+  // Значение параметра изменилось
+  if (status_change_akb != curr_status_change_akb)
+  {
+    if (curr_status_change_akb){
+      log_event_data(LOG_ALARM_CHANGE_AKB, "Авария");
+    	SNMP_SendUserTrap(BATTERY_CHANGE_ALARM);
+      flUpdateLog = true;
+    } else {
+      log_event_data(LOG_ALARM_CHANGE_AKB, "Норма");
+      SNMP_SendUserTrap(BATTERY_CHANGE_MORM);
+      flUpdateLog = true;
+    }
+  }
+  status_change_akb = curr_status_change_akb;
+}
+#endif
 
 
 /********************************* (C) РОТЕК **********************************/

+ 7 - 0
modules/monitor/ups_monitor.h

@@ -94,6 +94,13 @@ void UPS_ConnectMonitor(void);
   */
 void UPS_BatteryConnectMonitor(void);
 
+#ifdef HARDWARE_BT6709
+/**
+  * @brief  Мониторинг параметра замены АКБ
+  */
+void AKB_Change_Monitor(void);
+#endif
+
 #endif /* #ifndef UPS_MONITOR_H */
 
 /********************************* (C) РОТЕК **********************************/

+ 23 - 0
modules/parameters.c

@@ -1047,6 +1047,29 @@ void GetUPSVoltCellMaxStr(char *str, uint8_t *len)
 
 #ifdef HARDWARE_BT6709
 
+/**
+  * @brief Дата замены АКБ
+  */
+void GetDataNextChangeAKBStrRU(char *str, uint8_t *len)
+{
+    if(sSettings.UPS_Setting.set_data == 0){
+      sprintf(str, "%s", "не установлена");
+      *len = strlen(str);
+      return;
+    }
+    TM_RTC_t data;
+    uint16_t sys_year;
+    uint32_t data_change = sSettings.UPS_Setting.set_data + (31536000*sSettings.UPS_Setting.life_time);
+
+    memset(&data, 0, sizeof(data));
+
+    TM_RTC_GetDateTimeFromUnix(&data, data_change);
+    sys_year = 2000 + data.year;
+
+    sprintf(str, "%04i-%02i-%02i", sys_year, data.month, data.date);
+    *len = strlen(str);
+}
+
 /**
   * @brief Дата замены АКБ
   */

+ 5 - 0
modules/parameters.h

@@ -430,6 +430,11 @@ void GetUPSVoltCellMaxStr(char *str, uint8_t *len);
 
 #ifdef HARDWARE_BT6709
 
+/**
+  * @brief Дата замены АКБ
+  */
+void GetDataNextChangeAKBStrRU(char *str, uint8_t *len);
+
 /**
   * @brief Дата замены АКБ
   */