Browse Source

fix dry state

balbekova 7 years ago
parent
commit
db21ca415c
2 changed files with 6 additions and 6 deletions
  1. 4 4
      modules/monitor/ups_monitor.c
  2. 2 2
      modules/parameters.c

+ 4 - 4
modules/monitor/ups_monitor.c

@@ -84,12 +84,12 @@ void UPS_DI0Monitor(void)
 
   DI0StateCurrent = get_state_din_outs(DIN1) ^ sSettings.sInOuts.din_type_act[0];
 
-  UPS.Alarm = (UPS.Alarm & 0x0f) | ((DI0StateCurrent^1) << 4);
+  UPS.Alarm = (UPS.Alarm & 0x0f) | (DI0StateCurrent << 4);
 
   	if (!isValueRecv) {
 	  isValueRecv = true;
 	  DI0OldState = DI0StateCurrent;
-	  if (!DI0StateCurrent){
+	  if (DI0StateCurrent){
 		  log_event_data(LOG_ALARM_DIO, "Авария");
 		  SNMP_SendUserTrap(DI0_ALARM);
 		  flUpdateLog = true;
@@ -97,14 +97,14 @@ void UPS_DI0Monitor(void)
 	  return;
 	}
 
-	if (!DI0StateCurrent)
+	if (DI0StateCurrent)
 	  flCriticalAlarm = true;
 
 	// Значение параметра изменилось
 	if (DI0StateCurrent != DI0OldState)
 	{
 
-	  if (DI0StateCurrent){
+	  if (!DI0StateCurrent){
 		log_event_data(LOG_ALARM_DIO, "Норма");
 		SNMP_SendUserTrap(DI0_NORM);
 		flUpdateLog = true;

+ 2 - 2
modules/parameters.c

@@ -274,7 +274,7 @@ void GetDINTypeActStr(char *str, uint8_t *len, uint8_t num)
   */
 void GetDINStatusStr(char *str, uint8_t *len, uint8_t num)
 {
-	sprintf(str, "%d", get_state_din_outs(DIN1+num));
+	sprintf(str, "%d", (get_state_din_outs(DIN1+num)^1));
 	*len = strlen(str);
 }
 
@@ -283,7 +283,7 @@ void GetDINStatusStr(char *str, uint8_t *len, uint8_t num)
   */
 void GetDIN0StatusStr(char *str, uint8_t *len)
 {
-	sprintf(str, "%d", get_state_din_outs(DIN1));
+	sprintf(str, "%d", (get_state_din_outs(DIN1)^1));
 	*len = strlen(str);
 }