#ifndef STATUS_LED_H
#define STATUS_LED_H

#include "driver/gpio.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

// LED 状态枚举
typedef enum {
    LED_OFF = 0,
    LED_ON = 1,
    LED_BLINK_SLOW,
    LED_BLINK_FAST,
    LED_HEARTBEAT
} led_state_t;

/**
 * @brief 初始化状态LED
 * 
 * 配置两个LED引脚为输出模式并启动控制任务
 */
void status_led_init(void);

/**
 * @brief 控制指定LED的状态
 * 
 * @param led_num LED编号 (1 或 2)
 * @param state LED状态 (0=关闭, 1=开启)
 */
void status_led_set(uint8_t led_num, uint8_t state);

/**
 * @brief 切换指定LED的状态
 * 
 * @param led_num LED编号 (1 或 2)
 */
void status_led_toggle(uint8_t led_num);

/**
 * @brief 设置LED为闪烁模式
 * 
 * @param led_num LED编号 (1 或 2)
 * @param mode 闪烁模式 (0=慢闪, 1=快闪, 2=心跳)
 */
void status_led_blink_mode(uint8_t led_num, uint8_t mode);

/**
 * @brief 销毁LED控制任务
 * 
 * @param led_num LED编号 (1 或 2)
 */
void status_led_deinit(uint8_t led_num);

/**
 * @brief 获取LED当前状态
 * 
 * @param led_num LED编号 (1 或 2)
 * @return 当前LED状态
 */
led_state_t status_led_get_state(uint8_t led_num);

#endif // STATUS_LED_H
