#ifndef _BSP_BUTTON_
    #define _BSP_BUTTON_

#define    OFF        0
#define    ON         1
#define    ERROR       9
#define    ERROR_END   10
extern  uint8_t         SW_Data[8];
//extern  uint8_t         HW_Data[8];
extern volatile  uint16_t  ErrorCode;
extern uint16_t ENDCode;
//extern uint8_t Manage_Data[8];
extern uint8_t SendSW_HW;
extern uint8_t TFTUp_Switch;
extern uint8_t BDC_PE_ALL;

/*
typedef struct
{
    uint8_t   Flag;

}_UDS;
*/
typedef struct
{
    uint8_t   Flag;      // ���±�־
    uint16_t  Time;      // ���¼�ʱ
    uint8_t   Statu;     // ����״̬
    uint8_t   Until;       // ������־
  // uint8_t   Value;     // ����ֵ
  //  unsigned int Alarm           :  1 ; // 
  //  unsigned int SpeedUp         :  1 ; // 
  //  unsigned int SpeedDown       :  1 ; //  
}Class;

extern Class  g_UDS;

typedef struct//union 
{
    Class        S30             ; // 30��
    Class        S15             ; // 15��
    Class        Auto            ; // �Լ�
    uint8_t      Alarm           ; // ����
    Class        SpeedUp         ; // ����+
    Class        SpeedDown       ; // ����-
    uint8_t      SpeedValue      ; // ���ٰ���ֵ
    Class        LED/*Up*/       ; // LED
    uint8_t      LEDValue        ; // LED����ֵ
    Class        FuelWaterUp     ; // ˮ�Ͱ���ֵ+
    Class        FuelWaterDown   ; // ˮ�Ͱ���ֵ-
    uint8_t      FuelWaterValue  ; // ˮ�Ͱ���ֵ
    Class        TFTUp           ; // TFT+
    Class        TFTDown         ; // TFT-
    Class        Other           ; // ����
    uint8_t      OtherValue      ; // ��������ֵ
    Class        End             ; // ����
    uint8_t      Count           ; // ����
    Class        EOL             ; // EOL����   
}_BUTTON;
extern _BUTTON Botton;


typedef struct//union 
{
    uint8_t      Statu           ; // ״̬
    uint8_t      Flag            ; // ��־λ
}_Eol;
extern _Eol EOL;

#define BDC_PE_STD_PART_NUM  "94023Q8000"  
#define BDC_PE_SVC_PART_NUM  "94033Q8000"  


#define DL3C_SVC_PART_NUM "94013L6000"
#define DL3C_STD_PART_NUM "94003L6000"


extern void APP_SPEED_OUTPUT(void);
extern void APP_CAN_Output_Show (void);
extern void APP_LED_OUTPUT(void) ;
extern void Gui_Temp(void);
extern void APP_TFT_OUTPUT(void);
extern void APP_EOL(void); 
extern void Delay(uint16_t msec); 
extern void APP_AUTO(void);
extern void APP_ELSE(void);
extern void APP_END(void);
extern void Buzzer_Alarm();
extern void User_Delay(uint16_t Delay_Time);
extern void GetPartNum(void);
extern void GetInfo(void);
/*
:  1 
:  1 
:  1 
:  1 
:  1 
:  1 
:  1 
:  1 

:  1 
:  1 
:  1 
:  1 
:  1 
:  3 


*/










extern void Get_Button_Value(void);
extern void Stage_Manage(void);
extern void Button_Statu_Manage(void);
extern void GetPartNum(void);


#endif // #define _BSP_BUTTON_