Преглед изворни кода

change logic for set relays

balbekova пре 7 година
родитељ
комит
036f9f5fc4
1 измењених фајлова са 59 додато и 13 уклоњено
  1. 59 13
      modules/monitor/ups_monitor.c

+ 59 - 13
modules/monitor/ups_monitor.c

@@ -55,7 +55,7 @@ void UPS_Monitor(void *params)
 	vTaskDelay(5000);
   for (;;)
   {
-	  flCriticalAlarm = false;
+		flCriticalAlarm = false;
 	  flNonCriticalAlarm = false;
     // Проверяем флаг подключения UPS
    if (UPS.Present)
@@ -101,6 +101,11 @@ void UPS_DI0Monitor(void)
 		  SNMP_SendUserTrap(DI0_ALARM);
 		  flUpdateLog = true;
 	  }
+	  else{
+		  log_event_data(LOG_ALARM_DIO, "Норма");
+		  SNMP_SendUserTrap(DI0_NORM);
+		  flUpdateLog = true;
+	  }
 	  return;
 	}
 
@@ -161,27 +166,34 @@ void relay_setup_log_change(uint8_t *curr_source, uint8_t *prev_source, ro_type_
 
 	flUpdateLog = true;
 	for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
-		if(get_state_din_outs(DOUT1 + i)){
+	//	if(get_state_din_outs(DOUT1 + i)){
 			if(curr_source[i] != prev_source[i] && (prev_source[i] == src_act_ro || curr_source[i] == src_act_ro)){
-				  SetROInt(state_relay, i);
-				  SNMP_SendUserTrap((DO0_TOGGLED+i));
 				  if(state_relay){
 #ifdef HARDWARE_BT6706
 					  log_event_data((LOG_DO0_STATE + i), "Разомкнуто");
 #elif HARDWARE_BT6702
-					  log_event_data((LOG_DO0_STATE + i), "Замкнуто");
+					  if(curr_source[i] != src_act_ro){
+						  SetROInt(0, i);
+						  SNMP_SendUserTrap((DO0_TOGGLED+i));
+						  log_event_data((LOG_DO0_STATE + i), "Разомкнуто");
+					  }
+					  else{
+						  SetROInt(1, i);
+						 SNMP_SendUserTrap((DO0_TOGGLED+i));
+						  log_event_data((LOG_DO0_STATE + i), "Замкнуто");
+					  }
 #endif
 
 				  }
-				  else{
+/*				  else{
 #ifdef HARDWARE_BT6706
 					  log_event_data((LOG_DO0_STATE + i), "Замкнуто");
 #elif HARDWARE_BT6702
 					  log_event_data((LOG_DO0_STATE + i), "Разомкнуто");
 #endif
-				  }
+				  }*/
 			}
-		}
+//		}
 	}
 }
 
@@ -211,6 +223,9 @@ void UPS_CriticalAlarmMonitor(void)
 	if(CriticalAlarmCurrent){
 	  relay_setup_log(CurrROtype_Sourse, CRITICAL, 1);
 	}
+	else{
+		relay_setup_log(CurrROtype_Sourse, CRITICAL, 0);
+	}
 	return;
   }
 
@@ -238,8 +253,8 @@ void UPS_CriticalAlarmMonitor(void)
   {
 	  if(CriticalAlarmCurrent)
 		  relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, CRITICAL, 1);
-	  else
-		  relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, CRITICAL, 0);
+	 /* else
+		  relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, CRITICAL, 0);*/
 
   }
 
@@ -273,6 +288,8 @@ void UPS_NonCriticalAlarmMonitor(void)
 		 OldROtype_Sourse[i] = CurrROtype_Sourse[i];
 	  if(NonCriticalAlarmCurrent)
 		  relay_setup_log(CurrROtype_Sourse, NON_CRITICAL, 1);
+	  else
+		  relay_setup_log(CurrROtype_Sourse, NON_CRITICAL, 0);
 
 	return;
   }
@@ -290,9 +307,9 @@ void UPS_NonCriticalAlarmMonitor(void)
   else
   {
 	  if(NonCriticalAlarmCurrent)
-		  relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, CRITICAL, 1);
-	  else
-		  relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, CRITICAL, 0);
+		  relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, NON_CRITICAL, 1);
+	/*  else
+		  relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, NON_CRITICAL, 0);*/
   }
 
   for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
@@ -335,6 +352,14 @@ void UPS_LineFailMonitor(void)
     	relay_setup_log(CurrROtype_Sourse, AC_PRESENT, 1);
 #endif
     }
+    else{
+#ifdef HARDWARE_BT6706
+      relay_setup_log(CurrROtype_Sourse, AC_PRESENT, 0);
+#endif
+      log_event_data(LOG_ALARM_LINE, "Норма");
+      SNMP_SendUserTrap(LINE_NORM);
+      flUpdateLog = true;
+    }
 
     return;
   }
@@ -487,6 +512,14 @@ void UPS_LowBatMonitor(void)
       relay_setup_log(CurrROtype_Sourse, CHARGE_AKB, 1);
 #endif
     }
+    else{
+	  SNMP_SendUserTrap(LOW_BAT_NORM);
+	  log_event_data(LOG_ALARM_LOW_BAT, "Норма");
+	  flUpdateLog = true;
+#ifdef HARDWARE_BT6706
+	  relay_setup_log(CurrROtype_Sourse, CHARGE_AKB, 0);
+#endif
+	}
     return;
   }
   if (lowBatCurrent)
@@ -635,6 +668,11 @@ void UPS_ConnectMonitor(void)
     	SNMP_SendUserTrap(CONNECT_MONITOR_ALARM);
     	flUpdateLog = true;
     }
+    else{
+    	log_event_data(LOG_ALARM_UPS, "Норма");
+		SNMP_SendUserTrap(CONNECT_MONITOR_NORM);
+		flUpdateLog = true;
+    }
     return;
   }
   if (!connectCurrent)
@@ -692,6 +730,14 @@ void UPS_BatteryConnectMonitor(void)
 	  flUpdateLog = true;
 #ifdef HARDWARE_BT6706
       relay_setup_log(CurrROtype_Sourse, OFF_AKB, 1);
+#endif
+    }
+    else{
+    	log_event_data(LOG_ALARM_AKB, "Норма");
+		  SNMP_SendUserTrap(BATTERY_CONNECT_NORM);
+		  flUpdateLog = true;
+#ifdef HARDWARE_BT6706
+		  relay_setup_log(CurrROtype_Sourse, OFF_AKB, 0);
 #endif
     }
     return;