#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_EleDial_AllSOC_Display(void)
{
    uint8_t AllSOC_DIS = 0;
    if (Common_Get_IG_Sts() == COMMON_POWER_ON)
    {
        SEG_SET_EleDial_AllSOC(1, AllSOC_DIS);
    }
    else
    {
        SEG_SET_EleDial_AllSOC(0, 0);
    }
}

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);
    // }
}
uint32_t AccumulatedWorkHours;
void Gauge_Clock_All_Display(void)
{
    
    if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x339_Msg)))
    {
        AccumulatedWorkHours = Get_CAN_CH0_ID_339_Sig_MMCU_AccumulatedWorkHours() * 10;
        if (Common_Get_IG_Sts() == COMMON_POWER_ON)
        {
            SEG_SET_Clock_ALL(0, AccumulatedWorkHours);
        }
    }
    else
    {
        
    }
}

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)
{
    uint8_t i = 0;
    Gauge_Frame_Display();
    if (0)
    {
        if (Common_Get_IG_Sts() == COMMON_POWER_ON)
        {
            Check_SEG_Display();
        }
        else
        {
            Clear_Bu98();
        }
    }
    else
    {
        if (Common_Get_IG_Sts() == COMMON_POWER_ON && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) <= 16000 && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) >= 9000)
        {
            if (Get_CAN_Power_State() != PKEY_ON)
            {
                if (Common_GetIgnOnTime() >= 3000)
                {
                    // Gauge_Power_1_SOC_Display();
                    // Gauge_Power_2_SOC_Display();
                    Checkself_Init();
                    Gauge_Clock_Display();
                    SEG_SET_Clock(22, 22, 1, 1, 1);
                    SEG_SET_Fault_Code(0, 2222);
                    // SEG_SET_EleDial_1SOC(1, 10, 22);
                    // SEG_SET_FuelDial(0, 8);
                    Gauge_EleDial_AllSOC_Display();
                    SEG_SET_GEAR(1, 1);
                    SEG_SET_Cutterhead(1, 2);
                    SEG_SET_Frame(1);
                    interact_PWM_Low_Duty = 0;
                }
                else
                {
                    Checkself_SEG_Display();
                }
            }
            else
            {
                // Clear_Bu98();
                // for (i = 0; i < LampCh0_MAX; i++)
                // {
                //     LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
                // }
                interact_PWM_Low_Duty = 50;
                // 蜂鸣器
            }
        }
        else
        {
            Clear_Bu98();
            for (i = 0; i < LampCh0_MAX; i++)
            {
                LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
            }
        }
    }
}
