#include "GUI_Display\GUI_Display.h"
#include "SEG_DISPLAY\SEG_DISPLAY.h" 
#include "Application.h"

uint8_t SOC_1_Flag_Count = 0;
uint8_t SOC_1_Count = 0;
uint8_t SOC_2_Flag_Count = 0;
uint8_t SOC_2_Count = 0;
// void Gauge_Power_1_SOC_Display(void)//得改
// {
//    uint8_t Signal1 = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
//    uint8_t powernum1 = Get_CAN_CH0_ID_18200A20_Sig_MBMS_Soc();
//    uint8_t powernum2 = Get_CAN_CH0_ID_18200A21_Sig_MBMS_Soc();
//    if(Signal1 == 0x0 || Signal1 == 0x3 || Signal1 == 0x6)
//    {
//        SOC_1_Flag_Count = 0;
//        if(powernum1 > 1)
//        {

//        }
//        else
//        {

//        }
//    }
//    else if(Signal1 == 0x1)
//    {
//        SOC_1_Flag_Count++;
//        if(SOC_1_Flag_Count == 10)
//        {
//            SOC_1_Flag_Count = 0;
//            SOC_1_Count++;
//            if(SOC_1_Count > powernum1)
//            {
//                SOC_1_Count = 0;
//            }
//        }
//    }
//    else if(Signal1 == 0x7)
//    {
//        SOC_1_Flag_Count++;
//        if(SOC_1_Flag_Count == 10)
//        {
//            SOC_1_Flag_Count = 0;
//            SOC_1_Count++;
//            if(SOC_1_Count > powernum1)
//            {
//                SOC_1_Count = 0;
//            }
//        }
//    }
   
// }
// void Gauge_Power_2_SOC_Display(void)
// {
//    uint8_t Signal1 = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
//    uint8_t powernum = Get_CAN_CH0_ID_18200A21_Sig_MBMS_Soc();
//    if(Signal1 == 0x0 || Signal1 == 0x3 || Signal1 == 0x6)//放电
//    {
//        SOC_Flag = 0;
//        if(powernum > 1)
//        {

//        }
//        else
//        {

//        }
//    }
//    else if(Signal1 == 0x4)//充电
//    {
//        SOC_Flag = 1;
//        SOC_Flag_Count++;
//        if(SOC_Flag_Count == 10)
//        {
//            SOC_Flag_Count = 0;
//            SOC_1_Count++;
//            if(SOC_1_Count > powernum)
//            {
//                SOC_1_Count = 0;
//            }
//        }
//    }
// }
// void Gauge_VSpeed_Display(void)
// {
//     uint16_t VSpeedDisplayValue = 0;
//     if ( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
//     {
//         if ( Get_VechileSpeedValid( ) == 1u )
//         {
//             VSpeedDisplayValue = Get_DispVechileSpeed( ) / 10u;
//             SEG_SET_VSpeed_NUM(1u, VSpeedDisplayValue);
//         }
//         else
//         {
//             VSpeedDisplayValue = 0u;
//             SEG_SET_VSpeed_NUM(1u, VSpeedDisplayValue);
//         }
//     }
//     else
//     {
//         VSpeedDisplayValue = 0u;
//         SEG_SET_VSpeed_NUM(0u, 0u);
//     }
    
// }
void Gauge_Clock_Display(void)
{
    uint8_t PageType_DIS = 0;
    // if (Common_Get_IG_Sts( ) == COMMON_POWER_ON)
    // {
    //     // PageType_DIS = Get_Current_PageType();
   
    //     if ( PageType_DIS == 1 )
    //     {
    //         if(FLASH_SYNC_1Hz)
    //         {
    //             SEG_SET_Clock(Get_Dis_Hour_Time(), Get_Dis_Minute_Time(), 1, 1, 1);
    //         }
    //         else
    //         {
    //             SEG_SET_Clock(Get_Dis_Hour_Time(), Get_Dis_Minute_Time(), 1, 0, 1);
    //         }
            
    //     }
    //     else if ( PageType_DIS == 2 )
    //     {
    //         if(FLASH_SYNC_1Hz)
    //         {
    //             SEG_SET_Clock(Get_Dis_Hour_Time(), Get_Dis_Minute_Time(), 1, 1, 1);
    //         }
    //         else
    //         {
    //             SEG_SET_Clock(Get_Dis_Hour_Time(), Get_Dis_Minute_Time(), 1, 1, 0);
    //         }
    //     }
    //     else 
    //     {
    //         SEG_SET_Clock(Get_Dis_Hour_Time(), Get_Dis_Minute_Time(), FLASH_SYNC_1Hz, 1, 1);
    //     }
    // }
    // else
    // {
    //     SEG_SET_Clock(0, 0, 0, 0, 0);
    // }
}

