#ifndef _LED_H_
#define _LED_H_

#include "main.h"
#include "gpio.h"

#define LED1_R_GPIO_PORT GPIOB
#define LED1_R_PIN GPIO_PIN_13
#define LED1_G_GPIO_PORT GPIOB
#define LED1_G_PIN GPIO_PIN_12

// ======== LED 状态类型定义 ========
typedef enum {
  LED_NORMAL,
	LED_G,
	LED_R,
  LED_COMM,
  LED_WARNING_1,
	LED_WARNING_2,
	LED_WARNING_3,
	LED_WARNING_4,
	LED_WARNING_5,
	LED_IAP
} LEDStatus_t;

// ======== LED 控制结构体 ========
typedef struct {
  GPIO_TypeDef* GPIOx;
  uint16_t GPIO_Pin;
  uint16_t flash_interval_ms;   // 单次闪烁周期
  uint16_t counter;
  uint8_t enabled;              // 是否启用闪烁
  uint8_t flash_times;          // 连续闪烁次数（例如：2 表示每轮闪2下）
  uint8_t current_flash_count;  // 当前这轮闪了几次
  uint16_t flash_pause_ms;      // 连闪之间的间隔时间
  uint16_t pause_counter;       // 连闪之间的等待计数器
  uint8_t in_pause;             // 是否处于暂停阶段
	uint8_t pin_state;  					// 当前LED引脚状态（0灭，1亮）
} LEDControl_t;



// 定义两个灯的控制器（可扩展）
extern LEDControl_t led_green; 	// 绿灯
extern LEDControl_t led_red; 		// 红灯


void LED_FlashHandler(LEDControl_t* led_self, LEDControl_t* led_other);
void UpdateLEDStatus(LEDStatus_t status);


#endif



