Browse Source

[BT-6710]1. add alarm temperature sensor
2. improve detect alarm temperature range

balbekova 5 years ago
parent
commit
f2e4c124b2

+ 6 - 3
config/board_bt6710.h

@@ -236,9 +236,10 @@ typedef enum {
 	LOG_ALARM_LOW_CABINET_TEMP,
 	LOG_ALARM_LOW_CABINET_TEMP,
 	LOG_ALARM_LINE,
 	LOG_ALARM_LINE,
 	LOG_ALARM_LOW_BAT,
 	LOG_ALARM_LOW_BAT,
-	LOG_ALARM_POWER,
 	LOG_ALARM_UPS,
 	LOG_ALARM_UPS,
 	LOG_ALARM_AKB,
 	LOG_ALARM_AKB,
+  LOG_ALARM_SENSOR_AKB,
+  LOG_ALARM_SENSOR_CABINET,
 	LOG_VALUE,
 	LOG_VALUE,
 	LOG_NONE,
 	LOG_NONE,
 } log_type_t;
 } log_type_t;
@@ -247,6 +248,7 @@ typedef enum {
 #define LINE_FAIL_MONITOR
 #define LINE_FAIL_MONITOR
 #define VAC_OUT_MONITOR
 #define VAC_OUT_MONITOR
 #define LOW_BAT_MONITOR
 #define LOW_BAT_MONITOR
+#define SENSOR_TEMP_MONITOR
 #define TEMP_AKB_MONITOR
 #define TEMP_AKB_MONITOR
 #define TEMP_CABINET_MONITOR
 #define TEMP_CABINET_MONITOR
 #define BAT_CONNECT_MONITOR
 #define BAT_CONNECT_MONITOR
@@ -259,8 +261,9 @@ typedef enum {
   XMONITOR(UPS_VACoutputLowRangeMonitor,        UPS.Present) \
   XMONITOR(UPS_VACoutputLowRangeMonitor,        UPS.Present) \
   XMONITOR(UPS_VACoutputHighRangeMonitor,       UPS.Present) \
   XMONITOR(UPS_VACoutputHighRangeMonitor,       UPS.Present) \
   XMONITOR(UPS_LowBatMonitor,                   UPS.Present) \
   XMONITOR(UPS_LowBatMonitor,                   UPS.Present) \
-  XMONITOR(UPS_TemperatureHighRangeMonitor,     UPS.Present) \
-  XMONITOR(UPS_TemperatureLowRangeMonitor,      UPS.Present) \
+  XMONITOR(sensorTemperatureMonitor,            1) \
+  XMONITOR(UPS_TemperatureHighRangeMonitor,     (UPS.Present || sSettings.sTempControl[0].type_sensor == TS_AKB || sSettings.sTempControl[1].type_sensor == TS_AKB)) \
+  XMONITOR(UPS_TemperatureLowRangeMonitor,      (UPS.Present || sSettings.sTempControl[0].type_sensor == TS_AKB || sSettings.sTempControl[1].type_sensor == TS_AKB)) \
   XMONITOR(Cabinet_TemperatureHighRangeMonitor, 1) \
   XMONITOR(Cabinet_TemperatureHighRangeMonitor, 1) \
   XMONITOR(Cabinet_TemperatureLowRangeMonitor,  1) \
   XMONITOR(Cabinet_TemperatureLowRangeMonitor,  1) \
   XMONITOR(UPS_BatteryConnectMonitor,           UPS.Present) \
   XMONITOR(UPS_BatteryConnectMonitor,           UPS.Present) \

+ 62 - 0
modules/monitor/ups_monitor.c

@@ -747,6 +747,68 @@ void UPS_PowerMonitor(void)
 #endif
 #endif
 }
 }
 
 