void Gauge_Trip_Display(void)
{
    if ( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
    {   
        SEG_SET_TRIP_NUM(1u, Get_Trip_Value());    
    }
    else
    {
        SEG_SET_TRIP_NUM(0u, 0u);
    }
}

void Gauge_ODO_Display(void)
{
    if ( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
    {
        SEG_SET_ODO_NUM(1u, Get_ODO_Value() / 10u);
    }
    else
    {
        SEG_SET_ODO_NUM(0u, 0u);
    }
}
void Gauge_EspeedDial_Display(void)
{
    if ( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
    {
        // SEG_SET_EspeedDial(1,  Get_DispEngineSpeed()/1000, Get_DispEngineSpeed());
    }
    else
    {
        // SEG_SET_EspeedDial(0,  0,  0);
    }
}
void Gauge_Frame_Display(void)
{    
    if ( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
    {
        SEG_SET_Frame(1);
    }
    else
    {
        SEG_SET_Frame(0);
    }
}


void Clear_Bu98(void)
{
    uint8_t i = 0;
    for(i = 0; i < BU98R10_DDRAM_SIZE; i ++)
    {
        BU98R10Chip0DDRAM.Byte[i] = 0;
        BU98R10Chip1DDRAM.Byte[i] = 0;
    }
}


void Gauge_Service(void)
{
    static uint16_t VSpeed_Count = 0u;
    Gauge_Frame_Display(); 
    if (0)
    {
        if ( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
        {
            Check_SEG_Display();         
        }
        else
        {
            Clear_Bu98();
            // RTE_GPIO_Set_Level(VSPEED_TEN_OUT, 0);
            // RTE_GPIO_Set_Level(VSPEED_HUNDREDS_OUT, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_MPH, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_KM_H, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, 0); 
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_Normal_Voltage, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_High_Low_Voltage, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Screen_Time, 0);
        }
    }
    else
    {
        if ( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
        {
            if (Common_GetIgnOnTime() >= 3000)
            {
                // Gauge_Power_1_SOC_Display();
                // Gauge_Power_2_SOC_Display();
                Gauge_ODO_Display();
                Gauge_Clock_Display();
                Gauge_Trip_Display();
                Gauge_EspeedDial_Display();
                SEG_SET_Clock(22,22,1,1,1);
                SEG_SET_Fault_Code(1,2222);
                SEG_SET_EleDial(1,10,22);
                SEG_SET_FuelDial(1,8);
                SEG_SET_GEAR(1,1);
                SEG_SET_Cutterhead(1,2);
                SEG_SET_LED_STS(0,1);
                SEG_SET_LED_STS(1,1);
                SEG_SET_LED_STS(2,1);
                SEG_SET_LED_STS(3,1);
                SEG_SET_LED_STS(4,1);
                SEG_SET_LED_STS(5,1);
                SEG_SET_LED_STS(6,1);
                SEG_SET_LED_STS(7,1);
                SEG_SET_LED_STS(8,1);
                SEG_SET_LED_STS(9,1);
                SEG_SET_LED_STS(10,1);
                SEG_SET_LED_STS(11,1);
                SEG_SET_LED_STS(12,1);
                SEG_SET_LED_STS(13,1);
                SEG_SET_LED_STS(14,1);
                SEG_SET_LED_STS(15,1);
                SEG_SET_LED_STS(16,1);
                SEG_SET_LED_STS(17,1);
                SEG_SET_LED_STS(18,1);
                SEG_SET_Frame(1);
            }
            else
            {            
                Checkself_SEG_Display();                
            }
        }
        else
        {
            Clear_Bu98();
            // RTE_GPIO_Set_Level(VSPEED_TEN_OUT, 0);
            // RTE_GPIO_Set_Level(VSPEED_HUNDREDS_OUT, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_MPH, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_KM_H, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, 0); 
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_Normal_Voltage, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_High_Low_Voltage, 0);
            // LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Screen_Time, 0);
        }
    }    
        
}

