#ifndef _BACKLIGHT_H_
#define _BACKLIGHT_H_

/******************************************************************************
头文件
******************************************************************************/
#include "stdint.h"


#define BACKLIGHT_AVE_RES_MAX    (32U)

/*背光调节模式*/
typedef enum
{
    NOUSED_DIMMING = 0U,
    DIMMER_DIMMING,
    IHU_DIMMING,
    OTHER_DIMMING,
} BackLight_Mode_Enum;

/*背光控制*/
typedef struct
{
    uint16_t    LCDPWMLast;
    uint16_t    PointerPWMLast;
    
    uint16_t    PanelPWMLast;    


} ST_BackLightCtrlStruct;

/*白天/夜晚照明*/
enum
{
    DAY_LIGHT = 0U,
    NIGHT_LIGHT,
};

/*调光等级*/
enum
{
    LCM_Level_0 = 0U ,
    LCM_Level_1  ,
    LCM_Level_2  ,
    LCM_Level_3  ,
    LCM_Level_4  ,
    LCM_Level_5  ,
    LCM_Level_6  ,
    LCM_Level_7  ,
    LCM_Level_8  ,
    LCM_Level_9  ,
    LCM_Level_10 ,
    LCM_Level_11 ,  /* Level_11 对应白天,占空比为100% */
    LCM_Level_MAX,
};


/*占空比逼近周期,单位ms */
#define  BL_PWM_DUTY_CYCLE_APPR_SPEED      (4U)


/******************************************************************************
函数声明
******************************************************************************/
uint8_t BackLight_GetLevel_For_Send(void);
void BackLight_Ctrl_Service(void);
void BackLight_IG_ON_Init(void);
void BackLight_IG_OFF_Init(void);
void BackLight_30_Init(void);
void BackLight_Sleep_Init(void);
void BackLight_Wakeup_Init(void);

/*诊断调用设置背光模式*/
void BackLight_Mode_Set( uint8_t  Mode );
/*背光外发周期控制函数,1:20ms快速外发3帧,0:100ms发送*/
uint8_t Get_BackLight_Send_Timer(void);
/*出现快速发送3帧后,调用清除函数*/
void BackLight_Send_TimerFlag_Clear(void);

void BackLight_LCD_ON(void);
void BackLight_LCD_OFF(void);


uint16_t  BackLight_Get_LCDPWM( void );
uint16_t  BackLight_Get_PointerPWM( void );
uint16_t  BackLight_Get_PanelPWM( void );

#endif