|  | @@ -31,6 +31,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  bool flCriticalAlarm = false;
 | 
	
		
			
				|  |  |  bool flNonCriticalAlarm = false;
 | 
	
		
			
				|  |  | +bool flLedAlarm = false;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |    * @brief  Общая структура настроек
 | 
	
	
		
			
				|  | @@ -49,13 +50,14 @@ void UPS_Monitor(void *params)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  |  		flCriticalAlarm = false;
 | 
	
		
			
				|  |  |  	  flNonCriticalAlarm = false;
 | 
	
		
			
				|  |  | +    flLedAlarm = false;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #define XMONITOR(monitor_func, present) if (present) { monitor_func(); }
 | 
	
		
			
				|  |  |          MONITOR_TABLE
 | 
	
		
			
				|  |  |  #undef XMONITOR
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifdef LED_ALARM
 | 
	
		
			
				|  |  | -      if(flCriticalAlarm){
 | 
	
		
			
				|  |  | +      if(flLedAlarm){
 | 
	
		
			
				|  |  |      	  if (UPS.Present)
 | 
	
		
			
				|  |  |      		  LED_On(LED_ALARM);
 | 
	
		
			
				|  |  |      	  else
 | 
	
	
		
			
				|  | @@ -104,9 +106,10 @@ void UPS_DI0Monitor(void)
 | 
	
		
			
				|  |  |        continue;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    /*if (DI0StateCurrent)
 | 
	
		
			
				|  |  | -      flCriticalAlarm = true;*/
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    if (DI0StateCurrent) {
 | 
	
		
			
				|  |  | +      flLedAlarm = true;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  |      // Значение параметра изменилось
 | 
	
		
			
				|  |  |      if (DI0StateCurrent != DI0OldState[i])
 | 
	
		
			
				|  |  |      {
 | 
	
	
		
			
				|  | @@ -398,10 +401,11 @@ void UPS_LineFailMonitor(void)
 | 
	
		
			
				|  |  |      return;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  if (lineFailCurrent)
 | 
	
		
			
				|  |  | -	  flCriticalAlarm = true;
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +  if (lineFailCurrent){
 | 
	
		
			
				|  |  | +    flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +	  
 | 
	
		
			
				|  |  |    // Значение параметра изменилось
 | 
	
		
			
				|  |  |    if (lineFailCurrent != lineFailOldState)
 | 
	
		
			
				|  |  |    {
 | 
	
	
		
			
				|  | @@ -472,7 +476,6 @@ void UPS_VACoutputLowRangeMonitor(void)
 | 
	
		
			
				|  |  |    /* Отслеживается переход через нижнию границу */
 | 
	
		
			
				|  |  |    if (VACoutputCurrent < sSettings.sAlarmManager.ac_output_range.low)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	    flCriticalAlarm = true;
 | 
	
		
			
				|  |  |        if (stateCurrentVACoutput == HYST_IDLE)
 | 
	
		
			
				|  |  |  	    {
 | 
	
		
			
				|  |  |            UPS.Alarm |= (1 << 7);
 | 
	
	
		
			
				|  | @@ -505,6 +508,9 @@ void UPS_VACoutputLowRangeMonitor(void)
 | 
	
		
			
				|  |  |  	 // SNMP_SendUserTrap(POWER_NORM);
 | 
	
		
			
				|  |  |  	        flUpdateLog = true;
 | 
	
		
			
				|  |  |  	    }
 | 
	
		
			
				|  |  | +  } 
 | 
	
		
			
				|  |  | +  if (UPS.Alarm & 0x80) {
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  #if	defined HARDWARE_BT6707
 | 
	
		
			
				|  |  |    for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
 | 
	
	
		
			
				|  | @@ -539,7 +545,6 @@ void UPS_VACoutputHighRangeMonitor(void)
 | 
	
		
			
				|  |  |    /* Отслеживается переход через верхнюю границу */
 | 
	
		
			
				|  |  |    if (VACoutputCurrent > sSettings.sAlarmManager.ac_output_range.high)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	    flCriticalAlarm = true;
 | 
	
		
			
				|  |  |        if (stateCurrentVACoutput == HYST_IDLE) {
 | 
	
		
			
				|  |  |            UPS.Alarm |= (1 << 7);
 | 
	
		
			
				|  |  |            stateCurrentVACoutput = HYST_UP;
 | 
	
	
		
			
				|  | @@ -571,6 +576,9 @@ void UPS_VACoutputHighRangeMonitor(void)
 | 
	
		
			
				|  |  |  	        flUpdateLog = true;
 | 
	
		
			
				|  |  |  	    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +  if (UPS.Alarm & 0x80) {
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  #if	defined HARDWARE_BT6707
 | 
	
		
			
				|  |  |    for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
 | 
	
		
			
				|  |  |    	  OldROtype_Sourse[i] = CurrROtype_Sourse[i];
 | 
	
	
		
			
				|  | @@ -667,12 +675,14 @@ void UPS_LowBatMonitor(void)
 | 
	
		
			
				|  |  |    if(!flag_alarm_time){
 | 
	
		
			
				|  |  |  	  if (lowBatCurrent){
 | 
	
		
			
				|  |  |  		  flNonCriticalAlarm = true;
 | 
	
		
			
				|  |  | +      flLedAlarm = true;
 | 
	
		
			
				|  |  |  	  }
 | 
	
		
			
				|  |  |  	  lowBatOldState = lowBatCurrent;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    else{
 | 
	
		
			
				|  |  |  	  if (lowBatOldState){
 | 
	
		
			
				|  |  |  		  flNonCriticalAlarm = true;
 | 
	
		
			
				|  |  | +      flLedAlarm = true;
 | 
	
		
			
				|  |  |  	  }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  #endif
 | 
	
	
		
			
				|  | @@ -692,8 +702,7 @@ void UPS_PowerMonitor(void)
 | 
	
		
			
				|  |  |    /* Отслеживается переход через верхнюю границу */
 | 
	
		
			
				|  |  |    if (load > sSettings.sAlarmManager.load_range.high)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	flCriticalAlarm = true;
 | 
	
		
			
				|  |  | -	UPS.Alarm = (UPS.Alarm & 0xfffffffe) | (1 << 0);
 | 
	
		
			
				|  |  | +	  UPS.Alarm = (UPS.Alarm & 0xfffffffe) | (1 << 0);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_IDLE)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  #ifdef LED_RED_MINOR
 | 
	
	
		
			
				|  | @@ -714,7 +723,7 @@ void UPS_PowerMonitor(void)
 | 
	
		
			
				|  |  |    else if (load < (sSettings.sAlarmManager.load_range.high - sSettings.sAlarmManager.load_range.hyst))
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  |  	UPS.Alarm = (UPS.Alarm & 0xfffffffe);
 | 
	
		
			
				|  |  | -    if (stateCurrent == HYST_UP)
 | 
	
		
			
				|  |  | +  if (stateCurrent == HYST_UP)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  #ifdef LED_RED_MINOR
 | 
	
		
			
				|  |  |      	LED_Off(LED_RED_MINOR);
 | 
	
	
		
			
				|  | @@ -730,6 +739,11 @@ void UPS_PowerMonitor(void)
 | 
	
		
			
				|  |  |  	  flUpdateLog = true;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if (UPS.Alarm & 0x00000001) {
 | 
	
		
			
				|  |  | +    flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -747,17 +761,19 @@ void UPS_TemperatureHighRangeMonitor(void)
 | 
	
		
			
				|  |  |    if(temperature == 85) {
 | 
	
		
			
				|  |  |      UPS.Alarm = (UPS.Alarm & 0xfffffffd) | (1 << 1);
 | 
	
		
			
				|  |  |      return;
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    if (stateCurrent == HYST_IDLE) {
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffffd);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    /* Отслеживается переход через верхнюю границу */
 | 
	
		
			
				|  |  |    if (temperature > sSettings.sAlarmManager.Temprature_range.high)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	flCriticalAlarm = true;
 | 
	
		
			
				|  |  | -	UPS.Alarm = (UPS.Alarm & 0xfffffffd) | (1 << 1);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_IDLE)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -	  stateCurrent = HYST_UP;
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | +	  {
 | 
	
		
			
				|  |  | +	    stateCurrent = HYST_UP;
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffffd) | (1 << 1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  log_event_data(LOG_ALARM_HIGH_TEMP, "Авария");
 | 
	
		
			
				|  |  |  	  // Отправка трапа о завышении 
 | 
	
	
		
			
				|  | @@ -768,16 +784,19 @@ void UPS_TemperatureHighRangeMonitor(void)
 | 
	
		
			
				|  |  |    /* Отслеживается нормализация */
 | 
	
		
			
				|  |  |    else if (temperature < (sSettings.sAlarmManager.Temprature_range.high - sSettings.sAlarmManager.Temprature_range.hyst))
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	  UPS.Alarm = (UPS.Alarm & 0xfffffffd);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_UP)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -	  stateCurrent = HYST_IDLE;
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | -	  log_event_data(LOG_ALARM_HIGH_TEMP, "Норма");
 | 
	
		
			
				|  |  | +	  {
 | 
	
		
			
				|  |  | +	    stateCurrent = HYST_IDLE;
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffffd);
 | 
	
		
			
				|  |  | +	    log_event_data(LOG_ALARM_HIGH_TEMP, "Норма");
 | 
	
		
			
				|  |  |  	  // Отправка трапа о нормализации 
 | 
	
		
			
				|  |  | -	  SNMP_SendUserTrap(BATTERY_HIGH_TEMPERATURE_NORM);
 | 
	
		
			
				|  |  | -	  flUpdateLog = true;
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | +	    SNMP_SendUserTrap(BATTERY_HIGH_TEMPERATURE_NORM);
 | 
	
		
			
				|  |  | +	    flUpdateLog = true;
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  if (UPS.Alarm & 0x00000002) {
 | 
	
		
			
				|  |  | +    flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -794,17 +813,19 @@ void UPS_TemperatureLowRangeMonitor(void)
 | 
	
		
			
				|  |  |    if(temperature == 85) {
 | 
	
		
			
				|  |  |      UPS.Alarm = (UPS.Alarm & 0xfffffeff) | (1 << 8);
 | 
	
		
			
				|  |  |      return;
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    if (stateCurrent == HYST_IDLE) {
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffeff);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    /* Отслеживается переход через нипжнюю границу */
 | 
	
		
			
				|  |  |    if (temperature < sSettings.sAlarmManager.Temprature_range.low)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	flCriticalAlarm = true;
 | 
	
		
			
				|  |  | -	UPS.Alarm = (UPS.Alarm & 0xfffffeff) | (1 << 8);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_IDLE)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  	  stateCurrent = HYST_DOWN;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    UPS.Alarm = (UPS.Alarm & 0xfffffeff) | (1 << 8);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  log_event_data(LOG_ALARM_LOW_TEMP, "Авария");
 | 
	
		
			
				|  |  |  	  // Отправка трапа о занижении
 | 
	
	
		
			
				|  | @@ -815,17 +836,20 @@ void UPS_TemperatureLowRangeMonitor(void)
 | 
	
		
			
				|  |  |    /* Отслеживается нормализация */
 | 
	
		
			
				|  |  |    else if (temperature > (sSettings.sAlarmManager.Temprature_range.low + sSettings.sAlarmManager.Temprature_range.hyst))
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	  UPS.Alarm = (UPS.Alarm & 0xfffffeff);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_DOWN)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  	  stateCurrent = HYST_IDLE;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    UPS.Alarm = (UPS.Alarm & 0xfffffeff);
 | 
	
		
			
				|  |  |  	  log_event_data(LOG_ALARM_LOW_TEMP, "Норма");
 | 
	
		
			
				|  |  |  	  // Отправка трапа о нормализации
 | 
	
		
			
				|  |  |  	  SNMP_SendUserTrap(BATTERY_LOW_TEMPERATURE_NORM);
 | 
	
		
			
				|  |  |  	  flUpdateLog = true;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +  if (UPS.Alarm & 0x00000100) {
 | 
	
		
			
				|  |  | +    flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -843,15 +867,19 @@ void Cabinet_TemperatureHighRangeMonitor(void)
 | 
	
		
			
				|  |  |    if(temperature == 85) {
 | 
	
		
			
				|  |  |      UPS.Alarm = (UPS.Alarm & 0xfffffdff) | (1 << 9);
 | 
	
		
			
				|  |  |      return;
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    if (stateCurrent == HYST_IDLE) {
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffdff);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    /* Отслеживается переход через верхнюю границу */
 | 
	
		
			
				|  |  |    if (temperature > sSettings.sAlarmManager.Temprature_cabinet_range.high)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	flCriticalAlarm = true;
 | 
	
		
			
				|  |  | -	UPS.Alarm = (UPS.Alarm & 0xfffffdff) | (1 << 9);
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_IDLE)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -	  stateCurrent = HYST_UP;
 | 
	
		
			
				|  |  | +	  {
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffdff) | (1 << 9);
 | 
	
		
			
				|  |  | +	    stateCurrent = HYST_UP;
 | 
	
		
			
				|  |  |        
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  log_event_data(LOG_ALARM_HIGH_CABINET_TEMP, "Авария");
 | 
	
	
		
			
				|  | @@ -863,10 +891,10 @@ void Cabinet_TemperatureHighRangeMonitor(void)
 | 
	
		
			
				|  |  |    /* Отслеживается нормализация */
 | 
	
		
			
				|  |  |    else if (temperature < (sSettings.sAlarmManager.Temprature_cabinet_range.high - sSettings.sAlarmManager.Temprature_cabinet_range.hyst))
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	  UPS.Alarm = (UPS.Alarm & 0xfffffdff);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_UP)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -	  stateCurrent = HYST_IDLE;
 | 
	
		
			
				|  |  | +	  {
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffdff);
 | 
	
		
			
				|  |  | +	    stateCurrent = HYST_IDLE;
 | 
	
		
			
				|  |  |        
 | 
	
		
			
				|  |  |  	  log_event_data(LOG_ALARM_HIGH_CABINET_TEMP, "Норма");
 | 
	
		
			
				|  |  |  	  // Отправка трапа о нормализации 
 | 
	
	
		
			
				|  | @@ -874,6 +902,9 @@ void Cabinet_TemperatureHighRangeMonitor(void)
 | 
	
		
			
				|  |  |  	  flUpdateLog = true;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +  if (UPS.Alarm & 0x00000200) {
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -889,17 +920,19 @@ void Cabinet_TemperatureLowRangeMonitor(void)
 | 
	
		
			
				|  |  |    if(temperature == 85) {
 | 
	
		
			
				|  |  |      UPS.Alarm = (UPS.Alarm & 0xfffffbff) | (1 << 10);
 | 
	
		
			
				|  |  |      return;
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    if (stateCurrent == HYST_IDLE) {
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffbff);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    /* Отслеживается переход через нипжнюю границу */
 | 
	
		
			
				|  |  |    if (temperature < sSettings.sAlarmManager.Temprature_cabinet_range.low)
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	flCriticalAlarm = true;
 | 
	
		
			
				|  |  | -	UPS.Alarm = (UPS.Alarm & 0xfffffbff) | (1 << 10);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_IDLE)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -	  stateCurrent = HYST_DOWN;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +	  {
 | 
	
		
			
				|  |  | +	    stateCurrent = HYST_DOWN;
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffbff) | (1 << 10);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  log_event_data(LOG_ALARM_LOW_CABINET_TEMP, "Авария");
 | 
	
		
			
				|  |  |  	  // Отправка трапа о занижении
 | 
	
	
		
			
				|  | @@ -910,10 +943,10 @@ void Cabinet_TemperatureLowRangeMonitor(void)
 | 
	
		
			
				|  |  |    /* Отслеживается нормализация */
 | 
	
		
			
				|  |  |    else if (temperature > (sSettings.sAlarmManager.Temprature_cabinet_range.low + sSettings.sAlarmManager.Temprature_cabinet_range.hyst))
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -	  UPS.Alarm = (UPS.Alarm & 0xfffffbff);
 | 
	
		
			
				|  |  |      if (stateCurrent == HYST_DOWN)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -	  stateCurrent = HYST_IDLE;
 | 
	
		
			
				|  |  | +	  {
 | 
	
		
			
				|  |  | +      UPS.Alarm = (UPS.Alarm & 0xfffffbff);
 | 
	
		
			
				|  |  | +	    stateCurrent = HYST_IDLE;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  log_event_data(LOG_ALARM_LOW_CABINET_TEMP, "Норма");
 | 
	
		
			
				|  |  |  	  // Отправка трапа о нормализации
 | 
	
	
		
			
				|  | @@ -921,6 +954,9 @@ void Cabinet_TemperatureLowRangeMonitor(void)
 | 
	
		
			
				|  |  |  	  flUpdateLog = true;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +  if (UPS.Alarm & 0x00000400) {
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -953,8 +989,10 @@ void UPS_ConnectMonitor(void)
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      return;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  if (!connectCurrent)
 | 
	
		
			
				|  |  | -  	  flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +  if (!connectCurrent){
 | 
	
		
			
				|  |  | +    flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    // Значение параметра изменилось
 | 
	
		
			
				|  |  |    if (connectCurrent != connectOldState)
 | 
	
		
			
				|  |  |    {
 | 
	
	
		
			
				|  | @@ -1063,13 +1101,15 @@ void UPS_BatteryConnectMonitor(void)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if(!flag_alarm_time){
 | 
	
		
			
				|  |  |  	  if (AKBconnectCurrent){
 | 
	
		
			
				|  |  | -		  flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +      flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +      flLedAlarm = true;
 | 
	
		
			
				|  |  |  	  }
 | 
	
		
			
				|  |  |  	  AKBconnectOldState = AKBconnectCurrent;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    else{
 | 
	
		
			
				|  |  |  	  if (AKBconnectOldState){
 | 
	
		
			
				|  |  | -		  flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +      flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +      flLedAlarm = true;
 | 
	
		
			
				|  |  |  	  }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  #endif
 | 
	
	
		
			
				|  | @@ -1093,6 +1133,7 @@ void AKB_Change_Monitor(void)
 | 
	
		
			
				|  |  |      UPS.Alarm |= (1 << 6);
 | 
	
		
			
				|  |  |      curr_status_change_akb = 1;
 | 
	
		
			
				|  |  |      flCriticalAlarm = true;
 | 
	
		
			
				|  |  | +    flLedAlarm = true;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    else {
 | 
	
		
			
				|  |  |      UPS.Alarm &= 0xffffffbf;
 |