Browse Source

fix relays

balbekova 7 years ago
parent
commit
0e14aa00f0
2 changed files with 17 additions and 11 deletions
  1. 10 10
      modules/monitor/ups_monitor.c
  2. 7 1
      modules/parameters.c

+ 10 - 10
modules/monitor/ups_monitor.c

@@ -175,7 +175,7 @@ void UPS_CriticalAlarmMonitor(void)
   // Значение параметра изменилось
   if (CriticalAlarmCurrent != CriticalAlarmOldState)
   {
-	  if(OldRO0type_Sourse == CRITICAL){
+	  if(CurrRO1type_Sourse == CRITICAL){
 		  memset(str, 0, 30);
 		  if(CriticalAlarmCurrent){
 			  SetROInt(1, 0);
@@ -188,7 +188,7 @@ void UPS_CriticalAlarmMonitor(void)
 		  SNMP_SendUserTrap(DO0_TOGGLED);
 		  log_event_data(LOG_DO0_STATE, str);
 	  }
-	  if(OldRO2type_Sourse == CRITICAL){
+	  if(CurrRO2type_Sourse == CRITICAL){
 		  memset(str, 0, 30);
 		  if(CriticalAlarmCurrent){
 			  SetROInt(1, 1);
@@ -204,7 +204,7 @@ void UPS_CriticalAlarmMonitor(void)
   }
   else
   {
-	  if(OldRO0type_Sourse == CRITICAL && OldRO0type_Sourse != OldRO0type_Sourse){
+	  if(CurrRO1type_Sourse == CRITICAL && CurrRO1type_Sourse != OldRO0type_Sourse){
 		  memset(str, 0, 30);
 		  if(CriticalAlarmCurrent){
 			  SetROInt(1, 0);
@@ -217,7 +217,7 @@ void UPS_CriticalAlarmMonitor(void)
 		  SNMP_SendUserTrap(DO0_TOGGLED);
 		  log_event_data(LOG_DO0_STATE, str);
 	  }
-	  if(OldRO2type_Sourse == CRITICAL && OldRO2type_Sourse != OldRO2type_Sourse){
+	  if(CurrRO2type_Sourse == CRITICAL && CurrRO2type_Sourse != OldRO2type_Sourse){
 		  memset(str, 0, 30);
 		  if(CriticalAlarmCurrent){
 			  SetROInt(1, 1);
@@ -281,7 +281,7 @@ void UPS_NonCriticalAlarmMonitor(void)
   // Значение параметра изменилось
   if (NonCriticalAlarmCurrent != NonCriticalAlarmOldState)
   {
-	  if(OldRO0type_Sourse == NON_CRITICAL){
+	  if(CurrRO1type_Sourse == NON_CRITICAL){
 		  memset(str, 0, 30);
 		  if(NonCriticalAlarmCurrent){
 			  SetROInt(1, 0);
@@ -294,15 +294,15 @@ void UPS_NonCriticalAlarmMonitor(void)
 		  SNMP_SendUserTrap(DO0_TOGGLED);
 		  log_event_data(LOG_DO0_STATE, str);
 	  }
-	  if(OldRO2type_Sourse == NON_CRITICAL){
+	  if(CurrRO2type_Sourse == NON_CRITICAL){
 		  memset(str, 0, 30);
 		  if(NonCriticalAlarmCurrent){
 			  SetROInt(1, 1);
-			  strcat(str, "Разомкнуто");
+			  strcat(str, "Замкнуто");
 		  }
 		  else{
 			  SetROInt(0, 1);
-			  strcat(str, "Замкнуто");
+			  strcat(str, "Разомкнуто");
 		  }
 	  	  SNMP_SendUserTrap(DO1_TOGGLED);
 	  	log_event_data(LOG_DO1_STATE, str);
@@ -310,7 +310,7 @@ void UPS_NonCriticalAlarmMonitor(void)
   }
   else
   {
-	  if(OldRO0type_Sourse == NON_CRITICAL && OldRO0type_Sourse != OldRO0type_Sourse){
+	  if(CurrRO1type_Sourse == NON_CRITICAL && CurrRO1type_Sourse != OldRO0type_Sourse){
 		  memset(str, 0, 30);
 		  if(NonCriticalAlarmCurrent){
 			  SetROInt(1, 0);
@@ -323,7 +323,7 @@ void UPS_NonCriticalAlarmMonitor(void)
 		  SNMP_SendUserTrap(DO0_TOGGLED);
 		  log_event_data(LOG_DO0_STATE, str);
 	  }
-	  if(OldRO2type_Sourse == NON_CRITICAL && OldRO2type_Sourse != OldRO2type_Sourse){
+	  if(CurrRO2type_Sourse == NON_CRITICAL && CurrRO2type_Sourse != OldRO2type_Sourse){
 		  memset(str, 0, 30);
 		  if(NonCriticalAlarmCurrent){
 			  SetROInt(1, 1);

+ 7 - 1
modules/parameters.c

@@ -1073,8 +1073,14 @@ void SetDINTypeActStr(char *str, uint8_t num)
   */
 void SetROTypeActStr(char *str, uint8_t num)
 {
+	static uint8_t OldROtype_Sourse[2] = {0};
+
+	OldROtype_Sourse[num] = sSettings.sInOuts.ro_type_source[num];
+
 	sSettings.sInOuts.ro_type_source[num] = atoi(str);
-	SetROInt(0, num);
+
+	if(OldROtype_Sourse[num] != sSettings.sInOuts.ro_type_source[num])
+		SetROInt(0, num);
 }
 
 /**