/******************************* (C) LiteMesh **********************************
 * @module  led
 * @file    led.h
 * @version 1.0.0
 * @date    XX.XX.XXXX
 * $brief   led
 *******************************************************************************
 * @history     Version  Author         Comment
 * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
 *******************************************************************************
 */

/* Define to prevent recursive  ----------------------------------------------*/
#ifndef LED_H
#define LED_H
   
#include "stm32f4xx.h"

/**
  * @brief  
  */
typedef struct {

  GPIO_TypeDef* GPIOx;
  uint16_t      GPIO_Pin;
  uint8_t       revers;

} LED_t;  

typedef enum
{
  GREEN_STATUS = 0,
  RED_STATUS
} LED_NAMES_t;

/**
  * @brief  
  */
void LED_Init(void);

/**
* @brief  Мигает красным, индикация ошибки
  */
void LED_Blinky_Red(void);

/**
  * @brief  Мигает желтым, индикация режима IAPviaSD
  */
void LED_Blinky_Yellow(void);

/**
  * @brief  Мигает зеленым, индикация режима IAPviaETH
  */
void LED_Blinky_Green(void);

/**
  * @brief  
  */
void LED_On(LED_NAMES_t led);

/**
  * @brief  
  */
void LED_Off(LED_NAMES_t led);

/**
  * @brief  Изменить состояние LED 
  */
void LED_Toggle(LED_NAMES_t led);

/**
  * @brief  
  */
void API_LED_On(GPIO_TypeDef* port, uint16_t pin, uint8_t revers);

/**
  * @brief  
  */
void API_LED_Off(GPIO_TypeDef* port, uint16_t pin, uint8_t revers);



#endif /* #ifndef LED_H */

/****************************** (C) LiteMesh ***************** end of file ****/