/********************************* (C) РОТЕК ***********************************
 * @module  ups_monitor
 * @file    ups_monitor.h
 * @version 1.0.0
 * @date    XX.XX.XXXX
 * $brief   ups_monitor
 *******************************************************************************
 * @history     Version  Author         Comment
 * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
 *******************************************************************************
 */

/* Define to prevent recursive  ----------------------------------------------*/
#ifndef UPS_MONITOR_H
#define UPS_MONITOR_H
   
/**
  * @brief  Состояния для реализации алгоритма гистерезиса
  */
typedef enum
{
  HYST_IDLE = 0,
  HYST_UP,
  HYST_DOWN,
  
} HYST_STATE_t;

/**
  * @brief  Мониторинг бита DI0 state
  */
void UPS_DI0Monitor(void);
/**
  * @brief  Мониторинг бита NonCriticalAlarm
  */
void UPS_CriticalAlarmMonitor(void);
/**
  * @brief  Мониторинг бита NonCriticalAlarm
  */
void UPS_NonCriticalAlarmMonitor(void);
/**
  * @brief  Мониторинг LainFail бита 
  */
void UPS_LineFailMonitor(void);

/**
  * @brief  Мониторинг бита LowBat 
  */
void UPS_LowBatMonitor(void);

/**
  * @brief  Задача мониторинга параметров UPS
  */
void UPS_Monitor(void *params);

/**
  * @brief  Мониторинг нагрузки 
  */
void UPS_PowerMonitor(void);

/**
  * @brief  Мониторинг температуры 
  */
void UPS_TemperatureMonitor(void);
    
/**
  * @brief  Мониторинг параметра upsParams.connect
  */
void UPS_ConnectMonitor(void);

/**
  * @brief  Мониторинг параметра upsParams.connect
  */
void UPS_BatteryConnectMonitor(void);

#endif /* #ifndef UPS_MONITOR_H */

/********************************* (C) РОТЕК **********************************/