+#ifdef SENSOR_TEMP_MONITOR
+/**
+  * @brief  Мониторинг аварии датчика температуры
+  */
+void sensorTemperatureMonitor(void)
+{
+  float temperature;
+  static uint8_t type_sensor[MAX_T_SENSORS];
+  static uint8_t alarm[MAX_T_SENSORS]; 
+  static uint8_t start_monitor = 0;
+
+  if (start_monitor == 0) {
+    start_monitor = 1;
+    for(uint8_t i = 0; i < MAX_T_SENSORS; i ++){
+      type_sensor[i] = sSettings.sTempControl[i].type_sensor;
+    }
+  } 
+
+  for(uint8_t i = 0; i < MAX_T_SENSORS; i ++){
+    if (alarm[i] && sSettings.sTempControl[i].type_sensor != type_sensor[i]) {
+      alarm[i] = 0;
+      if (type_sensor[i] == TS_AKB) {
+        log_event_data(LOG_ALARM_SENSOR_AKB, "Норма");
+      } else if (type_sensor[i] == TS_CABINET) {
+        log_event_data(LOG_ALARM_SENSOR_CABINET, "Норма");
+      }
+    }
+    if (sSettings.sTempControl[i].type_sensor == TS_AKB) {
+      GetInternalTempInt(&temperature);
+      if(temperature == 85) {
+        if(!alarm[i]) {
+          log_event_data(LOG_ALARM_SENSOR_AKB, "Авария");
+          flLedAlarm = true;
+          alarm[i] = 1;
+        }
+      } else {
+        if(alarm[i]) {
+          log_event_data(LOG_ALARM_SENSOR_AKB, "Норма");
+          alarm[i] = 0;
+        }
+      }
+    } else if (sSettings.sTempControl[i].type_sensor == TS_CABINET) {
+      GetTempCaseInt(&temperature);
+      if(temperature == 85) {
+        if(!alarm[i]) {
+          log_event_data(LOG_ALARM_SENSOR_CABINET, "Авария");
+          flLedAlarm = true;
+          alarm[i] = 1;
+        }
+      } else {
+        if(alarm[i]) {
+          log_event_data(LOG_ALARM_SENSOR_CABINET, "Норма");
+          alarm[i] = 0;
+        }
+      }
+    }
+    type_sensor[i] = sSettings.sTempControl[i].type_sensor;
+  }
+}
+
+#endif
+
 #ifdef TEMP_AKB_MONITOR
 #ifdef TEMP_AKB_MONITOR
 /**
 /**
   * @brief  Мониторинг температуры по верхней границе
   * @brief  Мониторинг температуры по верхней границе

+ 7 - 0
modules/monitor/ups_monitor.h

@@ -79,6 +79,13 @@ void UPS_Monitor(void *params);
   */
   */
 void UPS_PowerMonitor(void);
 void UPS_PowerMonitor(void);
 
 
+#ifdef SENSOR_TEMP_MONITOR
+/**
+  * @brief  Мониторинг аварии датчика температуры
+  */
+void sensorTemperatureMonitor(void);
+#endif
+
 #ifdef TEMP_AKB_MONITOR
 #ifdef TEMP_AKB_MONITOR
 /**
 /**
   * @brief  Мониторинг температуры по верхней границе
   * @brief  Мониторинг температуры по верхней границе

+ 2 - 2
modules/settings_api_bt6710.c

@@ -56,10 +56,10 @@ const char *logsStrShortRu[] = {
     "Низкая температура Шкафа",
     "Низкая температура Шкафа",
     "Авария вх. напряжения",
     "Авария вх. напряжения",
     "Низкий заряд АКБ",
     "Низкий заряд АКБ",
-    "Авария нагрузки",
     "Авария связи с ИБП",
     "Авария связи с ИБП",
     "Авария отключения АКБ",
     "Авария отключения АКБ",
-    "Замена АКБ",
+    "Авария датч. темп. АКБ",
+    "Авария датч. темп. Шкафа",
 };
 };
 
 
 /**
 /**