#include "Include.h"

#include "GUI_Display.h"
extern uint8_t HintPopupNum;
extern INT8U Popups_SelfCheckTime;
INT8U GUINaviBar_Flag = 0;
//******************************************************
// zhouhang         xuan kuang  X  and  Y  :
#define cursor_L 8 + 15	  // ԭ����38
#define cursor_R 223 - 15 // ԭ����203
//******************************************************

INT8U *far Num_14[] =
	{
		Number_14_White_0,
		Number_14_White_1,
		Number_14_White_2,
		Number_14_White_3,
		Number_14_White_4,
		Number_14_White_5,
		Number_14_White_6,
		Number_14_White_7,
		Number_14_White_8,
		Number_14_White_9,
		// Number_14_White_Back,
};

INT8U *far Num_15[] =
	{
		Number_15_White_0,
		Number_15_White_1,
		Number_15_White_2,
		Number_15_White_3,
		Number_15_White_4,
		Number_15_White_5,
		Number_15_White_6,
		Number_15_White_7,
		Number_15_White_8,
		Number_15_White_9,

};

INT8U *far Num_16[] =
	{
		Number_16_White_0,
		Number_16_White_1,
		Number_16_White_2,
		Number_16_White_3,
		Number_16_White_4,
		Number_16_White_5,
		Number_16_White_6,
		Number_16_White_7,
		Number_16_White_8,
		Number_16_White_9,
		// Number_16_White_back,
};

INT8U *far Num_19[] =
	{
		Number_19_White_0,
		Number_19_White_1,
		Number_19_White_2,
		Number_19_White_3,
		Number_19_White_4,
		Number_19_White_5,
		Number_19_White_6,
		Number_19_White_7,
		Number_19_White_8,
		Number_19_White_9,
		// Number_19_White_Diagonal,
		// Number_19_White_Line,
		// Number_19_White_Point,
		// Number_19_White_Point2,
		// Number_19_White_back,
};

INT8U *far Num_22[] =
	{
		Number_22_White_0,
		Number_22_White_1,
		Number_22_White_2,
		Number_22_White_3,
		Number_22_White_4,
		Number_22_White_5,
		Number_22_White_6,
		Number_22_White_7,
		Number_22_White_8,
		Number_22_White_9,
};

INT8U *far Num_32[] =
	{
		Number_32_White_0,
		Number_32_White_1,
		Number_32_White_2,
		Number_32_White_3,
		Number_32_White_4,
		Number_32_White_5,
		Number_32_White_6,
		Number_32_White_7,
		Number_32_White_8,
		Number_32_White_9,
		// Number_32_White_back,
};

INT8U *far Num_24[] =
	{
		Number_24_White_0,
		Number_24_White_1,
		Number_24_White_2,
		Number_24_White_3,
		Number_24_White_4,
		Number_24_White_5,
		Number_24_White_6,
		Number_24_White_7,
		Number_24_White_8,
		Number_24_White_9,

};

INT8U *far Num_14_EN[] =
	{
		A_14,
		B_14,
		C_14,
		D_14,
		E_14,
		F_14,
		G_14,
		H_14,
		I_14,
		J_14,
		K_14,
		L_14,
		M_14,
		N_14,
		O_14,
		P_14,
		Q_14,
		R_14,
		S_14,
		T_14,
		U_14,
		V_14,
		W_14,
		X_14,
		Y_14,
		Z_14,
		a_14,
		b_14,
		c_14,
		d_14,
		e_14,
		f_14,
		g_14,
		h_14,
		i_14,
		j_14,
		k_14,
		l_14,
		m_14,
		n_14,
		o_14,
		p_14,
		q_14,
		r_14,
		s_14,
		t_14,
		u_14,
		v_14,
		w_14,
		x_14,
		y_14,
		z_14,
		ask,	//?
		lineae, //-
		point2, //:
};

INT8U *far Num_18_EN[] =
	{
		A_18,
		B_18,
		C_18,
		D_18,
		E_18,
		F_18,
		G_18,
		H_18,
		I_18,
		J_18,
		K_18,
		L_18,
		M_18,
		N_18,
		O_18,
		P_18,
		Q_18,
		R_18,
		S_18,
		T_18,
		U_18,
		V_18,
		W_18,
		X_18,
		Y_18,
		Z_18,
		a_18,
		b_18,
		c_18,
		d_18,
		e_18,
		f_18,
		g_18,
		h_18,
		i_18,
		j_18,
		k_18,
		l_18,
		m_18,
		n_18,
		o_18,
		p_18,
		q_18,
		r_18,
		s_18,
		t_18,
		u_18,
		v_18,
		w_18,
		x_18,
		y_18,
		z_18,
		Brackets1_18, //()
		Brackets2_18, //)
		comma,		  //
		horizontal,	  //-
		semicolon,
		slash, ///
};

static const uint16_t ChargeVolDigits16PosX[] = {163, 154, 145};
static const uint16_t ChargeCurDigits16PosX[] = {163, 154, 145};
static const uint16_t ChargeCurDigits2PosX[] = {163, 154};
static const uint16_t ChargeCurDigits1PosX[] = {163};
static const uint16_t ChargeHourDigits16PosX[] = {139, 130};
static const uint16_t ChargeMinuteDigits16PosX[] = {165, 156};
static const uint16_t ChargeSocDigits16PosX[] = {133, 125, 118};

static const uint16_t ChargeVolDigits16PosX_EN[] = {176, 167, 158};
static const uint16_t ChargeCurDigits16PosX_EN[] = {185, 176, 167};
static const uint16_t ChargeCurDigits2PosX_EN[] = {185, 176};
static const uint16_t ChargeCurDigits1PosX_EN[] = {185};
static const uint16_t ChargeHourDigits16PosX_EN[] = {104, 95};
static const uint16_t ChargeMinuteDigits16PosX_EN[] = {130, 121};

static const uint16_t OutTempDigits19PosX[] = {194, 183, 172};
static const uint16_t OutTempDigits19PosX2[] = {194, 183};
static const uint16_t OutTempDigits19PosX1[] = {194};
static const uint16_t SOC3Digits19PosX1[] = {162, 151, 140};
// static const uint16_t SOC2Digits19PosX1[] = {162, 151};
// static const uint16_t SOC1Digits19PosX1[] = {162};

static const uint16_t AvgSpeed3Digits32PosX[] = {103, 85, 67};
// static const uint16_t AvgSpeed2Digits32PosX[] = {94, 76};
// static const uint16_t AvgSpeed1Digits32PosX[] = {85};

static const uint16_t AvgPowCon4Digits32PosX[] = {106, 81, 64, 47};
static const uint16_t AvgPowCon3Digits32PosX[] = {106, 81, 64};
static const uint16_t AvgPowCon2Digits32PosX[] = {106, 81};

static const uint16_t InsPowCon4Digits32PosX[] = {133, 108, 90, 72};
static const uint16_t InsPowCon3Digits32PosX[] = {133, 108, 90};
static const uint16_t InsPowCon2Digits32PosX[] = {133, 108};

static const uint16_t Range4Digits32PosX[] = {121, 104, 87, 70};
// static const uint16_t Range3Digits32PosX[] = {113, 96, 79};
// static const uint16_t Range2Digits32PosX[] = {105, 88};
// static const uint16_t Range1Digits32PosX[] = {97};

static const uint16_t Voltage3Digits32PosX[] = {121, 103, 85};
static const uint16_t BatteyVoltage3Digits32PosX[] = {133, 108, 91, 74};

static const uint16_t WorkCurrent3Digits32PosX[] = {121, 103, 85};
static const uint16_t WorkCurrent2Digits32PosX[] = {112, 94};
static const uint16_t WorkCurrent1Digits32PosX[] = {104};
// 工作电流负坐�?
static const uint16_t WorkCurrent3Digits32PosX1[] = {130, 112, 94};
static const uint16_t WorkCurrent2Digits32PosX1[] = {121, 103};
static const uint16_t WorkCurrent1Digits32PosX1[] = {112};

static const uint16_t SurPower4Digits32PosX[] = {123, 106, 89, 72};
// static const uint16_t SurPower3Digits32PosX[] = {113, 96, 79};
// static const uint16_t SurPower2Digits32PosX[] = {105, 88};
// static const uint16_t SurPower1Digits32PosX[] = {98};

static const uint16_t DriverTimeHourDigits32PosX[] = {100, 83};
static const uint16_t DriverTimeMinuteDigits32PosX[] = {142, 125};

static const uint16_t FaultCodeDigits32PosX[] = {138, 121, 104, 87};

static const uint16_t BatteyMaxTemp3Digits32PosX[] = {117, 100, 83};
static const uint16_t BatteyMaxTemp2Digits32PosX[] = {109, 92};
static const uint16_t BatteyMaxTemp1Digits32PosX[] = {100};

static const uint16_t BatteyMinTemp3Digits32PosX[] = {117, 100, 83};
static const uint16_t BatteyMinTemp2Digits32PosX[] = {109, 92};
static const uint16_t BatteyMinTemp1Digits32PosX[] = {100};

static const uint16_t CuriseSpeedDigits16PosX[] = {54, 45, 36};
/******************************************************************************
ʱ����ʾ��������
******************************************************************************/
static const uint16_t TimeMinuteDigits12PosX[] = {53, 42};
static const uint16_t TimeHourDigits12PosX[] = {26, 15};

static const uint16_t ODODigits14PosX[] = {185, 173, 161, 149, 137, 125};
static const uint16_t TripDigits14PosX[] = {185, 167, 155, 143};

// static const uint16_t ECUInsFuelDigits20PosX[] = {87, 62, 44};
// static const uint16_t ECUUreaDigits10PosX[] = {37, 28, 19};

static const uint16_t POPManitDisDigits14PosX[] = {104, 89, 75};
static const uint16_t POPManitDisDigits14PosX_EN[] = {58, 43, 28}; //{104,89,75};

/******************************************************************************
��ʻʱ����ʾ����X����
******************************************************************************/
// static const uint16_t DriveTimeMinuteDigits20PosX[] = {142, 124};
// static const uint16_t DriveTimeHourDigits20PosX[] = {97, 79};
//  ƽ������
// static const uint16_t DriveAvgSpdDigits20PosX[] = {100, 83, 65};
//  ����
/*static const uint16_t DriveBatVoltDigits20PosX[] = {
	116,
	100,
};*/

static const uint16_t TMPSPressDigits_LF10PosX[] = {60, 49, 42};
static const uint16_t TMPSTempDigits_LF10PosX[] = {
	65,
	57,
	49,
};
static const uint16_t TMPSTempDigits_LF_two10PosX[] = {
	65,
	57,
};
static const uint16_t TMPSTempDigits_LF_One10PosX[] = {
	65,
};

static const uint16_t TMPSPressDigits_LR10PosX[] = {46, 35, 28};
static const uint16_t TMPSTempDigits_LR10PosX[] = {
	51,
	43,
	35,
};
static const uint16_t TMPSTempDigits_LR_two10PosX[] = {
	51,
	43,
};
static const uint16_t TMPSTempDigits_LR_One10PosX[] = {
	51,
};

static const uint16_t TMPSPressDigits_LRI10PosX[] = {53, 42, 35};
static const uint16_t TMPSTempDigits_LRI10PosX[] = {
	58,
	50,
	42,
};
static const uint16_t TMPSTempDigits_LRI_two10PosX[] = {
	58,
	50,
};
static const uint16_t TMPSTempDigits_LRI_One10PosX[] = {
	58,
};

static const uint16_t TMPSPressDigits_RF10PosX[] = {176, 165, 158};
static const uint16_t TMPSTempDigits_RF10PosX[] = {
	175,
	167,
	159,
};
static const uint16_t TMPSTempDigits_RF_two10PosX[] = {
	175,
	167,
};
static const uint16_t TMPSTempDigits_RF_One10PosX[] = {
	175,
};

static const uint16_t TMPSPressDigits_RR10PosX[] = {185, 174, 167};
static const uint16_t TMPSTempDigits_RR10PosX[] = {
	190,
	182,
	174,
};
static const uint16_t TMPSTempDigits_RR_two10PosX[] = {
	190,
	182,
};
static const uint16_t TMPSTempDigits_RR_One10PosX[] = {
	190,
};

static const uint16_t TMPSPressDigits_RRI10PosX[] = {183, 172, 165};
static const uint16_t TMPSTempDigits_RRI10PosX[] = {
	183,
	175,
	167,
};
static const uint16_t TMPSTempDigits_RRI_two10PosX[] = {
	183,
	175,
};
static const uint16_t TMPSTempDigits_RRI_One10PosX[] = {
	183,
};

static const uint16_t DemandTotal19PosX[] = {190, 179};
static const uint16_t DemandSingle19PosX[] = {156, 145};
static const uint16_t SETtimeHourDigits15PosX[] = {93, 78};
static const uint16_t SETtimeMinDigits15PosX[] = {149, 134};
static const uint16_t SETOveSpdDigits15PosX[] = {132, 113, 94};
static const uint16_t SETManitDisDigits12PosX[] = {135, 125, 115, 105, 95};	 // ����
static const uint16_t SETManitDisDigits12PosX_EN[] = {119, 109, 99, 89, 79}; // Ӣ��
static const uint16_t POP_ManitDisDigits_CH_EN[] = {124, 111, 98, 85, 72};	 // ����

// static const uint16_t SETSWDigits12PosX[] = {151, 140, 129};
static const uint16_t SETHW_1_Digits12PosX[] = {127};
static const uint16_t SETHW_2_Digits12PosX[] = {136};
static const uint16_t SETHW_3_Digits12PosX[] = {145};

static const uint16_t SETSW_1_Digits12PosX_EN[] = {164}; // Ӣ��
static const uint16_t SETSW_2_Digits12PosX_EN[] = {173}; // Ӣ��
static const uint16_t SETSW_3_Digits12PosX_EN[] = {182}; // Ӣ��
static const uint16_t SETHW_1_Digits12PosX_EN[] = {167}; // Ӣ��
static const uint16_t SETHW_2_Digits12PosX_EN[] = {176}; // Ӣ��
static const uint16_t SETHW_3_Digits12PosX_EN[] = {185}; // Ӣ��

// static const uint16_t SETRES_3_Digits12PosX[] = {154, 143, 132};
static const uint16_t SETRES_3_Digits12PosX_EN[] = {173, 158, 143}; // Ӣ��

static const uint16_t TIME_mode_3_Digits_PosX_EN[] = {65, 52}; // 63  48        //��ʾ12-hour system��12

/******************************************************************************
OTA����ʱʱ����ʾ����X����
******************************************************************************/
static const uint16_t OTAtimedownDigits18PosX[] = {176, 167};
static const uint16_t OTA3timedownDigits18PosX[] = {143, 134};
static const uint16_t OTA3downLoadDigits18PosX[] = {143, 134, 125};

// const uint16_t ECUWithOutPoint3PosY[] = {175 - 17, 129 - 17, 83 - 17};
// const uint16_t ECUWithOutPoint2PosY[] = {129 + 23 - 17, 83 + 23 - 17};
// const uint16_t ECUWithOutPoint1PosY[] = {129 - 15 - 17};
// const uint16_t ECUWithPoint3PosY[] = {199 - 17, 129 - 17, 83 - 17};
//
// const uint16_t TMPSNumLF3PosY[] = {98 - 17, 90 - 17, 82 - 17};
// const uint16_t TMPSNumLF2PosY[] = {94 - 17, 86 - 17};
// const uint16_t TMPSNumLF1PosY[] = {90 - 17};
//
// const uint16_t TMPSNumRF3PosY[] = {291 - 17, 283 - 17, 275 - 17};
// const uint16_t TMPSNumRF2PosY[] = {287 - 17, 279 - 17};
// const uint16_t TMPSNumRF1PosY[] = {283 - 17};
//
// const uint16_t DTCSPNPosY[] = {157 - 17, 150 - 17, 143 - 17, 136 - 17, 129 - 17, 122 - 17};
// const uint16_t DTCFMIPosY[] = {210 - 17, 203 - 17};
//
///*�ڶ��׽���ר������*/
// const uint16_t TimeHourPosY[] = {53 - 17, 34 - 17};
// const uint16_t TimeMinPosY[] = {98 - 17, 80 - 17};
//
// const uint16_t Interface2SPNPosY[] = {227 - 10, 220 - 10, 213 - 10, 206 - 10, 199 - 10, 192 - 10};
// const uint16_t Interface2FMIPosY[] = {280 - 10, 273 - 10};
//
// const uint16_t Gas1PosY[] = {99 - 17, 78 - 17, 64 - 17};
// const uint16_t Gas2PosY[] = {242 - 17, 221 - 17, 207 - 17};
extern const uint8_t Ser22_DID_F195[];

void GUI_Display_INIT_KL30(void)
{
	GUIBackUp.BackGround_Done = 0;
	Data_TPMS_30_15KL_Processing();
	Menu1_Page_Flag = 0;
	Menu1_Page_Dir = 0;
	GUIBackUp.AirPressGround_Done = 0;
	GUIBackUp.Menu1Ground_Done = 0;
	GUIBackUp.PopupAlarmDis = 0xff;
	PopupAlarm = 0xff;
	DisplayInfor_BackUp.PageType = Page_Max;
	MenuTpmsCtrl_Backup.MenuCurTpmsSts = MenuDispTPMS_Max;
	// GUIBackUp.AirPress_Valid1 = 0x0;
	// GUIBackUp.AirPress_SegDis1 = 0x0;
	// GUIBackUp.AirPress_Valid2 = 0x0;
	// GUIBackUp.AirPress_SegDis2 = 0x0;
	GUIBackUp.PDC_Sts_Dis.RL = PDC_NoDisplay;
	GUIBackUp.PDC_Sts_Dis.MID = PDC_NoDisplay;
	GUIBackUp.PDC_Sts_Dis.RR = PDC_NoDisplay;
	GUIBackUp.PDC_Sts_Dis.UnVaild = 0;
	// GUIBackUp.LDWLeft_Dis = LDW_MAX;
	// GUIBackUp.LDWRight_Dis = LDW_MAX;
	// GUIBackUp.LDW_Valid_Dis = 0;
	GUIBackUp.ManitenceDis = 0xffff;
	GUINaviBar_Flag = 0;
}

void GUI_Display_INIT_KL15(void)
{
	GUIBackUp.BackGround_Done = 0;
	Data_TPMS_30_15KL_Processing();
	GUIBackUp.AirPressGround_Done = 0;
	GUIBackUp.Menu1Ground_Done = 0;
	GUIBackUp.Menu3_SW[0] = Ser22_DID_F195[0] - 0x30;
	GUIBackUp.Menu3_SW[1] = Ser22_DID_F195[1] - 0x30;
	GUIBackUp.Menu3_SW[2] = Ser22_DID_F195[2] - 0x30;
	GUIBackUp.Menu3_HW[0] = BootToDFlashInfo.DID_F193[0] - 0x30;
	GUIBackUp.Menu3_HW[1] = BootToDFlashInfo.DID_F193[1] - 0x30;
	GUIBackUp.Menu3_HW[2] = BootToDFlashInfo.DID_F193[2] - 0x30;
	GUINaviBarBackUp.ECU_St = 4;
	GUINaviBarBackUp.Set_St = 4;
	GUINaviBarBackUp.Demand_St = 4;
	GUIBackUp.PopupAlarmDis = 0xff;
	// GUIBackUp.DemandAlarmDis = 0xff;
	DisplayInfor_BackUp.PageType = Page_Max;
	MenuTpmsCtrl_Backup.MenuCurTpmsSts = MenuDispTPMS_Max;
	GUIBackUp.PDC_Sts_Dis.RL = PDC_NoDisplay;
	GUIBackUp.PDC_Sts_Dis.MID = PDC_NoDisplay;
	GUIBackUp.PDC_Sts_Dis.RR = PDC_NoDisplay;
	GUIBackUp.PDC_Sts_Dis.UnVaild = 0;
	// GUIBackUp.LDWLeft_Dis =  LDW_MAX;
	// GUIBackUp.LDW_Valid_Dis = 0xff;
	GUIBackUp.ManitenceDis = 0xffff;
	GUIBackUp.Soc = 0XFF;
	GUINaviBar_Flag = 0;
}

void GUI_Display_INIT_Sleep(void)
{
	GUIBackUp.PopupAlarmDis = 0xff;
	DisplayInfor_BackUp.PageType = Page_Max;
}

// ���ݴ�����ַ�������������е�������
INT8U GUI_Display_Get_Index_18(INT8U character)
{

	INT8U Index = 0;
	// ��д��ĸ
	if ((character >= 'A') && (character <= 'Z'))
	{
		Index = character - 'A';
	}
	// Сд��ĸ
	else if ((character >= 'a') && (character <= 'z'))
	{
		Index = character - 'a' + 26;
	}
	// �ʺ�
	else if (character == '(')
	{
		Index = 52;
	}
	// ̾��
	else if (character == ')')
	{
		Index = 53;
	}
	// ������
	else if (character == ',') // comma
	{
		Index = 54;
	}
	// ð��
	else if (character == '-') // horizontal
	{
		Index = 55;
	}
	// ����
	else if (character == '\'') // semicolon
	{
		Index = 56;
	}
	//????
	else if (character == '/')
	{
		Index = 57;
	}
	// ��
	else // ��
	{
		Index = 58;
	}
	return Index;
}

INT8U GUI_Display_Get_Index_14(INT8U character)
{

	INT8U Index = 0;
	// ��д��ĸ
	if ((character >= 'A') && (character <= 'Z'))
	{
		Index = character - 'A';
	}
	// Сд��ĸ
	else if ((character >= 'a') && (character <= 'z'))
	{
		Index = character - 'a' + 26;
	}
	// �ʺ�
	else if (character == '?')
	{
		Index = 52;
	}
	// ̾��
	else if (character == '-') // lineae
	{
		Index = 53;
	}
	// ������
	else if (character == ':') // comma
	{
		Index = 54;
	}
	// ��
	else // ��
	{
		Index = 55;
	}
	return Index;
}
static INT16U Disp_RollingX = 0;

/*************************************************
StarX:???????????
PosY: ???��?Y????
Len:????????????????????
Version:??????
OFFSET:?????????????
***************************************************/
void GUI_Display_Version_Code_Service(INT8U StarX, INT8U PosY, INT8U *Str, INT8U *far Version[]) //, INT8U OFFSET)
{
	INT8U i = 0;
	INT8U j = 0;
	INT8U Len = 0;
	Len = strlen(Str);

	for (i = 0; i < Len; i++)
	{
		if (Str[i] == ' ')
		{
			Disp_RollingX += CODE_ALTITUDE;
		}
		else
		{
			if (Version == Num_18_EN)
			{
				j = GUI_Display_Get_Index_18(Str[i]);
				if (j < 58)
				{
					if ((Disp_RollingX + StarX + Version[j][0]) < 240)
					{
						TFT_LCD_Draw_Bmp(Compress, Inverse, (Disp_RollingX + StarX), PosY, Version[j]);
						// TFT_LCD_Draw_Transparent_Bmp((Disp_RollingX+StarX), PosY,  Version[j],TFT_LCD_TYPE_SET);
						Disp_RollingX += (Version[j][0] + 1);
					}
					else
					{
						break;
					}
				}
			}
			else
			{
				j = GUI_Display_Get_Index_14(Str[i]);
				if (j < 55)
				{
					if ((Disp_RollingX + StarX + Version[j][0]) < 240)
					{
						TFT_LCD_Draw_Bmp(Compress, Inverse, (Disp_RollingX + StarX), PosY, Version[j]);
						// TFT_LCD_Draw_Transparent_Bmp((Disp_RollingX+StarX), PosY,  Version[j],TFT_LCD_TYPE_SET);
						Disp_RollingX += (Version[j][0] + 1);
					}
					else
					{
						break;
					}
				}
			}
		}
	}
	Disp_RollingX = 0;
}

/******************************************************************************
????????GUI_General_Digit_Display
??  ?????????????????
??  ????Digit????????????
		Font ??????????
		Len  : ???????????????
		Blank????��???????????��??,?????��?????
		Layer????????????????
		*px  ????��?????x?????��?(?????��???????)
		y    ?????��?????y????(????????????)
?????????
******************************************************************************/
void GUI_General_Digit_Display(uint32_t Digit, INT8U *far Font[], uint8_t Len, uint8_t Blank, const uint16_t *px, uint16_t y)
{
	uint8_t i;
	uint8_t ActLen;
	uint8_t d[10];

	//??10??????????????????????????????
	ActLen = 0;
	while (Digit)
	{
		d[ActLen] = Digit % 10;
		Digit /= 10;
		ActLen++;
	}

	// ����Ϊ0ʱ�����⴦��
	if (ActLen == 0)
	{
		ActLen = 1;
		d[0] = 0;
	}

	//??��??????????��??0????
	for (i = ActLen; i < Len; i++)
		d[i] = 0;

	// �����ײ�������λ����������
	i = (Len - 1);
	while ((d[i] == 0) && (i >= (Len - Blank)))
	{
		d[i] = 10;
		i--;
	}

	// ��ʾ����
	for (i = 0; i < Len; i++)
	{
		if (d[i] == 10)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, *(px + i), y, Font[d[i]]);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, *(px + i), y, Font[d[i]]);
		}
	}
}

void Clear_pBmp(uint16_t StartX, uint16_t StartY, uint8_t *__far pBmp)
{
	TFT_LCD_Draw_Box(StartX, StartY, (StartX + pBmp[0] - 1), (StartY + pBmp[1]), TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}

void Clear_Box(uint16_t StartX, uint16_t StartY, uint16_t EndX, uint16_t EndY)
{
	TFT_LCD_Draw_Box(StartX, StartY, (EndX), (EndY), TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}

void Clear_All(void)
{
	Clear_Box(0, 0, 239, 320);
}

void Clear_Middle(void)
{
	Clear_Box(24, 70, 24 + 16, 70 + 96);
	Clear_Box(31, 70, 211, 200);
	Clear_Box(43, 62, 196, 100);
	Clear_Box(43, 180, 196, 210 + 5);
	Clear_Box(28, 122, 28 + 6, 122 + 16);
	Clear_Box(190, 190, 190 + 16, 190 + 24);
	Clear_Box(33, 200, 33 + 16, 216);
}
void Clear_Below(void)
{
	Clear_Box(0, 219, 239, 319);
	Clear_Box(0, 45, 40, 225);
	Clear_Box(200, 49, 239, 225);
}

void Clear_Above(void)
{
	Clear_Box(0, 0, 239, 64);
}

/******************************************************************************
��������GUI_BJ_Clock_Display
��  �ܣ�����ʱ����ʾ
��  ����
����ֵ����
******************************************************************************/

void GUI_BJ_Clock_Display(INT8U Colon, INT8U HOUR, INT8U Minute, INT8U Refresh)
{
	if ((GUIBackUp.Clock_Colon != Colon) || (Refresh))
	{
		GUIBackUp.Clock_Colon = Colon;
	}

	if ((GUIBackUp.Hour != HOUR) || (Refresh))
	{
		GUIBackUp.Hour = HOUR;
		GUI_General_Digit_Display(HOUR, Num_19, 2, 0, TimeHourDigits12PosX, 35);
	}
	if ((GUIBackUp.Minute != Minute) || (Refresh))
	{
		GUIBackUp.Minute = Minute;
		GUI_General_Digit_Display(Minute, Num_19, 2, 0, TimeMinuteDigits12PosX, 35);
	}
}

/******************************************************************************
��������GUI_BJ_Gear_Display
��  ��: ������λ��ʾ
��  ��: Mode����ʾģʽ
		Gear����ʾ�ĵ�λ
����ֵ����
******************************************************************************/
void GUI_BJ_Gear_Display(INT8U gear, INT8U Energy, INT8U Gearmode, INT8U Refresh)
{
	uint8_t GearRefresh = 0;
	uint8_t GearModeRefresh = 0;
	uint8_t EnergyRefresh = 0;

	if (GUIBackUp.Gear != gear)
	{
		GearRefresh = 1;
		GUIBackUp.Gear = gear;
	}

	if (GUIBackUp.Energy != Energy)
	{
		EnergyRefresh = 1;
		GUIBackUp.Energy = Energy;
	}

	if (GUIBackUp.Gear_Mode != Gearmode)
	{
		GearModeRefresh = 1;
		Clear_Box(18, 264, 64, 296);

		GUIBackUp.Gear_Mode = Gearmode;
	}

	if ((Refresh) || (GearRefresh) || (EnergyRefresh) || (GearModeRefresh))
	{

		if (Gearmode == Energy_LeveMax)
		{
			switch (gear)
			{
			case GEAR_D:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 30, 264, Gear_D);
				break;
			case GEAR_N:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 30, 264, Gear_N);
				break;
			case GEAR_L:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 30, 264, Gear_L);
				break;
			case GEAR_R:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 30, 264, Gear_R);
				break;

			default:
				break;
			}
		}
		else
		{
			switch (gear)
			{
			case GEAR_D:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 18, 264, Gear_D);
				break;
			case GEAR_N:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 18, 264, Gear_N);
				break;
			case GEAR_L:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 18, 264, Gear_L);
				break;
			case GEAR_R:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 18, 264, Gear_R);
				break;
			default:
				break;
			}

			switch (Energy)
			{
			case Energy_Leve1:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 44, 279, Energy_L1);
				break;
			case Energy_Leve2:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 44, 279, Energy_L2);
				break;
			case Energy_Leve3:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 44, 279, Energy_L3);
				break;
			default:
				break;
			}
		}
	}
}

/******************************************************************************
???????? GUI_BJ_ODO_Display
??  ??: ??????????????
??  ??: Mode?????????GUI_DISP_MODE_NORMAL   - ????
						GUI_DISP_MODE_BLANK    - ???
						GUI_DISP_MODE_INVALID  - ??��
		Trip???????????????
		Unit???????��
?????????
******************************************************************************/
void GUI_BJ_ODO_Display(uint32_t Mileage, INT8U Refresh)
{
	uint32_t MileageDisp = 0;

	MileageDisp = Mileage / 10;
	if (MileageDisp > 999999)
	{
		MileageDisp = 999999;
	}

	if ((GUIBackUp.ODO_NUM != MileageDisp) || (Refresh))
	{
		GUIBackUp.ODO_NUM = MileageDisp;
		GUI_General_Digit_Display(MileageDisp, Num_22, 6, 5, ODODigits14PosX, 282);
	}
}
/******************************************************************************
????????GUI_BG_TRIP_A_Display
??  ???��?????? A B
??  ????
?????????
******************************************************************************/
void GUI_BJ_TRIP_Display(INT32U MileageDisp, INT8U Refresh) //(uint8_t TripA_B, uint32_t Trip1, uint32_t Trip2, INT8U Refresh)
{
	
	if (MileageDisp > 9999)
	{
		MileageDisp = 9999;
	}
	if ((GUIBackUp.Trip_NUM != MileageDisp) || (Refresh))
	{
		GUIBackUp.Trip_NUM = MileageDisp;

		GUI_General_Digit_Display(MileageDisp, Num_22, 4, 2, TripDigits14PosX, 258);
	}
}

/******************************************************************************
��������GUI_LDW_Display
��  ��: �г�����-˲ʱ�ͺ���ʾ
��  ��: Valid ��ƽ���ͺ���Ч�� 1 - ��Ч,��ʾ�ͺ�����
							   0 - ��Ч,��ʾ--.-
		Cons  ��10����ƽ���ͺ���ֵ,��λ��L/100km,����67��ʾ6.7L/100km
����ֵ����
******************************************************************************/
void GUI_Drive_Info_LDW_Display(uint8_t Valid, uint8_t leftstate, uint8_t rightstate, uint8_t Refresh)
{
#if 0 // without can
	
#endif
}

/******************************************************************************
��������GUI_Drive_Info_PDC_Display
��  ��: �г�����-�״���ʾ
��  ��: Valid ��ƽ���ͺ���Ч�� 1 - ��Ч,��ʾ�ͺ�����
							   0 - ��Ч,��ʾ--.-
		Cons  ��10����ƽ���ͺ���ֵ,��λ��L/100km,����67��ʾ6.7L/100km
����ֵ����
******************************************************************************/
void Clear_PDC_L_Display(void)
{
	// TFT_LCD_Draw_Box(74, 178, 100, 186, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(50, 186, 96, 202, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(52, 202, 89, 210, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(60, 210, 84, 226, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	Clear_pBmp(88, 158, Radar_1_1);
	Clear_pBmp(79, 162, Radar_2_1);
	Clear_pBmp(71, 171, Radar_3_1);
	Clear_pBmp(62, 173, Radar_4_1);
	Clear_pBmp(54, 182, Radar_5_1);
}
void Clear_PDC_M_Display(void)
{
	// TFT_LCD_Draw_Box(104, 183, 135, 191, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(99, 193, 141, 202, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(93, 202, 145, 210, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(88, 210, 152, 218, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(84, 218, 154, 234, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	Clear_pBmp(104, 165, Radar_1_2);
	Clear_pBmp(99, 175, Radar_2_2);
	Clear_pBmp(93, 185, Radar_3_2);
	Clear_pBmp(88, 188, Radar_4_2);
	Clear_pBmp(84, 202, Radar_5_2);
}
void Clear_PDC_R_Display(void)
{
	// TFT_LCD_Draw_Box(136, 176, 163, 184, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(138, 184, 180, 192, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(144, 192, 187, 200, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(149, 200, 184, 208, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(152, 208, 180, 216, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	// TFT_LCD_Draw_Box(156, 216, 175, 224, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
	Clear_pBmp(138, 158, Radar_1_3);
	Clear_pBmp(144, 161, Radar_2_3);
	Clear_pBmp(148, 162, Radar_3_3);
	Clear_pBmp(153, 171, Radar_4_3);
	Clear_pBmp(158, 178, Radar_5_3);
}

void GUI_Drive_Info_PDC_Display(_PDC_Infor pdc_state, uint8_t Refresh)
{
	INT8U PDC_Refresh_L = 0;
	INT8U PDC_Refresh_R = 0;
	INT8U PDC_Refresh_M = 0;
	INT8U PDC_Refresh_Vaid = 0;

	if (GUIBackUp.PDC_Sts_Dis.UnVaild != PDC_Sts.UnVaild)
	{
		GUIBackUp.PDC_Sts_Dis.UnVaild = PDC_Sts.UnVaild;
		TFT_LCD_Draw_Box(34, 155, 188, 219, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
		PDC_Refresh_Vaid = 1;
	}

	if (GUIBackUp.PDC_Sts_Dis.RL != pdc_state.RL)
	{
		GUIBackUp.PDC_Sts_Dis.RL = pdc_state.RL;
		Clear_PDC_L_Display();
		PDC_Refresh_L = 1;
	}

	if (GUIBackUp.PDC_Sts_Dis.MID != pdc_state.MID)
	{
		GUIBackUp.PDC_Sts_Dis.MID = pdc_state.MID;
		Clear_PDC_M_Display();
		PDC_Refresh_M = 1;
	}

	if (GUIBackUp.PDC_Sts_Dis.RR != pdc_state.RR)
	{
		GUIBackUp.PDC_Sts_Dis.RR = pdc_state.RR;
		// TFT_LCD_Draw_Box(35, 175, 200, 239, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
		Clear_PDC_R_Display();
		PDC_Refresh_R = 1;
	}

	if ((Refresh) || (PDC_Refresh_Vaid) || (PDC_Refresh_L) || (PDC_Refresh_M) || (PDC_Refresh_R))
	{
		if (PDC_Sts.UnVaild)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 96, 62, Radar_Car);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 164, Alarm_Image_27);
			// TFT_LCD_Draw_Bmp(Compress, Inverse, 96,181,Pop_PDC_3F);
		}
		else
		{
			if ((pdc_state.RL == PDC_NoDisplay) && (pdc_state.MID == PDC_NoDisplay) && (pdc_state.RR == PDC_NoDisplay))
			{
				Clear_Middle(); // ���м�
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 96, 62, Radar_Car);
				// ��
				if (pdc_state.RL == PDC_NoDisplay)
				{
					Clear_PDC_L_Display();
				}
				else if (pdc_state.RL == PDC_40D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 158, Radar_1_1);
				}
				else if (pdc_state.RL == PDC_40_100D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 79, 162, Radar_2_1);
				}
				else if (pdc_state.RL == PDC_100_150D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 71, 171, Radar_3_1);
				}
				else if (pdc_state.RL == PDC_150_300D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 62, 173, Radar_4_1);
				}
				else if (pdc_state.RL == PDC_300)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 54, 182, Radar_5_1);
				}
				else
				{
				}
				// ��
				if (pdc_state.MID == PDC_NoDisplay)
				{
					Clear_PDC_M_Display();
				}
				else if (pdc_state.MID == PDC_40D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 104, 165, Radar_1_2);
				}
				else if (pdc_state.MID == PDC_40_100D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 175, Radar_2_2);
				}
				else if (pdc_state.MID == PDC_100_150D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 185, Radar_3_2);
				}
				else if (pdc_state.MID == PDC_150_300D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 188, Radar_4_2);
				}
				else if (pdc_state.MID == PDC_300)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 202, Radar_5_2);
				}
				else
				{
				}
				// ��
				if (pdc_state.RR == PDC_NoDisplay)
				{
					Clear_PDC_R_Display();
				}
				else if (pdc_state.RR == PDC_40D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 138, 158, Radar_1_3);
				}
				else if (pdc_state.RR == PDC_40_100D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 144, 161, Radar_2_3);
				}
				else if (pdc_state.RR == PDC_100_150D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 148, 162, Radar_3_3);
				}
				else if (pdc_state.RR == PDC_150_300D)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 153, 171, Radar_4_3);
				}
				else if (pdc_state.RR == PDC_300)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 178, Radar_5_3);
				}
				else
				{
				}
			}
		}
	}
}

/******************************************************************************
��������GUI_TPMS_Display
��  ��: ��̥״̬,

******************************************************************************/
// ��ǰ
void GUI_TPMS_Left_Front_Display(_TPMS_Display_Infor LeftFront, INT8U Refresh)
{
	INT8U PressVaild_Refresh = 0;
	INT8U PressValue_Refresh = 0;

	INT8U TempVaild_Refresh = 0;
	INT8U TempValue_Refresh = 0;
	INT8U TempSymbol_Refresh = 0;
	INT8U Blink_Refresh = 0;

	if (Left_Front_Display_Backup.Press_Valid != LeftFront.Press_Valid)
	{
		PressVaild_Refresh = 1;
		Left_Front_Display_Backup.Press_Valid = LeftFront.Press_Valid;
	}

	if (Left_Front_Display_Backup.Press_Value != LeftFront.Press_Value)
	{
		PressValue_Refresh = 1;
		Left_Front_Display_Backup.Press_Value = LeftFront.Press_Value;
	}

	if (Left_Front_Display_Backup.Temp_Valid != LeftFront.Temp_Valid)
	{
		Left_Front_Display_Backup.Temp_Valid = LeftFront.Temp_Valid;
		TempVaild_Refresh = 1;
	}
	if (Left_Front_Display_Backup.Temp_Value != LeftFront.Temp_Value)
	{
		Left_Front_Display_Backup.Temp_Value = LeftFront.Temp_Value;
		TempValue_Refresh = 1;
	}

	if (Left_Front_Display_Backup.Temp_Symbol != LeftFront.Temp_Symbol)
	{
		Left_Front_Display_Backup.Temp_Symbol = LeftFront.Temp_Symbol;
		TempSymbol_Refresh = 1;
	}
	if (Left_Front_Display_Backup.TPMS_Blink != LeftFront.TPMS_Blink)
	{
		Left_Front_Display_Backup.TPMS_Blink = LeftFront.TPMS_Blink;
		Blink_Refresh = 1;
	}
	// Left_Front_Display.TPMS_Blink = FLASH_SYNC_1Hz;
	if ((Blink_Refresh) || (Refresh))
	{
		if (LeftFront.TPMS_Blink)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_Tyre);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_TyreClear);
		}
	}

	if ((PressVaild_Refresh) || (PressValue_Refresh) || (Refresh))
	{
		if (LeftFront.Press_Valid)
		{

			GUI_General_Digit_Display(LeftFront.Press_Value, Num_14, 3, 1, TMPSPressDigits_LF10PosX, 76);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 49, 76, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 60, 76, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 76, Number_14_White_Line);
			// Clear_pBmp(57,76,Number_14_White_Line);
		}
	}
	if ((TempVaild_Refresh) || (TempValue_Refresh) || (TempSymbol_Refresh) || (Refresh))
	{
		if (LeftFront.Temp_Valid)
		{
			if (LeftFront.Temp_Symbol == Positive)
			{
				if (LeftFront.Temp_Value > 999)
				{
					LeftFront.Temp_Value = 999;
				}

				if (LeftFront.Temp_Value >= 100)
				{
					GUI_General_Digit_Display(LeftFront.Temp_Value, Num_14, 3, 0, TMPSTempDigits_LF10PosX, 94);
				}
				else if (LeftFront.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 49, 94, Number_14_White_Back);
					GUI_General_Digit_Display(LeftFront.Temp_Value, Num_14, 2, 0, TMPSTempDigits_LF_two10PosX, 94);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 49, 94, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 94, Number_14_White_Back);
					GUI_General_Digit_Display(LeftFront.Temp_Value, Num_14, 1, 0, TMPSTempDigits_LF_One10PosX, 94);
				}
			}
			else
			{
				if (LeftFront.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 49, 94, Number_14_White_Line);
					GUI_General_Digit_Display(LeftFront.Temp_Value, Num_14, 2, 0, TMPSTempDigits_LF_two10PosX, 94);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 49, 94, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 94, Number_14_White_Line);
					GUI_General_Digit_Display(LeftFront.Temp_Value, Num_14, 1, 0, TMPSTempDigits_LF_One10PosX, 94);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 94, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 94, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 49, 94, Number_14_White_Line);
		}
	}
}
////????
void GUI_TPMS_Left_Rear_Display(_TPMS_Display_Infor LeftRear, INT8U Refresh)
{
	INT8U PressVaild_Refresh = 0;
	INT8U PressValue_Refresh = 0;

	INT8U TempVaild_Refresh = 0;
	INT8U TempValue_Refresh = 0;
	INT8U TempSymbol_Refresh = 0;
	INT8U Blink_Refresh = 0;

	if (Left_Rear_Display_Backup.Press_Valid != LeftRear.Press_Valid)
	{
		PressVaild_Refresh = 1;
		Left_Rear_Display_Backup.Press_Valid = LeftRear.Press_Valid;
	}

	if (Left_Rear_Display_Backup.Press_Value != LeftRear.Press_Value)
	{
		PressValue_Refresh = 1;
		Left_Rear_Display_Backup.Press_Value = LeftRear.Press_Value;
	}

	if (Left_Rear_Display_Backup.Temp_Valid != LeftRear.Temp_Valid)
	{
		Left_Rear_Display_Backup.Temp_Valid = LeftRear.Temp_Valid;
		TempVaild_Refresh = 1;
	}
	if (Left_Rear_Display_Backup.Temp_Value != LeftRear.Temp_Value)
	{
		Left_Rear_Display_Backup.Temp_Value = LeftRear.Temp_Value;
		TempValue_Refresh = 1;
	}

	if (Left_Rear_Display_Backup.Temp_Symbol != LeftRear.Temp_Symbol)
	{
		Left_Rear_Display_Backup.Temp_Symbol = LeftRear.Temp_Symbol;
		TempSymbol_Refresh = 1;
	}
	if (Left_Rear_Display_Backup.TPMS_Blink != LeftRear.TPMS_Blink)
	{
		Left_Rear_Display_Backup.TPMS_Blink = LeftRear.TPMS_Blink;
		Blink_Refresh = 1;
	}
	// Left_Front_Display.TPMS_Blink = FLASH_SYNC_1Hz;
	if ((Blink_Refresh) || (Refresh))
	{
		if (LeftRear.TPMS_Blink)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 129, TPMS_Tyre);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 129, TPMS_TyreClear);
		}
	}

	if ((PressVaild_Refresh) || (PressValue_Refresh) || (Refresh))
	{
		if (LeftRear.Press_Valid)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 122, Number_14_White_Point);
			GUI_General_Digit_Display(LeftRear.Press_Value, Num_14, 3, 1, TMPSPressDigits_LR10PosX, 122);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 46, 122, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 122, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 28, 122, Number_14_White_Line);
			// Clear_pBmp(43,122,Number_14_White_Line);
		}
	}
	if ((TempVaild_Refresh) || (TempValue_Refresh) || (TempSymbol_Refresh) || (Refresh))
	{
		if (LeftRear.Temp_Valid)
		{
			if (LeftRear.Temp_Symbol == Positive)
			{
				if (LeftRear.Temp_Value > 999)
				{
					LeftRear.Temp_Value = 999;
				}

				if (LeftRear.Temp_Value >= 100)
				{
					GUI_General_Digit_Display(LeftRear.Temp_Value, Num_14, 3, 0, TMPSTempDigits_LR10PosX, 140);
				}
				else if (LeftRear.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 140, Number_14_White_Back);
					GUI_General_Digit_Display(LeftRear.Temp_Value, Num_14, 2, 0, TMPSTempDigits_LR_two10PosX, 140);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 140, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 140, Number_14_White_Back);
					GUI_General_Digit_Display(LeftRear.Temp_Value, Num_14, 1, 0, TMPSTempDigits_LR_One10PosX, 140);
				}
			}
			else
			{
				if (LeftRear.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 140, Number_14_White_Line);
					GUI_General_Digit_Display(LeftRear.Temp_Value, Num_14, 2, 0, TMPSTempDigits_LR_two10PosX, 140);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 140, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 140, Number_14_White_Line);
					GUI_General_Digit_Display(LeftRear.Temp_Value, Num_14, 1, 0, TMPSTempDigits_LR_One10PosX, 140);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 51, 140, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 140, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 140, Number_14_White_Line);
		}
	}
}

//??????
void GUI_TPMS_Left_RearInside_Display(_TPMS_Display_Infor LeftRearInside, INT8U Refresh)
{
	INT8U PressVaild_Refresh = 0;
	INT8U PressValue_Refresh = 0;

	INT8U TempVaild_Refresh = 0;
	INT8U TempValue_Refresh = 0;
	INT8U TempSymbol_Refresh = 0;
	INT8U Blink_Refresh = 0;

	if (Left_Rear_Inside_Display_Backup.Press_Valid != LeftRearInside.Press_Valid)
	{
		PressVaild_Refresh = 1;
		Left_Rear_Inside_Display_Backup.Press_Valid = LeftRearInside.Press_Valid;
	}

	if (Left_Rear_Inside_Display_Backup.Press_Value != LeftRearInside.Press_Value)
	{
		PressValue_Refresh = 1;
		Left_Rear_Inside_Display_Backup.Press_Value = LeftRearInside.Press_Value;
	}

	if (Left_Rear_Inside_Display_Backup.Temp_Valid != LeftRearInside.Temp_Valid)
	{
		Left_Rear_Inside_Display_Backup.Temp_Valid = LeftRearInside.Temp_Valid;
		TempVaild_Refresh = 1;
	}
	if (Left_Rear_Inside_Display_Backup.Temp_Value != LeftRearInside.Temp_Value)
	{
		Left_Rear_Inside_Display_Backup.Temp_Value = LeftRearInside.Temp_Value;
		TempValue_Refresh = 1;
	}

	if (Left_Rear_Inside_Display_Backup.Temp_Symbol != LeftRearInside.Temp_Symbol)
	{
		Left_Rear_Inside_Display_Backup.Temp_Symbol = LeftRearInside.Temp_Symbol;
		TempSymbol_Refresh = 1;
	}
	if (Left_Rear_Inside_Display_Backup.TPMS_Blink != LeftRearInside.TPMS_Blink)
	{
		Left_Rear_Inside_Display_Backup.TPMS_Blink = LeftRearInside.TPMS_Blink;
		Blink_Refresh = 1;
	}

	if ((Blink_Refresh) || (Refresh))
	{
		if (LeftRearInside.TPMS_Blink)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 129, TPMS_Tyre);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 129, TPMS_TyreClear);
		}
	}

	if ((PressVaild_Refresh) || (PressValue_Refresh) || (Refresh))
	{
		if (LeftRearInside.Press_Valid)
		{

			GUI_General_Digit_Display(LeftRearInside.Press_Value, Num_14, 3, 1, TMPSPressDigits_LRI10PosX, 158);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 53, 158, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 158, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 158, Number_14_White_Line);
			// Clear_pBmp(50,158,Number_14_White_Line);
		}
	}
	if ((TempVaild_Refresh) || (TempValue_Refresh) || (TempSymbol_Refresh) || (Refresh))
	{
		if (LeftRearInside.Temp_Valid)
		{
			if (LeftRearInside.Temp_Symbol == Positive)
			{
				if (LeftRearInside.Temp_Value > 999)
				{
					LeftRearInside.Temp_Value = 999;
				}

				if (LeftRearInside.Temp_Value >= 100)
				{
					GUI_General_Digit_Display(LeftRearInside.Temp_Value, Num_14, 3, 0, TMPSTempDigits_LRI10PosX, 176);
				}
				else if (LeftRearInside.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 176, Number_14_White_Back);
					GUI_General_Digit_Display(LeftRearInside.Temp_Value, Num_14, 2, 0, TMPSTempDigits_LRI_two10PosX, 176);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 50, 176, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 176, Number_14_White_Back);
					GUI_General_Digit_Display(LeftRearInside.Temp_Value, Num_14, 1, 0, TMPSTempDigits_LRI_One10PosX, 176);
				}
			}
			else
			{
				if (LeftRearInside.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 176, Number_14_White_Line);
					GUI_General_Digit_Display(LeftRearInside.Temp_Value, Num_14, 2, 0, TMPSTempDigits_LRI_two10PosX, 176);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 50, 176, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 176, Number_14_White_Line);
					GUI_General_Digit_Display(LeftRearInside.Temp_Value, Num_14, 1, 0, TMPSTempDigits_LRI_One10PosX, 176);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 58, 176, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 50, 176, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 176, Number_14_White_Line);
		}
	}
}

void GUI_TPMS_Right_Front_Display(_TPMS_Display_Infor RightFront, INT8U Refresh)
{
	INT8U PressVaild_Refresh = 0;
	INT8U PressValue_Refresh = 0;

	INT8U TempVaild_Refresh = 0;
	INT8U TempValue_Refresh = 0;
	INT8U TempSymbol_Refresh = 0;
	INT8U Blink_Refresh = 0;

	if (Right_Front_Display_Backup.Press_Valid != RightFront.Press_Valid)
	{
		PressVaild_Refresh = 1;
		Right_Front_Display_Backup.Press_Valid = RightFront.Press_Valid;
	}

	if (Right_Front_Display_Backup.Press_Value != RightFront.Press_Value)
	{
		PressValue_Refresh = 1;
		Right_Front_Display_Backup.Press_Value = RightFront.Press_Value;
	}

	if (Right_Front_Display_Backup.Temp_Valid != RightFront.Temp_Valid)
	{
		Right_Front_Display_Backup.Temp_Valid = RightFront.Temp_Valid;
		TempVaild_Refresh = 1;
	}
	if (Right_Front_Display_Backup.Temp_Value != RightFront.Temp_Value)
	{
		Right_Front_Display_Backup.Temp_Value = RightFront.Temp_Value;
		TempValue_Refresh = 1;
	}

	if (Right_Front_Display_Backup.Temp_Symbol != RightFront.Temp_Symbol)
	{
		Right_Front_Display_Backup.Temp_Symbol = RightFront.Temp_Symbol;
		TempSymbol_Refresh = 1;
	}
	if (Right_Front_Display_Backup.TPMS_Blink != RightFront.TPMS_Blink)
	{
		Right_Front_Display_Backup.TPMS_Blink = RightFront.TPMS_Blink;
		Blink_Refresh = 1;
	}

	if ((Blink_Refresh) || (Refresh))
	{
		if (RightFront.TPMS_Blink)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_Tyre);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_TyreClear);
			;
		}
	}

	if ((PressVaild_Refresh) || (PressValue_Refresh) || (Refresh))
	{
		if (RightFront.Press_Valid)
		{

			GUI_General_Digit_Display(RightFront.Press_Value, Num_14, 3, 1, TMPSPressDigits_RF10PosX, 76);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 176, 76, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 165, 76, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 76, Number_14_White_Line);
			// Clear_pBmp(167,76,Number_14_White_Line);
		}
	}
	if ((TempVaild_Refresh) || (TempValue_Refresh) || (TempSymbol_Refresh) || (Refresh))
	{
		if (RightFront.Temp_Valid)
		{
			if (RightFront.Temp_Symbol == Positive)
			{
				if (RightFront.Temp_Value > 999)
				{
					RightFront.Temp_Value = 999;
				}

				if (RightFront.Temp_Value >= 100)
				{
					GUI_General_Digit_Display(RightFront.Temp_Value, Num_14, 3, 0, TMPSTempDigits_RF10PosX, 94);
				}
				else if (RightFront.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 159, 94, Number_14_White_Back);
					GUI_General_Digit_Display(RightFront.Temp_Value, Num_14, 2, 0, TMPSTempDigits_RF_two10PosX, 94);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 159, 94, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 94, Number_14_White_Back);
					GUI_General_Digit_Display(RightFront.Temp_Value, Num_14, 1, 0, TMPSTempDigits_RF_One10PosX, 94);
				}
			}
			else
			{
				if (RightFront.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 159, 94, Number_14_White_Line);
					GUI_General_Digit_Display(RightFront.Temp_Value, Num_14, 2, 0, TMPSTempDigits_RF_two10PosX, 94);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 159, 94, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 94, Number_14_White_Line);
					GUI_General_Digit_Display(RightFront.Temp_Value, Num_14, 1, 0, TMPSTempDigits_RF_One10PosX, 94);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 175, 94, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 94, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 159, 94, Number_14_White_Line);
		}
	}
}

void GUI_TPMS_Right_Rear_Display(_TPMS_Display_Infor RightRear, INT8U Refresh)
{
	INT8U PressVaild_Refresh = 0;
	INT8U PressValue_Refresh = 0;

	INT8U TempVaild_Refresh = 0;
	INT8U TempValue_Refresh = 0;
	INT8U TempSymbol_Refresh = 0;
	INT8U Blink_Refresh = 0;

	if (Right_Rear_Display_Backup.Press_Valid != RightRear.Press_Valid)
	{
		PressVaild_Refresh = 1;
		Right_Rear_Display_Backup.Press_Valid = RightRear.Press_Valid;
	}

	if (Right_Rear_Display_Backup.Press_Value != RightRear.Press_Value)
	{
		PressValue_Refresh = 1;
		Right_Rear_Display_Backup.Press_Value = RightRear.Press_Value;
	}

	if (Right_Rear_Display_Backup.Temp_Valid != RightRear.Temp_Valid)
	{
		Right_Rear_Display_Backup.Temp_Valid = RightRear.Temp_Valid;
		TempVaild_Refresh = 1;
	}
	if (Right_Rear_Display_Backup.Temp_Value != RightRear.Temp_Value)
	{
		Right_Rear_Display_Backup.Temp_Value = RightRear.Temp_Value;
		TempValue_Refresh = 1;
	}

	if (Right_Rear_Display_Backup.Temp_Symbol != RightRear.Temp_Symbol)
	{
		Right_Rear_Display_Backup.Temp_Symbol = RightRear.Temp_Symbol;
		TempSymbol_Refresh = 1;
	}
	if (Right_Rear_Display_Backup.TPMS_Blink != RightRear.TPMS_Blink)
	{
		Right_Rear_Display_Backup.TPMS_Blink = RightRear.TPMS_Blink;
		Blink_Refresh = 1;
	}

	if ((Blink_Refresh) || (Refresh))
	{
		if (RightRear.TPMS_Blink)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 150, 129, TPMS_Tyre);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 150, 129, TPMS_TyreClear);
		}
	}

	if ((PressVaild_Refresh) || (PressValue_Refresh) || (Refresh))
	{
		if (RightRear.Press_Valid)
		{

			GUI_General_Digit_Display(RightRear.Press_Value, Num_14, 3, 1, TMPSPressDigits_RR10PosX, 122);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 185, 122, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 122, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 122, Number_14_White_Line);
			// Clear_pBmp(182,122,Number_14_White_Line);
		}
	}
	if ((TempVaild_Refresh) || (TempValue_Refresh) || (TempSymbol_Refresh) || (Refresh))
	{
		if (RightRear.Temp_Valid)
		{
			if (RightRear.Temp_Symbol == Positive)
			{
				if (RightRear.Temp_Value > 999)
				{
					RightRear.Temp_Value = 999;
				}

				if (RightRear.Temp_Value >= 100)
				{
					GUI_General_Digit_Display(RightRear.Temp_Value, Num_14, 3, 0, TMPSTempDigits_RR10PosX, 140);
				}
				else if (RightRear.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 140, Number_14_White_Back);
					GUI_General_Digit_Display(RightRear.Temp_Value, Num_14, 2, 0, TMPSTempDigits_RR_two10PosX, 140);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 140, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 182, 140, Number_14_White_Back);
					GUI_General_Digit_Display(RightRear.Temp_Value, Num_14, 1, 0, TMPSTempDigits_RR_One10PosX, 140);
				}
			}
			else
			{
				if (RightRear.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 140, Number_14_White_Line);
					GUI_General_Digit_Display(RightRear.Temp_Value, Num_14, 2, 0, TMPSTempDigits_RR_two10PosX, 140);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 140, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 182, 140, Number_14_White_Line);
					GUI_General_Digit_Display(RightRear.Temp_Value, Num_14, 1, 0, TMPSTempDigits_RR_One10PosX, 140);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 190, 140, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 182, 140, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 140, Number_14_White_Line);
		}
	}
}

void GUI_TPMS_Right_RearInside_Display(_TPMS_Display_Infor RightRearInside, INT8U Refresh)
{
	INT8U PressVaild_Refresh = 0;
	INT8U PressValue_Refresh = 0;

	INT8U TempVaild_Refresh = 0;
	INT8U TempValue_Refresh = 0;
	INT8U TempSymbol_Refresh = 0;
	INT8U Blink_Refresh = 0;

	if (Right_Rear_Inside_Display_Backup.Press_Valid != RightRearInside.Press_Valid)
	{
		PressVaild_Refresh = 1;
		Right_Rear_Inside_Display_Backup.Press_Valid = RightRearInside.Press_Valid;
	}

	if (Right_Rear_Inside_Display_Backup.Press_Value != RightRearInside.Press_Value)
	{
		PressValue_Refresh = 1;
		Right_Rear_Inside_Display_Backup.Press_Value = RightRearInside.Press_Value;
	}

	if (Right_Rear_Inside_Display_Backup.Temp_Valid != RightRearInside.Temp_Valid)
	{
		Right_Rear_Inside_Display_Backup.Temp_Valid = RightRearInside.Temp_Valid;
		TempVaild_Refresh = 1;
	}
	if (Right_Rear_Inside_Display_Backup.Temp_Value != RightRearInside.Temp_Value)
	{
		Right_Rear_Inside_Display_Backup.Temp_Value = RightRearInside.Temp_Value;
		TempValue_Refresh = 1;
	}

	if (Right_Rear_Inside_Display_Backup.Temp_Symbol != RightRearInside.Temp_Symbol)
	{
		Right_Rear_Inside_Display_Backup.Temp_Symbol = RightRearInside.Temp_Symbol;
		TempSymbol_Refresh = 1;
	}
	if (Right_Rear_Inside_Display_Backup.TPMS_Blink != RightRearInside.TPMS_Blink)
	{
		Right_Rear_Inside_Display_Backup.TPMS_Blink = RightRearInside.TPMS_Blink;
		Blink_Refresh = 1;
	}

	if ((Blink_Refresh) || (Refresh))
	{
		if (RightRearInside.TPMS_Blink)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 129, TPMS_Tyre);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 129, TPMS_TyreClear);
		}
	}

	if ((PressVaild_Refresh) || (PressValue_Refresh) || (Refresh))
	{
		if (RightRearInside.Press_Valid)
		{

			GUI_General_Digit_Display(RightRearInside.Press_Value, Num_14, 3, 1, TMPSPressDigits_RRI10PosX, 158);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 183, 158, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 172, 158, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 165, 158, Number_14_White_Line);
			// Clear_pBmp(175,158,Number_14_White_Line);
		}
	}
	if ((TempVaild_Refresh) || (TempValue_Refresh) || (TempSymbol_Refresh) || (Refresh))
	{
		if (RightRearInside.Temp_Valid)
		{
			if (RightRearInside.Temp_Symbol == Positive)
			{
				if (RightRearInside.Temp_Value > 999)
				{
					RightRearInside.Temp_Value = 999;
				}

				if (RightRearInside.Temp_Value >= 100)
				{
					GUI_General_Digit_Display(RightRearInside.Temp_Value, Num_14, 3, 0, TMPSTempDigits_RRI10PosX, 176);
				}
				else if (RightRearInside.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 176, Number_14_White_Back);
					GUI_General_Digit_Display(RightRearInside.Temp_Value, Num_14, 2, 0, TMPSTempDigits_RRI_two10PosX, 176);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 176, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 175, 176, Number_14_White_Back);
					GUI_General_Digit_Display(RightRearInside.Temp_Value, Num_14, 1, 0, TMPSTempDigits_RRI_One10PosX, 176);
				}
			}
			else
			{
				if (RightRearInside.Temp_Value >= 10)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 176, Number_14_White_Line);
					GUI_General_Digit_Display(RightRearInside.Temp_Value, Num_14, 2, 0, TMPSTempDigits_RRI_two10PosX, 176);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 176, Number_14_White_Back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 175, 176, Number_14_White_Line);
					GUI_General_Digit_Display(RightRearInside.Temp_Value, Num_14, 1, 0, TMPSTempDigits_RRI_One10PosX, 176);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 183, 176, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 175, 176, Number_14_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 176, Number_14_White_Line);
		}
	}
}

void GUI_TPMS_Warning_Display(_MenuDispTpmsCtrl_Struct Msg, uint8_t Refresh)
{
	INT8U TpmsSts_Refresh = 0;

	if (MenuTpmsCtrl_Backup.MenuCurTpmsSts != Msg.MenuCurTpmsSts)
	{
		MenuTpmsCtrl_Backup.MenuCurTpmsSts = Msg.MenuCurTpmsSts;
		TpmsSts_Refresh = 1;
		Clear_Box(33, 193, 206, 193 + 24);
	}

	if ((TpmsSts_Refresh) || (Refresh))
	{
		if (MenuData.Language)
		{
			if (Msg.MenuCurTpmsSts == MenuDispTPMS_NotLearn)
			{
				// GUI_Display_Version_Code_Service(34, 200, "TPMS Sensor Not learning",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 34, 201, TPMS);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 201, Sensor);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 127, 201, Not);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 156, 201, learning);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_SensorLost)
			{
				// GUI_Display_Version_Code_Service(36, 200, "TPMS Sensor Signal Loss",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 36, 201, TPMS);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 78, 201, Sensor);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 130, 201, Signal);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 201, Loss);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_SensorFault)
			{
				// GUI_Display_Version_Code_Service(51, 200, "TPMS Sensor Failure",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 51, 201, TPMS);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 201, Sensor);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 144, 201, Failure);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_PressLow)
			{
				// GUI_Display_Version_Code_Service(62, 200, "Tyre Pressure Low",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 62, 201, Tyre);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 94, 201, Pressure);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 201, Low);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_PressHigh)
			{
				// GUI_Display_Version_Code_Service(60, 200, "Tyre Pressure High",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 60, 201, Tyre);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 201, Pressure);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 153, 201, High);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_LeakFast)
			{
				// GUI_Display_Version_Code_Service(34, 200, "Tyre Pressure Fast Change",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 34, 201, Tyre);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 201, Pressure);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 127, 201, Fast2);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 160, 200, Charge2);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_TempHigh)
			{
				// GUI_Display_Version_Code_Service(50, 200, "Tyre Temperature High",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 50, 201, Tyre);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 81, 201, Temperature);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 163, 201, High);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_SensorBatteryLow)
			{
				// GUI_Display_Version_Code_Service(35, 200, "TPMS Sensor Voltage Low",Num_14_EN);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 201, TPMS);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 201, Sensor);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 125, 201, Voltage);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 179, 201, Low);
			}
			else
			{
				Clear_Box(33, 193, 206, 193 + 24);
			}
		}
		else
		{
			if (Msg.MenuCurTpmsSts == MenuDispTPMS_NotLearn)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 45, 193, TPMS_Alarm_Word0_3);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 139, 193, TPMS_Alarm_Word0_4);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_SensorLost)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 45, 193, TPMS_Alarm_Word0_1);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 129, 193, TPMS_Alarm_Word0_2);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_SensorFault)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 61, 193, TPMS_Alarm_Word0_1);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 193, TPMS_Alarm_Word0_5);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_PressLow)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 83, 193, TPMS_Alarm_Word0_10);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 193, TPMS_Alarm_Word0_11);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_PressHigh)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 83, 193, TPMS_Alarm_Word0_10);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 193, TPMS_Alarm_Word0_12);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_LeakFast)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 66, 193, TPMS_Alarm_Word0_7);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 102, 193, TPMS_Alarm_Word0_8);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_TempHigh)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 193, TPMS_Alarm_Word0_7);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 111, 193, TPMS_Alarm_Word0_9);
			}
			else if (Msg.MenuCurTpmsSts == MenuDispTPMS_SensorBatteryLow)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 45, 193, TPMS_Alarm_Word0_12);
			}
			else
			{
				Clear_Box(33, 193, 206, 193 + 24);
			}
		}
	}
}

void GUI_TPMS_Noraml_Display(uint8_t Refresh)
{
	// ̥ѹ��ʾ

	if ((TPMS_Config.F110 == 1) && (TPMS_Config.F101 == 1))
	{
		if (Refresh)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 75, TPMS_Car);

			TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 129, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 129, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 129, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 150, 129, TPMS_Tyre);

			TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 84, TPMS_Line_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 148, 84, TPMS_Line_2);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 33, 133, TPMS_Line_3);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 41, 145, TPMS_Line_4);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 143, 145, TPMS_Line_5);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 157, 133, TPMS_Line_6);
			// 位置1
			TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 82, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 72, 100, TPMS_Unit_Temperature);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 76, Number_14_White_Point); // 位置1的点
			// 位置3
			TFT_LCD_Draw_Bmp(Compress, Inverse, 54, 128, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 58, 146, TPMS_Unit_Temperature);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 50, 158, Number_14_White_Point); // 位置4的点
			// 位置4
			TFT_LCD_Draw_Bmp(Compress, Inverse, 61, 164, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 182, TPMS_Unit_Temperature);
			// 位置2
			TFT_LCD_Draw_Bmp(Compress, Inverse, 184, 82, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 182, 100, TPMS_Unit_Temperature);
			// 位置6
			TFT_LCD_Draw_Bmp(Compress, Inverse, 193, 128, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 197, 146, TPMS_Unit_Temperature);
			// 位置5
			TFT_LCD_Draw_Bmp(Compress, Inverse, 191, 164, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 190, 182, TPMS_Unit_Temperature);

			TFT_LCD_Draw_Bmp(Compress, Inverse, 173, 76, Number_14_White_Point);  // 位置2的点
			TFT_LCD_Draw_Bmp(Compress, Inverse, 182, 122, Number_14_White_Point); // 位置6的点
			TFT_LCD_Draw_Bmp(Compress, Inverse, 180, 158, Number_14_White_Point); // 位置5的点
			TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 122, Number_14_White_Point);  // 位置3的点
		}
		GUI_TPMS_Left_Front_Display(Left_Front_Display, Refresh);
		GUI_TPMS_Left_Rear_Display(Left_Rear_Display, Refresh);
		GUI_TPMS_Left_RearInside_Display(Left_Rear_Inside_Display, Refresh);
		GUI_TPMS_Right_Front_Display(Right_Front_Display, Refresh);
		GUI_TPMS_Right_Rear_Display(Right_Rear_Display, Refresh);
		GUI_TPMS_Right_RearInside_Display(Right_Rear_Inside_Display, Refresh);
	}
	else if ((TPMS_Config.F110 == 1) && (TPMS_Config.F101 == 2))
	{
		if (Refresh)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 75, TPMS_Car);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 84, TPMS_Line_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 148, 84, TPMS_Line_2);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 82, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 72, 100, TPMS_Unit_Temperature);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 76, Number_14_White_Point);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 184, 82, TPMS_Unit_Bar);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 182, 100, TPMS_Unit_Temperature);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 173, 76, Number_14_White_Point);
		}
		GUI_TPMS_Left_Front_Display(Left_Front_Display, Refresh);
		GUI_TPMS_Right_Front_Display(Right_Front_Display, Refresh);
	}
	else
	{
	}
}

/******************************************************************************
   ��������Ϣ��ʾ
******************************************************************************/

void NavigationBar_Page_Display(void)
{
	INT8U Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		if ((MenuCur <= MENU_ITEM_Navi_Demand) && (MenuCur >= MENU_ITEM_Navi_ECU))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Clear_Middle();
				Refresh = 1;
				// GUIBackUp.AirPressGround_Done = 0;
			}
			else
			{
			}
		}
	}
	else if (GUIBackUp.Menu_Cur == MENU_ITEM_ECU_AvgELC)
	{
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}

	if (MenuCur == MENU_ITEM_Navi_ECU)
	{
		Gui_AvgPowCon(AvgEVCons.Valid, AvgEVCons.Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_Navi_Set)
	{
		if (Refresh)
		{
			Menu1_Page_Flag = 0;
			Menu1_Page_Dir = 0;
			GUIBackUp.Menu1_Dir = 0;
			GUIBackUp.Menu1_PageFlg = 0;

			if (Val_EOL_F101_ServiceMaintain() == 2)
			{
				if (MenuData.Language) // zh321
				{
					GUI_Display_Version_Code_Service(88, 74, "Time Mode", Num_14_EN);
					GUI_Display_Version_Code_Service(55, 102, "Overspeed Threshold", Num_14_EN);
					GUI_Display_Version_Code_Service(82, 130, "Maintenance", Num_14_EN);
					GUI_Display_Version_Code_Service(76, 158, "Reset Settings", Num_14_EN);
					GUI_Display_Version_Code_Service(91, 186, "Language", Num_14_EN);
				}
				else
				{
					TFT_LCD_Draw_Transparent_Bmp(72, 69, Set_Menu1_Title1_Word0, TFT_LCD_TYPE_SET);			// 时间
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 69, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);	// 设置
					TFT_LCD_Draw_Transparent_Bmp(72, 97, Set_Menu1_Title2_Word0, TFT_LCD_TYPE_SET);			// 超速
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 97, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);	// 设置
					TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title3_Word0, TFT_LCD_TYPE_SET);		// 保养
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 127, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET); // 设置
					TFT_LCD_Draw_Transparent_Bmp(72, 153, Set_Menu1_Title4_Word0, TFT_LCD_TYPE_SET);		// 清零
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 153, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET); // 设置
					TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title5_Word0, TFT_LCD_TYPE_SET);		// 语言
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 181, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET); // 设置
				}
			}
			else // 没保养
			{
				if (MenuData.Language) // zh321
				{
					GUI_Display_Version_Code_Service(88, 74, "Time Mode", Num_14_EN);
					GUI_Display_Version_Code_Service(55, 102, "Overspeed Threshold", Num_14_EN);
					// GUI_Display_Version_Code_Service(82, 130, "Maintenance",Num_14_EN);
					GUI_Display_Version_Code_Service(76, 130, "Reset Settings", Num_14_EN);
					GUI_Display_Version_Code_Service(91, 158, "Language", Num_14_EN);
					if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
					{
						GUI_Display_Version_Code_Service(56, 186, "Tyre Pressure Study", Num_14_EN);
					}
					else
					{
						GUI_Display_Version_Code_Service(89, 186, "Versions", Num_14_EN);
					}
				}
				else
				{
					TFT_LCD_Draw_Transparent_Bmp(72, 69, Set_Menu1_Title1_Word0, TFT_LCD_TYPE_SET);		   // 时间
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 69, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET); // 设置
					TFT_LCD_Draw_Transparent_Bmp(72, 97, Set_Menu1_Title2_Word0, TFT_LCD_TYPE_SET);		   // 超速
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 97, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET); // 设置
					// TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title3_Word0, TFT_LCD_TYPE_SET);
					// TFT_LCD_Draw_Transparent_Bmp(72 + 48, 127, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title4_Word0, TFT_LCD_TYPE_SET);		// 清零
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 127, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET); // 设置
					TFT_LCD_Draw_Transparent_Bmp(72, 153, Set_Menu1_Title5_Word0, TFT_LCD_TYPE_SET);		// 语言
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 153, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET); // 设置
					if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
					{
						TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title6_Word0, TFT_LCD_TYPE_SET); // 胎压学习
					}
					else
					{
						TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title7_Word0, TFT_LCD_TYPE_SET); // IC查询
					}
				}
			}

			TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_SET);
		}
	}
	else if (MenuCur == MENU_ITEM_Navi_Demand)
	{
		if (Refresh)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(94, 118, "Fault Query", Num_14_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 75, 117, Alarm_085_Word0);
			}
		}
	}
	else
	{
	}
}
void NavigationBar_Mode_Display(void)
{
	INT8U Refresh = 0;
	if (MenuCur == MENU_ITEM_Navi_ECU)
	{
		GUINaviBar.ECU_St = FLASH_SYNC_1Hz;
	}
	else
	{
		if (Menu_Item_Select_Get(MENU_ITEM_Navi_ECU) == 1)
		{
			if ((MenuCur >= MENU_ITEM_Navi_ECU) && (MenuCur <= MENU_ITEM_Navi_Demand))
			{
				GUINaviBar.ECU_St = 1;
			}
			else
			{
				GUINaviBar.ECU_St = 2;
			}
		}
		else
		{
			GUINaviBar.ECU_St = 3;
		}
	}
	if (MenuCur == MENU_ITEM_Navi_Set)
	{
		GUINaviBar.Set_St = FLASH_SYNC_1Hz;
	}
	else
	{
		if (Menu_Item_Select_Get(MENU_ITEM_Navi_Set) == 1)
		{
			if ((MenuCur >= MENU_ITEM_Navi_ECU) && (MenuCur <= MENU_ITEM_Navi_Demand))
			{
				GUINaviBar.Set_St = 1;
			}
			else
			{
				GUINaviBar.Set_St = 2;
			}
		}
		else
		{
			GUINaviBar.Set_St = 3;
		}
	}
	if (MenuCur == MENU_ITEM_Navi_Demand)
	{
		GUINaviBar.Demand_St = FLASH_SYNC_1Hz;
	}
	else
	{
		if (Menu_Item_Select_Get(MENU_ITEM_Navi_Demand) == 1)
		{
			if ((MenuCur >= MENU_ITEM_Navi_ECU) && (MenuCur <= MENU_ITEM_Navi_Demand))
			{
				GUINaviBar.Demand_St = 1;
			}
			else
			{
				GUINaviBar.Demand_St = 2;
			}
		}
		else
		{
			GUINaviBar.Demand_St = 3;
		}
	}

	if (GUIBackUp.Menu_Cur != MenuCur)
	{
		GUINaviBar_Flag = 1;
	}
	if ((GUINaviBarBackUp.ECU_St != GUINaviBar.ECU_St) ||
		(GUINaviBarBackUp.Set_St != GUINaviBar.Set_St) ||
		(GUINaviBarBackUp.Demand_St != GUINaviBar.Demand_St))
	{

		if ((((GUINaviBarBackUp.ECU_St == 2) && (GUINaviBar.ECU_St != 2)) || ((GUINaviBarBackUp.ECU_St != 2) && (GUINaviBar.ECU_St == 2))) ||
			(((GUINaviBarBackUp.Set_St == 2) && (GUINaviBar.Set_St != 2)) || ((GUINaviBarBackUp.Set_St != 2) && (GUINaviBar.Set_St == 2))) ||
			(((GUINaviBarBackUp.Demand_St == 2) && (GUINaviBar.Demand_St != 2)) || ((GUINaviBarBackUp.Demand_St != 2) && (GUINaviBar.Demand_St == 2))))

		{
			if (GUINaviBar_Flag == 1)
			{
				Clear_Box(68, 35, 170, 65);
			}

			TFT_LCD_Draw_Transparent_Bmp(68, 33, Bottom_Line_02, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(156, 33, Bottom_Line_04, TFT_LCD_TYPE_SET);
		}

		//
		Refresh = 1;

		GUINaviBarBackUp.ECU_St = GUINaviBar.ECU_St;
		GUINaviBarBackUp.Set_St = GUINaviBar.Set_St;
		GUINaviBarBackUp.Demand_St = GUINaviBar.Demand_St;
	}

	if (Refresh == 1)
	{
		if (GUINaviBar.ECU_St == 0)
		{
			Clear_pBmp(82, 40, icon_01_1);
		}
		else if (GUINaviBar.ECU_St == 1)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 82, 40, icon_01_1);
		}
		else if (GUINaviBar.ECU_St == 2)
		{
			TFT_LCD_Draw_Transparent_Bmp(68, 33, icon_01_3, TFT_LCD_TYPE_SET);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(82, 40, icon_01_1, TFT_LCD_TYPE_SET);
		}

		if (GUINaviBar.Set_St == 0)
		{
			Clear_pBmp(114, 40, icon_02_1);
		}
		else if (GUINaviBar.Set_St == 1)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 114, 40, icon_02_1);
		}
		else if (GUINaviBar.Set_St == 2)
		{
			TFT_LCD_Draw_Transparent_Bmp(97, 33, icon_02_3, TFT_LCD_TYPE_SET);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(114, 40, icon_02_1, TFT_LCD_TYPE_SET);
		}

		if (GUINaviBar.Demand_St == 0)
		{
			Clear_pBmp(140, 39, icon_03_1);
			// Clear_Box(144, 37, 144+11, 37+16);
			// Clear_Box(139, 46, 139+24, 46+8);

			// TFT_LCD_Draw_Transparent_Bmp(156, 33, Bottom_Line_04, TFT_LCD_TYPE_SET);
		}
		else if (GUINaviBar.Demand_St == 1)
		{
			TFT_LCD_Draw_Transparent_Bmp(140, 39, icon_03_1, TFT_LCD_TYPE_SET);
		}
		else if (GUINaviBar.Demand_St == 2)
		{
			TFT_LCD_Draw_Transparent_Bmp(129, 33, icon_03_3, TFT_LCD_TYPE_SET);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(140, 39, icon_03_1, TFT_LCD_TYPE_SET);
		}
	}
}

void GUI_DRIVE_INFO_Display(void)
{
	INT8U Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		// GUIBackUp.AirPressGround_Done  = 0;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}

	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_ECU_AvgELC) && (GUIBackUp.Menu_Cur >= MENU_ITEM_ECU_ErrCode))
	{
		if ((MenuCur <= MENU_ITEM_ECU_AvgELC) && (MenuCur >= MENU_ITEM_ECU_ErrCode))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				Clear_Box(31, 75, 211, 200);
			}
		}
		else
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Clear_Middle();
				Refresh = 1;
			}
		}
	}
	else if (GUIBackUp.Menu_Cur == MENU_ITEM_Navi_ECU)
	{
		if (/*(MenuCur == MENU_ITEM_ECU_LDW) ||*/ (MenuCur == MENU_ITEM_ECU_RADAR))
		{
			Clear_Middle();
			Refresh = 1;
		}
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Clear_Middle();
			Refresh = 1;
		}
	}

	if (MenuCur == MENU_ITEM_ECU_AvgELC)
	{
		Gui_AvgPowCon(AvgEVCons.Valid, AvgEVCons.Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_ElcDTE)
	{
		Gui_Elec_Range(DataEVDTE.Valid, DataEVDTE.u16_Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_InsELC)
	{
		Gui_InsPowCon(DataConsPwr.Valid, DataConsPwr.DispValue, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_RemainPwr)
	{
		Gui_SurPlusPower(DataRemainPwr.Valid, DataRemainPwr.u16_Value / 10, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_AvgSpeed)
	{
		Gui_AvgSpeed(DataAvgSpd.Display_Valid, DataAvgSpd.Display_Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_DrivingTime)
	{
		DriverTime(DataDrivingTimeHour, DataDrivingTimeMin, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_WorkVolt)
	{
		Gui_WorkVoltage(BattVolt.Valid, BattVolt.Display_Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_WorkCurr)
	{
		Gui_WorkCurrent(BattCurr.Valid, BattCurr.Display_Value, BattCurr.Symbol, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_BattVolt)
	{
		Gui_BatteyVoltage(BattPower_Volt.Valid, BattPower_Volt.Display_Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_BattHighVolt)
	{
		Gui_BatteyMaxVoltage(Batt_MaxCellVolt.Valid, Batt_MaxCellVolt.Display_Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_BattLowVolt)
	{
		Gui_BatteyMinVoltage(Batt_MinCellVolt.Valid, Batt_MinCellVolt.Display_Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_BattHighTemp)
	{
		Gui_BatteyMaxTemp(Batt_MaxTemp.Valid, Batt_MaxTemp.Display_Value, Batt_MaxTemp.Symbol, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_BattLowTemp)
	{
		Gui_BatteyMinTemp(Batt_MinTemp.Valid, Batt_MinTemp.Display_Value, Batt_MinTemp.Symbol, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_ErrCode)
	{
		Gui_FaultCode(DataErrCode.Vaild, DataErrCode.Value, Refresh);
	}
	else if (MenuCur == MENU_ITEM_ECU_TPMS)
	{
		GUI_TPMS_Noraml_Display(Refresh);
		GUI_TPMS_Warning_Display(MenuTpmsCtrl, Refresh);
	}
	// else if (MenuCur == MENU_ITEM_ECU_LDW)
	//{
	//	//GUI_Drive_Info_LDW_Display(LDW_Infor.Vaild, LDW_Infor.Left_St, LDW_Infor.Right_St, Refresh);
	// }
	else if (MenuCur == MENU_ITEM_ECU_RADAR)
	{
		GUI_Drive_Info_PDC_Display(PDC_Sts, Refresh);
	}
	else
	{
		;
	}
}

void Gui_AvgSpeed(INT8U Valid, INT8U AvgSpeed, INT8U Refresh)
{
	uint8_t ValidRefresh = 0;
	uint8_t AvgSpeedRefresh = 0;

	if (GUIBackUp.AvgSpeed != AvgSpeed)
	{
		AvgSpeedRefresh = 1;
		GUIBackUp.AvgSpeed = AvgSpeed;
	}

	if (GUIBackUp.AvgSpeedValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.AvgSpeedValid = Valid;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(56, 101, "Average Speed", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 80, 98, ECU_Title_Word0_APC_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 122, 98, ECU_Title_Word0_AVS);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 127, 143, ECU_Unit_kmh);
	}

	if ((Refresh) || (ValidRefresh) || (AvgSpeedRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(AvgSpeed, Num_32, 3, 2, AvgSpeed3Digits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 103, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 67, 137, Number_32_White_Line);
		}
	}
}

void Gui_AvgPowCon(INT8U Valid, INT32U AvgPowCon, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U AvgPowConRefresh = 0;
	INT8U SymbolRefresh = 0;

	if (GUIBackUp.AvgPowCon != AvgPowCon)
	{
		AvgPowConRefresh = 1;
		GUIBackUp.AvgPowCon = AvgPowCon;
	}

	if (GUIBackUp.AvgPowConValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.AvgPowConValid = Valid;
	}

	if (GUIBackUp.AvgPowConSymbol != AvgEVCons.Symbol)
	{
		SymbolRefresh = 1;
		GUIBackUp.AvgPowConSymbol = AvgEVCons.Symbol;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(54, 101, "Average Power", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 79, 98, ECU_Title_Word0_APC_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 123, 98, ECU_Title_Word0_APC_2);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 124, 143, ECU_Unit_kWh);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 137, Number_32_White_Point);
	}
	if ((Refresh) || (ValidRefresh) || (AvgPowConRefresh) || (SymbolRefresh))
	{
		if (Valid)
		{
			if (AvgEVCons.Symbol == Positive)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 31, 137, Number_32_White_back);
				GUI_General_Digit_Display(AvgPowCon, Num_32, 4, 2, AvgPowCon4Digits32PosX, 137);
			}
			else
			{
				if (AvgPowCon > 999)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 31, 137, Number_32_White_Line);
					GUI_General_Digit_Display(AvgPowCon, Num_32, 4, 2, AvgPowCon4Digits32PosX, 137);
				}
				else if (AvgPowCon > 99)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 31, 137, Number_32_White_back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 47, 137, Number_32_White_Line);
					GUI_General_Digit_Display(AvgPowCon, Num_32, 3, 1, AvgPowCon3Digits32PosX, 137);
				}
				else if (AvgPowCon > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 31, 137, Number_32_White_back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 47, 137, Number_32_White_back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 64, 137, Number_32_White_Line);
					GUI_General_Digit_Display(AvgPowCon, Num_32, 2, 0, AvgPowCon2Digits32PosX, 137);
				}
				else
				{
					;
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 106, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 81, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 64, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 47, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 31, 137, Number_32_White_back);
		}
	}
}

void Gui_InsPowCon(INT8U Valid, INT16U InsPowCon, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U InsPowConRefresh = 0;
	INT8U SymbolRefresh = 0;

	if (GUIBackUp.InsPowCon != InsPowCon)
	{
		InsPowConRefresh = 1;
		GUIBackUp.InsPowCon = InsPowCon;
	}

	if (GUIBackUp.InsPowConValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.InsPowConValid = Valid;
	}

	if (GUIBackUp.InsPowConSymbol != DataConsPwr.Symbol)
	{
		SymbolRefresh = 1;
		GUIBackUp.InsPowConSymbol = DataConsPwr.Symbol;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(30, 101, "instantaneous power", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 78, 98, ECU_Title_Word0_Instant_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 98, ECU_Title_Word0_Instant_2);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 146, ECU_Unit_kW);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 126, 137, Number_32_White_Point);
	}

	if ((Refresh) || (ValidRefresh) || (InsPowConRefresh) || (SymbolRefresh))
	{
		if (Valid)
		{
			if (DataConsPwr.Symbol == Positive)
			{
				GUI_General_Digit_Display(InsPowCon, Num_32, 4, 2, InsPowCon4Digits32PosX, 137);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 137, Number_32_White_back);
			}
			else
			{
				if (InsPowCon > 999)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 137, Number_32_White_Line);
					GUI_General_Digit_Display(InsPowCon, Num_32, 4, 2, InsPowCon4Digits32PosX, 137);
				}
				else if (InsPowCon > 99)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 137, Number_32_White_back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 72, 137, Number_32_White_Line);
					GUI_General_Digit_Display(InsPowCon, Num_32, 3, 1, InsPowCon3Digits32PosX, 137);
				}
				else if (InsPowCon > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 90, 137, Number_32_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 137, Number_32_White_back);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 72, 137, Number_32_White_back);
					GUI_General_Digit_Display(InsPowCon, Num_32, 2, 0, InsPowCon2Digits32PosX, 137);
				}
				else
				{
					;
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 133, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 108, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 90, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 72, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 137, Number_32_White_back);
		}
	}
}

void Gui_Elec_Range(INT8U Valid, INT16U Range, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U RangeRefresh = 0;

	if (GUIBackUp.Range != Range)
	{
		RangeRefresh = 1;
		GUIBackUp.Range = Range;
	}

	if (GUIBackUp.RangeValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.RangeValid = Valid;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(42, 81, "Distance To Empty", Num_18_EN);
			GUI_Display_Version_Code_Service(82, 101, "(Battery)", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 56, 98, ECU_Title_Word0_MileageEV);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 146, 146, ECU_Unit_km);
	}

	if ((Refresh) || (RangeRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(Range, Num_32, 4, 3, Range4Digits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 104, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 87, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 70, 137, Number_32_White_Line);
		}
	}
}

void Gui_WorkVoltage(INT8U Valid, INT32U WorkVoltage, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U WorkVoltageRefresh = 0;

	if (GUIBackUp.WorkVol != WorkVoltage)
	{
		WorkVoltageRefresh = 1;
		GUIBackUp.WorkVol = WorkVoltage;
	}
	if (GUIBackUp.WorkVolValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.WorkVolValid = Valid;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(87, 101, "Voltage", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 79, 98, ECU_Title_Word0_WorkingA_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 124, 98, ECU_Title_Word0_WorkingV);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 149, 146, ECU_Unit_V);
	}

	if ((Refresh) || (WorkVoltageRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(WorkVoltage, Num_32, 3, 2, WorkCurrent3Digits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 103, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 137, Number_32_White_Line);
		}
	}
}

void Gui_BatteyVoltage(INT8U Valid, INT16U BatteyVoltage, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U BatteyVoltageRefresh = 0;

	if (GUIBackUp.BatteyVol != BatteyVoltage)
	{
		BatteyVoltageRefresh = 1;
		GUIBackUp.BatteyVol = BatteyVoltage;
	}
	if (GUIBackUp.BatteyVolValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.BatteyVolValid = Valid;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(54, 101, "Battery Voltage", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 98, ECU_Title_Word0_BatteryV);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 98, ECU_Title_Word0_WorkingV);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 157, 146, ECU_Unit_V);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 127, 137, Number_32_White_Point);
	}

	if ((Refresh) || (BatteyVoltageRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(BatteyVoltage, Num_32, 4, 2, BatteyVoltage3Digits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 133, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 108, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 91, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 74, 137, Number_32_White_Line);
		}
	}
}

void Gui_BatteyMaxVoltage(INT8U Valid, INT8U BatteyMaxVoltage, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U BatteyMaxVoltageRefresh = 0;

	if (GUIBackUp.BatteyMaxVol != BatteyMaxVoltage)
	{
		BatteyMaxVoltageRefresh = 1;
		GUIBackUp.BatteyMaxVol = BatteyMaxVoltage;
	}
	if (GUIBackUp.BatteyMaxVolValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.BatteyMaxVolValid = Valid;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(48, 81, "battery maximum", Num_18_EN);
			GUI_Display_Version_Code_Service(87, 101, "voltage", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 98, ECU_Title_Word0_MaximumV);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 98, ECU_Title_Word0_WorkingV);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 146, ECU_Unit_V);
	}

	if ((Refresh) || (BatteyMaxVoltageRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(BatteyMaxVoltage, Num_32, 3, 2, Voltage3Digits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 103, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 137, Number_32_White_Line);
		}
	}
}

void Gui_BatteyMinVoltage(INT8U Valid, INT8U BatteyMinVoltage, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U BatteyMinVoltageRefresh = 0;
	// INT8U BatteyMinVoltageNumFlag;

	if (GUIBackUp.BatteyMinVol != BatteyMinVoltage)
	{
		BatteyMinVoltageRefresh = 1;
		GUIBackUp.BatteyMinVol = BatteyMinVoltage;
	}
	if (GUIBackUp.BatteyMinVolValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.BatteyMinVolValid = Valid;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(50, 81, "battery minimum", Num_18_EN);
			GUI_Display_Version_Code_Service(87, 101, "voltage", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 98, ECU_Title_Word0_LowestV);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 155, 98, ECU_Title_Word0_WorkingV);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 146, ECU_Unit_V);
	}
	if ((Refresh) || (BatteyMinVoltageRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(BatteyMinVoltage, Num_32, 3, 2, Voltage3Digits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 103, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 137, Number_32_White_Line);
		}
	}
}

void Gui_WorkCurrent(INT8U Valid, INT16U WorkCurrent, INT8U Symbol, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U WorkCurrentRefresh = 0;
	INT8U SymbolRefresh = 0;
	INT8U WorkCurrentNumFlag = 0;

	if (GUIBackUp.WorkCur != WorkCurrent)
	{
		WorkCurrentRefresh = 1;
		GUIBackUp.WorkCur = WorkCurrent;
	}

	if (GUIBackUp.WorkCurValid != Valid)
	{
		ValidRefresh = 1;
		Clear_Box(76, 137, 165, 162);
		GUIBackUp.WorkCurValid = Valid;
	}

	if (GUIBackUp.WorkCurSymbol != Symbol)
	{
		SymbolRefresh = 1;
		Clear_Box(76, 137, 165, 162);
		GUIBackUp.WorkCurSymbol = Symbol;
	}

	if ((WorkCurrent >= 10) && (WorkCurrent <= 99))
	{
		WorkCurrentNumFlag = 1;
	}
	else if ((WorkCurrent >= 100) && (WorkCurrent <= 999))
	{
		WorkCurrentNumFlag = 2;
	}
	else
	{
		WorkCurrentNumFlag = 3;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(87, 101, "Current", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 78, 98, ECU_Title_Word0_WorkingA_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 122, 98, ECU_Title_Word0_WorkingA_2);
		}
	}
	if ((Refresh) || (ValidRefresh) || (WorkCurrentRefresh) || (SymbolRefresh))
	{
		if (GUIBackUp.WorkCurNum != WorkCurrentNumFlag)
		{
			Clear_Box(76, 137, 165, 162);
			GUIBackUp.WorkCurNum = WorkCurrentNumFlag;
		}

		if (Valid)
		{
			if (Symbol == 0) //+
			{
				if (WorkCurrent > 99)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 146, ECU_Unit_A);
					GUI_General_Digit_Display(WorkCurrent, Num_32, 3, 2, WorkCurrent3Digits32PosX, 137);
				}
				else if (WorkCurrent > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 146, ECU_Unit_A);
					GUI_General_Digit_Display(WorkCurrent, Num_32, 2, 1, WorkCurrent2Digits32PosX, 137);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 128, 146, ECU_Unit_A);
					GUI_General_Digit_Display(WorkCurrent, Num_32, 1, 0, WorkCurrent1Digits32PosX, 137);
				}
			}
			else
			{
				if (WorkCurrent > 99)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 137, Number_32_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 153, 146, ECU_Unit_A);
					GUI_General_Digit_Display(WorkCurrent, Num_32, 3, 2, WorkCurrent3Digits32PosX1, 137);
				}
				else if (WorkCurrent > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 137, Number_32_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 146, ECU_Unit_A);
					GUI_General_Digit_Display(WorkCurrent, Num_32, 2, 1, WorkCurrent2Digits32PosX1, 137);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 94, 137, Number_32_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 146, ECU_Unit_A);
					GUI_General_Digit_Display(WorkCurrent, Num_32, 1, 0, WorkCurrent1Digits32PosX1, 137);
				}
			}
		}
		else
		{
			Clear_Box(76, 137, 165, 162);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 103, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 146, ECU_Unit_A);
		}
	}
}

void Gui_SurPlusPower(INT8U Valid, INT16U SurPlusPower, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U SurPowerRefresh = 0;

	if (GUIBackUp.SurPower != SurPlusPower)
	{
		GUIBackUp.SurPower = SurPlusPower;
		SurPowerRefresh = 1;
	}

	if (GUIBackUp.SurPowerValid != Valid)
	{
		GUIBackUp.SurPowerValid = Valid;
		ValidRefresh = 1;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(45, 101, "Remaining Power", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 77, 98, ECU_Title_Word0_SEP);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 98, ECU_Title_Word0_Instant_2);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 148, 146, ECU_Unit_kW);
	}

	if ((Refresh) || (SurPowerRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(SurPlusPower, Num_32, 4, 3, SurPower4Digits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 123, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 106, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 89, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 72, 137, Number_32_White_Line);
		}
	}
}

void DriverTime(INT8U Hour, INT8U Minute, INT8U Refresh)
{
	INT8U HourRefresh = 0;
	INT8U MinuteRefresh = 0;

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(63, 101, "Journey Time", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48 + 24, 98, ECU_Title_Word0_Time);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 137, Number_32_White_Point2);
		GUI_General_Digit_Display(Hour, Num_32, 2, 0, DriverTimeHourDigits32PosX, 137);
		GUI_General_Digit_Display(Minute, Num_32, 2, 0, DriverTimeMinuteDigits32PosX, 137);
	}

	if (GUIBackUp.DriverHour != Hour)
	{
		GUIBackUp.DriverHour = Hour;
		GUI_General_Digit_Display(Hour, Num_32, 2, 0, DriverTimeHourDigits32PosX, 137);
	}

	if (GUIBackUp.DriverMinute != Minute)
	{
		GUIBackUp.DriverMinute = Minute;
		GUI_General_Digit_Display(Minute, Num_32, 2, 0, DriverTimeMinuteDigits32PosX, 137);
	}
}

void Gui_FaultCode(INT8U Valid, INT16U FaultCode, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U FaultCodeRefresh = 0;

	if (GUIBackUp.FaultCode != FaultCode)
	{
		GUIBackUp.FaultCode = FaultCode;
		FaultCodeRefresh = 1;
	}

	if (GUIBackUp.FaultCodeValid != Valid)
	{
		GUIBackUp.FaultCodeValid = Valid;
		ValidRefresh = 1;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(73, 101, "Error Code", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48 + 20, 98, ECU_Title_Word0_DTC);
		}
	}
	if ((Refresh) || (FaultCodeRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(FaultCode, Num_32, 4, 0, FaultCodeDigits32PosX, 137);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 138, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 104, 137, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 87, 137, Number_32_White_Line);
		}
	}
}

void Gui_BatteyMaxTemp(INT8U Valid, INT8U MaxTemp, INT8U Symbol, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U MaxTempRefresh = 0;
	INT8U SymbolRefresh = 0;
	INT8U MaxTempNum = 0;

	if (GUIBackUp.MaxTemp != MaxTemp)
	{
		MaxTempRefresh = 1;
		GUIBackUp.MaxTemp = MaxTemp;
	}

	if (GUIBackUp.MaxTempValid != Valid)
	{
		Clear_Box(83, 137, 142 + 16, 146 + 16);
		GUIBackUp.MaxTempValid = Valid;
		ValidRefresh = 1;
	}

	if (GUIBackUp.MaxTempSymbol != Symbol)
	{
		Clear_Box(83, 137, 142 + 16, 146 + 16);
		SymbolRefresh = 1;
		GUIBackUp.MaxTempSymbol = Symbol;
	}

	if ((MaxTemp >= 10) && (MaxTemp <= 99))
	{
		MaxTempNum = 1;
	}
	else if ((MaxTemp >= 100) && (MaxTemp <= 999))
	{
		MaxTempNum = 2;
	}
	else
	{
		MaxTempNum = 3;
	}
	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(48, 81, "battery maximum", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 101, "Temperature", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 98, ECU_Title_Word0_MaximumV);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 151, 98, ECU_Title_Word0_TemperatureH_2);
		}
	}
	if ((Refresh) || (MaxTempRefresh) || (ValidRefresh) || (SymbolRefresh))
	{
		if (GUIBackUp.MaxTempNum != MaxTempNum)
		{
			Clear_Box(83, 137, 142 + 16, 146 + 16);
			GUIBackUp.MaxTempNum = MaxTempNum;
		}

		if (Valid)
		{
			if (Symbol == 0)
			{
				if (MaxTemp > 99)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 146, ECU_Unit_Temperature);
					GUI_General_Digit_Display(MaxTemp, Num_32, 3, 2, BatteyMaxTemp3Digits32PosX, 137);
				}
				else if (MaxTemp > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 134, 146, ECU_Unit_Temperature);
					GUI_General_Digit_Display(MaxTemp, Num_32, 2, 1, BatteyMaxTemp2Digits32PosX, 137);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 125, 146, ECU_Unit_Temperature);
					GUI_General_Digit_Display(MaxTemp, Num_32, 1, 0, BatteyMaxTemp1Digits32PosX, 137);
				}
			}
			else
			{
				if (MaxTemp > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 134, 146, ECU_Unit_Temperature);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 83, 137, Number_32_White_Line);
					GUI_General_Digit_Display(MaxTemp, Num_32, 2, 1, BatteyMaxTemp2Digits32PosX, 137);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 125, 146, ECU_Unit_Temperature);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 137, Number_32_White_Line);
					GUI_General_Digit_Display(MaxTemp, Num_32, 1, 0, BatteyMaxTemp1Digits32PosX, 137);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 117, 146, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 146, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 83, 146, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 146, ECU_Unit_Temperature);
		}
	}
}

void Gui_BatteyMinTemp(INT8U Valid, INT8U MinTemp, INT8U Symbol, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U MinTempRefresh = 0;
	INT8U SymbolRefresh = 0;
	INT8U MinTempNum = 0;

	if (GUIBackUp.MinTemp != MinTemp)
	{
		MinTempRefresh = 1;
		GUIBackUp.MinTemp = MinTemp;
	}

	if (GUIBackUp.MinTempValid != Valid)
	{
		Clear_Box(83, 137, 142 + 16, 146 + 16);
		GUIBackUp.MinTempValid = Valid;
		ValidRefresh = 1;
	}

	if (GUIBackUp.MinTempSymbol != Symbol)
	{
		Clear_Box(83, 137, 142 + 16, 146 + 16);
		SymbolRefresh = 1;
		GUIBackUp.MinTempSymbol = Symbol;
	}

	if ((MinTemp >= 10) && (MinTemp <= 99))
	{
		MinTempNum = 1;
	}
	else if ((MinTemp >= 100) && (MinTemp <= 999))
	{
		MinTempNum = 2;
	}
	else
	{
		MinTempNum = 3;
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(50, 81, "battery minimum", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 101, "Temperature", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 98, ECU_Title_Word0_LowestV);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 152, 98, ECU_Title_Word0_TemperatureH_2);
		}
	}
	if ((Refresh) || (MinTempRefresh) || (ValidRefresh) || (SymbolRefresh))
	{
		if (GUIBackUp.MinTempNum != MinTempNum)
		{
			Clear_Box(83, 137, 142 + 16, 146 + 16);
			GUIBackUp.MinTempNum = MinTempNum;
		}

		if (Valid)
		{
			if (Symbol == 0)
			{
				if (MinTemp > 99)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 146, ECU_Unit_Temperature);
					GUI_General_Digit_Display(MinTemp, Num_32, 3, 2, BatteyMinTemp3Digits32PosX, 137);
				}
				else if (MinTemp > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 134, 146, ECU_Unit_Temperature);
					GUI_General_Digit_Display(MinTemp, Num_32, 2, 1, BatteyMinTemp2Digits32PosX, 137);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 125, 146, ECU_Unit_Temperature);
					GUI_General_Digit_Display(MinTemp, Num_32, 1, 0, BatteyMinTemp1Digits32PosX, 137);
				}
			}
			else
			{
				if (MinTemp > 9)
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 134, 146, ECU_Unit_Temperature);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 83, 137, Number_32_White_Line);
					GUI_General_Digit_Display(MinTemp, Num_32, 2, 1, BatteyMinTemp2Digits32PosX, 137);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 125, 146, ECU_Unit_Temperature);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 137, Number_32_White_Line);
					GUI_General_Digit_Display(MinTemp, Num_32, 1, 0, BatteyMinTemp1Digits32PosX, 137);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 117, 146, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 146, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 83, 146, Number_32_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 146, ECU_Unit_Temperature);
		}
	}
}

void GUI_Setting_Menu1_Draw_XuanKuang(Menu_Item_en_t Item0, INT8U Dir)
{
	if (Val_EOL_F101_ServiceMaintain() == 2)
	{
		if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
		{
			// if (Dir == 0)//右
			//{
			if ((Item0 == MENU_ITEM_SET_TIME)) // 1
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED) || (Item0 == MENU_ITEM_SET_TPMS_LEARN)) // 2
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_MAINT) || (Item0 == MENU_ITEM_SET_IC)) // 3
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_CLEAR) || (Item0 == MENU_ITEM_SET_FACTORYRESET)) // 4
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_LANGUAGE) || (Item0 == MENU_ITEM_SET_RETURN)) // 5
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_SET);
			}
			else
			{
				;
			}
			
		}
		else // 没胎压
		{
			// if (Dir == 0)//右
			//{
			if ((Item0 == MENU_ITEM_SET_TIME)) // 1
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED)) // 2
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_MAINT) || (Item0 == MENU_ITEM_SET_IC)) // 3
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_CLEAR) || (Item0 == MENU_ITEM_SET_FACTORYRESET)) // 4
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_LANGUAGE) || (Item0 == MENU_ITEM_SET_RETURN)) // 5
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_SET);
			}
			else
			{
				;
			}
		}
	}
	else // 没保养
	{
		if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
		{
			// if (Dir == 0)//右
			//{
			if ((Item0 == MENU_ITEM_SET_TIME)) // 1
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED)) // 2
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_CLEAR) || (Item0 == MENU_ITEM_SET_IC)) // 3
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_LANGUAGE) || (Item0 == MENU_ITEM_SET_FACTORYRESET)) // 4
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_TPMS_LEARN) || (Item0 == MENU_ITEM_SET_RETURN)) // 5
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_SET);
			}
			else
			{
				;
			}
		}
		else // 没胎压
		{
			// if (Dir == 0)//右
			//{
			if ((Item0 == MENU_ITEM_SET_TIME)) // 1
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED)) // 2
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_CLEAR)) // 3
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_LANGUAGE) || (Item0 == MENU_ITEM_SET_FACTORYRESET)) // 4
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_SET);
			}
			else if ((Item0 == MENU_ITEM_SET_IC) || (Item0 == MENU_ITEM_SET_RETURN)) // 5
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_SET);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_SET);
			}
			else
			{
				;
			}
			
		}
	}
}

void GUI_Setting_Menu1_Clear_XuanKuang(Menu_Item_en_t Item0, INT8U Dir)
{
	if (Val_EOL_F101_ServiceMaintain() == 2)
	{
		if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
		{
			// if (Dir == 0)
			//{
			if ((Item0 == MENU_ITEM_SET_TIME))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED) || (Item0 == MENU_ITEM_SET_TPMS_LEARN))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_MAINT) || (Item0 == MENU_ITEM_SET_IC))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_FACTORYRESET) || (Item0 == MENU_ITEM_SET_CLEAR))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_LANGUAGE) || (Item0 == MENU_ITEM_SET_RETURN))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_CLR);
			}
			else
			{
				;
			}
			
		}
		else
		{
			// if (Dir == 0)
			//{
			if ((Item0 == MENU_ITEM_SET_TIME))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED) || (Item0 == MENU_ITEM_SET_TPMS_LEARN))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_MAINT) || (Item0 == MENU_ITEM_SET_IC))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_FACTORYRESET) || (Item0 == MENU_ITEM_SET_CLEAR))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_LANGUAGE) || (Item0 == MENU_ITEM_SET_RETURN))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_CLR);
			}
			else
			{
				;
			}
			
		}
	}
	else
	{
		if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
		{
			// if (Dir == 0)
			//{
			if ((Item0 == MENU_ITEM_SET_TIME))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_CLEAR) || (Item0 == MENU_ITEM_SET_IC))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_FACTORYRESET) || (Item0 == MENU_ITEM_SET_LANGUAGE))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_TPMS_LEARN) || (Item0 == MENU_ITEM_SET_RETURN))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_CLR);
			}
			else
			{
				;
			}
			
		}
		else // 没保养,没胎压
		{
			// if (Dir == 0)
			//{
			if ((Item0 == MENU_ITEM_SET_TIME))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_OVERSPEED))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_CLEAR))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_FACTORYRESET) || (Item0 == MENU_ITEM_SET_LANGUAGE))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_CLR);
			}
			else if ((Item0 == MENU_ITEM_SET_IC) || (Item0 == MENU_ITEM_SET_RETURN))
			{

				TFT_LCD_Draw_Horizontal_Line(50, 190, 180, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Horizontal_Line(50, 190, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(50, 180, 206, TFT_LCD_TYPE_CLR);
				TFT_LCD_Draw_Vertical_Line(190, 180, 206, TFT_LCD_TYPE_CLR);
			}
			else
			{
				;
			}
		}
	}
}

void GUI_Setting_Menu1_Page_Ground(void)
{
	if (GUIBackUp.Menu1Ground_Done == 0)
	{
		if (Menu1_Page_Flag == 0)
		{
			if (Val_EOL_F101_ServiceMaintain() == 2)
			{
				if (MenuData.Language) // zh321
				{
					GUI_Display_Version_Code_Service(88, 74, "Time Mode", Num_14_EN);
					GUI_Display_Version_Code_Service(55, 102, "Overspeed Threshold", Num_14_EN);
					GUI_Display_Version_Code_Service(82, 130, "Maintenance", Num_14_EN);
					GUI_Display_Version_Code_Service(76, 158, "Reset Settings", Num_14_EN);
					GUI_Display_Version_Code_Service(91, 186, "Language", Num_14_EN);
				}
				else
				{
					TFT_LCD_Draw_Transparent_Bmp(72, 69, Set_Menu1_Title1_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 69, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 97, Set_Menu1_Title2_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 97, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title3_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 127, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 153, Set_Menu1_Title4_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 153, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title5_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 181, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
				}
			}
			else // 没保养
			{
				if (MenuData.Language) // zh321
				{
					GUI_Display_Version_Code_Service(88, 74, "Time Mode", Num_14_EN);
					GUI_Display_Version_Code_Service(55, 102, "Overspeed Threshold", Num_14_EN);
					// GUI_Display_Version_Code_Service(82, 130, "Maintenance",Num_14_EN);
					GUI_Display_Version_Code_Service(76, 130, "Reset Settings", Num_14_EN);
					GUI_Display_Version_Code_Service(91, 158, "Language", Num_14_EN);
					if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
					{
						GUI_Display_Version_Code_Service(56, 186, "Tyre Pressure Study", Num_14_EN);
					}
					else
					{
						GUI_Display_Version_Code_Service(89, 186, "Versions", Num_14_EN);
					}
				}
				else
				{
					TFT_LCD_Draw_Transparent_Bmp(72, 69, Set_Menu1_Title1_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 69, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 97, Set_Menu1_Title2_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 97, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					// TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title3_Word0, TFT_LCD_TYPE_SET);
					// TFT_LCD_Draw_Transparent_Bmp(72 + 48, 127, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title4_Word0, TFT_LCD_TYPE_SET); // 清0
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 127, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 153, Set_Menu1_Title5_Word0, TFT_LCD_TYPE_SET); // 语言
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 153, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
					{
						TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title6_Word0, TFT_LCD_TYPE_SET); // 胎压
					}
					else
					{
						TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title7_Word0, TFT_LCD_TYPE_SET); // ic
					}
				}
			}
		}
		else // 第二页
		{
			if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
			{
				if (MenuData.Language) // zh321
				{
					GUI_Display_Version_Code_Service(91, 74, "Language", Num_14_EN);
					GUI_Display_Version_Code_Service(56, 102, "Tyre Pressure Study", Num_14_EN);
					GUI_Display_Version_Code_Service(89, 130, "Versions", Num_14_EN);
					GUI_Display_Version_Code_Service(103, 158, "Reset", Num_14_EN);
					GUI_Display_Version_Code_Service(100, 186, "Return", Num_14_EN);
				}
				else
				{
					TFT_LCD_Draw_Transparent_Bmp(72, 69, Set_Menu1_Title5_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 69, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 97, Set_Menu1_Title6_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title7_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 153, Set_Menu1_Title8_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title9_Word0_f, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 46 + 24, 181, Set_Menu1_Title9_Word0_h, TFT_LCD_TYPE_SET);
				}
			}
			else
			{
				if (MenuData.Language) // zh321
				{
					GUI_Display_Version_Code_Service(76, 74, "Reset Settings", Num_14_EN);
					GUI_Display_Version_Code_Service(91, 102, "Language", Num_14_EN);
					GUI_Display_Version_Code_Service(89, 130, "Versions", Num_14_EN);
					GUI_Display_Version_Code_Service(103, 158, "Reset", Num_14_EN);
					GUI_Display_Version_Code_Service(100, 186, "Return", Num_14_EN);
				}
				else
				{
					TFT_LCD_Draw_Transparent_Bmp(72, 69, Set_Menu1_Title4_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 69, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 97, Set_Menu1_Title5_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 48, 97, Set_Menu1_Title1_Word0_s, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 127, Set_Menu1_Title7_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 153, Set_Menu1_Title8_Word0, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72, 181, Set_Menu1_Title9_Word0_f, TFT_LCD_TYPE_SET);
					TFT_LCD_Draw_Transparent_Bmp(72 + 46 + 24, 181, Set_Menu1_Title9_Word0_h, TFT_LCD_TYPE_SET);
				}
			}
		}
		GUIBackUp.Menu1Ground_Done = 1;
	}
}

void GUI_Setting_Menu1_Display(void)
{
	INT8U Refresh = 0;
	INT8U Page_Refresh = 0;
	//    INT8U   Cur_Refresh = 0;
	INT8U Dir_Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Menu1Ground_Done = 0;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Menu1Ground_Done = 0;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_TIME))
	{
		if ((MenuCur <= MENU_ITEM_SET_RETURN) && (MenuCur >= MENU_ITEM_SET_TIME))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				if (GUIBackUp.Menu_Cur > MenuCur)
				{
					Menu1_Page_Dir = 1;

					if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
					{
						if (Val_EOL_F101_ServiceMaintain() == 2)
						{
							if (MenuCur < MENU_ITEM_SET_TPMS_LEARN)
							{
								Menu1_Page_Flag = 0;
							}
							else
							{
								Menu1_Page_Flag = 1;
							}
						}
						else
						{
							if (MenuCur < MENU_ITEM_SET_IC)
							{
								Menu1_Page_Flag = 0;
							}
							else
							{
								Menu1_Page_Flag = 1;
							}
						}
					}
					else
					{
						if (Val_EOL_F101_ServiceMaintain() == 2)
						{
							if (MenuCur < MENU_ITEM_SET_IC)
							{
								Menu1_Page_Flag = 0;
							}
							else
							{
								Menu1_Page_Flag = 1;
							}
						}
						else
						{
							if (MenuCur < MENU_ITEM_SET_FACTORYRESET)
							{
								Menu1_Page_Flag = 0;
							}
							else
							{
								Menu1_Page_Flag = 1;
							}
						}
					}
				}
				else if (GUIBackUp.Menu_Cur < MenuCur)
				{
					Menu1_Page_Dir = 0;

					if (Val_EOL_F101_ServiceMaintain() == 2)
					{
						if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
						{
							if (MenuCur > MENU_ITEM_SET_LANGUAGE)
							{
								Menu1_Page_Flag = 1;
							}
							else
							{
								Menu1_Page_Flag = 0;
							}
						}
						else
						{
							if (MenuCur > MENU_ITEM_SET_LANGUAGE)
							{
								Menu1_Page_Flag = 1;
							}
							else
							{
								Menu1_Page_Flag = 0;
							}
						}
					}
					else
					{
						if ((TPMS_Config.F110 == 1u) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
						{
							if (MenuCur > MENU_ITEM_SET_TPMS_LEARN)
							{
								Menu1_Page_Flag = 1;
							}
							else
							{
								Menu1_Page_Flag = 0;
							}
						}
						else
						{
							if (MenuCur > MENU_ITEM_SET_IC)
							{
								Menu1_Page_Flag = 1;
							}
							else
							{
								Menu1_Page_Flag = 0;
							}
						}
					}
				}
				Refresh = 1;
				GUI_Setting_Menu1_Clear_XuanKuang(GUIBackUp.Menu_Cur, GUIBackUp.Menu1_Dir);
			}
			else
			{
			}
		}
	}
	else if (GUIBackUp.Menu_Cur == MENU_ITEM_Navi_Set)
	{
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
			GUIBackUp.Menu1Ground_Done = 0;
		}
	}

	if (GUIBackUp.Menu1_Dir != Menu1_Page_Dir)
	{
		Dir_Refresh = 1;
		GUI_Setting_Menu1_Clear_XuanKuang(GUIBackUp.Menu_Cur, GUIBackUp.Menu1_Dir);
		GUIBackUp.Menu1_Dir = Menu1_Page_Dir;
	}

	if (GUIBackUp.Menu1_PageFlg != Menu1_Page_Flag)
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
		GUIBackUp.Menu1_PageFlg = Menu1_Page_Flag;
	}

	if ((Dir_Refresh) || (Refresh))
	{
		GUI_Setting_Menu1_Page_Ground();
		GUI_Setting_Menu1_Draw_XuanKuang(MenuCur, Menu1_Page_Dir);
	}
}

void GUI_Setting_Menu2_Time_Clear_XuanKuang(Menu_Item_en_t Item0)
{
	if ((Item0 == MENU_ITEM_SET_TIME_CLOCK) || (Item0 == MENU_ITEM_SET_OVERSPEED_OPEN) ||
		(Item0 == MENU_ITEM_SET_MAINT_OPEN) || (Item0 == MENU_ITEM_SET_CLEAR_TRIP))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_CLR);
	}
	else if ((Item0 == MENU_ITEM_SET_TIME_Synch) || (Item0 == MENU_ITEM_SET_OVERSPEED_CLOSE) ||
			 (Item0 == MENU_ITEM_SET_MAINT_CLOSE) || (Item0 == MENU_ITEM_SET_CLEAR_DRIVTIME) || (Item0 == MENU_ITEM_SET_FactoryReset_Confirm1))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_CLR);
	}
	else if (/*(Item0 == MENU_ITEM_SET_TIME_Synch) ||*/ (Item0 == MENU_ITEM_SET_OVERSPEED_CUSTOM) ||
			 (Item0 == MENU_ITEM_SET_MAINT_CHECK) || (Item0 == MENU_ITEM_SET_CLEAR_AVGSPD) || (Item0 == MENU_ITEM_SET_IC_ResCheck))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_CLR);
	}
	else if ((Item0 == MENU_ITEM_SET_TIME_RETURN) || (Item0 == MENU_ITEM_SET_OVERSPEED_RETURN) ||
			 (Item0 == MENU_ITEM_SET_MAINT_RETURN) || (Item0 == MENU_ITEM_SET_CLEAR_RETURN) ||
			 (Item0 == MENU_ITEM_SET_IC_RETUEN) || (Item0 == MENU_ITEM_SET_FactoryReset_Confirm1_Ret))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_CLR);
	}

	if (Item0 == MENU_ITEM_SET_CLEAR_TRIP)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_CLR);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_DRIVTIME)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_CLR);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_AVGSPD)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_CLR);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_AVGELC)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_CLR);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_RETURN)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_CLR);
	}
	else
	{
		;
	}
}

void GUI_Setting_Menu2_Time_Draw_XuanKuang(Menu_Item_en_t Item0)
{
	if ((Item0 == MENU_ITEM_SET_TIME_CLOCK) || (Item0 == MENU_ITEM_SET_OVERSPEED_OPEN) ||
		(Item0 == MENU_ITEM_SET_MAINT_OPEN))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_SET);
	}
	else if ((Item0 == MENU_ITEM_SET_TIME_Synch) || (Item0 == MENU_ITEM_SET_OVERSPEED_CLOSE) ||
			 (Item0 == MENU_ITEM_SET_MAINT_CLOSE) || (Item0 == MENU_ITEM_SET_FactoryReset_Confirm1))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_SET);
	}
	else if (/*(Item0 == MENU_ITEM_SET_TIME_Synch) || */ (Item0 == MENU_ITEM_SET_OVERSPEED_CUSTOM) ||
			 (Item0 == MENU_ITEM_SET_MAINT_CHECK) || (Item0 == MENU_ITEM_SET_IC_ResCheck))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_SET);
	}
	else if ((Item0 == MENU_ITEM_SET_TIME_RETURN) || (Item0 == MENU_ITEM_SET_OVERSPEED_RETURN) ||
			 (Item0 == MENU_ITEM_SET_MAINT_RETURN) ||
			 (Item0 == MENU_ITEM_SET_IC_RETUEN) || (Item0 == MENU_ITEM_SET_FactoryReset_Confirm1_Ret))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
	}

	if (Item0 == MENU_ITEM_SET_CLEAR_TRIP)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 68, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 94, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 68, 94, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 68, 94, TFT_LCD_TYPE_SET);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_DRIVTIME)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_SET);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_AVGSPD)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_SET);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_AVGELC)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 152, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 178, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 152, 178, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 152, 178, TFT_LCD_TYPE_SET);
	}
	else if (Item0 == MENU_ITEM_SET_CLEAR_RETURN)
	{
		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
	}
	else
	{
		;
	}
}

void GUI_Setting_Menu3_ClearTrip_Draw_XuanKuang(Menu_Item_en_t Item0)
{
	if ((Item0 == MENU_ITEM_SET_CLEAR_TRIP_YES) || (Item0 == MENU_ITEM_SET_CLEAR_DRIVTIME_YES) ||
		(Item0 == MENU_ITEM_SET_CLEAR_AVGSPD_YES) || (Item0 == MENU_ITEM_SET_LANGUAGE_China) || (Item0 == MENU_ITEM_SET_CLEAR_AVGELC_YES))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_SET);
	}
	else if ((Item0 == MENU_ITEM_SET_CLEAR_TRIP_NO) || (Item0 == MENU_ITEM_SET_CLEAR_DRIVTIME_NO) ||
			 (Item0 == MENU_ITEM_SET_CLEAR_AVGSPD_NO) || (Item0 == MENU_ITEM_SET_LANGUAGE_ENGLISH) || (Item0 == MENU_ITEM_SET_CLEAR_AVGELC_NO))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_SET);
	}
	else if (Item0 == MENU_ITEM_SET_LANGUAGE_RETURN)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
	}
}

void GUI_Setting_Menu3_ClearTrip_Clear_XuanKuang(Menu_Item_en_t Item0)
{
	if ((Item0 == MENU_ITEM_SET_CLEAR_TRIP_YES) || (Item0 == MENU_ITEM_SET_CLEAR_DRIVTIME_YES) ||
		(Item0 == MENU_ITEM_SET_CLEAR_AVGSPD_YES) || (Item0 == MENU_ITEM_SET_LANGUAGE_China) || (Item0 == MENU_ITEM_SET_CLEAR_AVGELC_YES))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 96, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 122, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 96, 122, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 96, 122, TFT_LCD_TYPE_CLR);
	}
	else if ((Item0 == MENU_ITEM_SET_CLEAR_TRIP_NO) || (Item0 == MENU_ITEM_SET_CLEAR_DRIVTIME_NO) ||
			 (Item0 == MENU_ITEM_SET_CLEAR_AVGSPD_NO) || (Item0 == MENU_ITEM_SET_LANGUAGE_ENGLISH) || (Item0 == MENU_ITEM_SET_CLEAR_AVGELC_NO))
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 124, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 124, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 124, 150, TFT_LCD_TYPE_CLR);
	}
	else if (Item0 == MENU_ITEM_SET_LANGUAGE_RETURN)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_CLR);
	}
}

void GUI_Setting_Menu2_Time_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_TIME_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_TIME_CLOCK))
	{
		if ((MenuCur <= MENU_ITEM_SET_TIME_RETURN) && (MenuCur >= MENU_ITEM_SET_TIME_CLOCK))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu2_Time_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(88, 102, "Time Mode", Num_14_EN);
			GUI_Display_Version_Code_Service(71, 130, "Synchronization", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(82, 97, Set_Menu2_Clock_Title_Word0_1, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(120, 97, Set_Menu2_Clock2_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(83, 125, Set_Menu2_Clock3_Word0_1, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(122, 125, Set_Menu2_Clock3_Word0_2, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 189, Set_Return, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu2_Time_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu3_TimeClock_Draw_XuanKuang(Menu_Item_en_t Item0)
{
	if (Item0 == MENU_ITEM_SET_TIME_CLOCK_HOUR)
	{
		TFT_LCD_Draw_Horizontal_Line(71, 113, 124, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(71, 113, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(71, 124, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(113, 124, 150, TFT_LCD_TYPE_SET);
	}
	else if (Item0 == MENU_ITEM_SET_TIME_CLOCK_MIN)
	{
		TFT_LCD_Draw_Horizontal_Line(127, 169, 124, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(127, 169, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(127, 124, 150, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(169, 124, 150, TFT_LCD_TYPE_SET);
	}
	/*else if (Item0 == MENU_ITEM_SET_TIME_CLOCK_APm)
	{
		TFT_LCD_Draw_Horizontal_Line(171, 205, 128, TFT_LCD_TYPE_SET);		 // ��6����
		TFT_LCD_Draw_Horizontal_Line(171, 205, 150, TFT_LCD_TYPE_SET); // ��6����
		TFT_LCD_Draw_Vertical_Line(171, 128, 150, TFT_LCD_TYPE_SET);		 // ��6����
		TFT_LCD_Draw_Vertical_Line(205, 128, 150, TFT_LCD_TYPE_SET);	 // ��6����
	}*/
	else if (Item0 == MENU_ITEM_SET_TIME_SET_RETURN)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
	}
}

void GUI_Setting_Menu3_TimeClock_Clear_XuanKuang(Menu_Item_en_t Item0)
{
	if (Item0 == MENU_ITEM_SET_TIME_CLOCK_HOUR)
	{
		TFT_LCD_Draw_Horizontal_Line(71, 113, 124, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(71, 113, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(71, 124, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(113, 124, 150, TFT_LCD_TYPE_CLR);
	}
	else if (Item0 == MENU_ITEM_SET_TIME_CLOCK_MIN)
	{
		TFT_LCD_Draw_Horizontal_Line(127, 169, 124, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(127, 169, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(127, 124, 150, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(169, 124, 150, TFT_LCD_TYPE_CLR);
	}
	/*else if (Item0 == MENU_ITEM_SET_TIME_CLOCK_APm)
	{
		TFT_LCD_Draw_Horizontal_Line(171, 205, 128, TFT_LCD_TYPE_CLR);		 // ��6����
		TFT_LCD_Draw_Horizontal_Line(171, 205, 150, TFT_LCD_TYPE_CLR); // ��6����
		TFT_LCD_Draw_Vertical_Line(171, 128, 150, TFT_LCD_TYPE_CLR);		 // ��6����
		TFT_LCD_Draw_Vertical_Line(205, 128, 150, TFT_LCD_TYPE_CLR);	 // ��6����
	}*/
	else if (Item0 == MENU_ITEM_SET_TIME_SET_RETURN)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_CLR);
	}
}

void GUI_Setting_Menu3_TimeClock_Display(void)
{
	INT8U Refresh;
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}

	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_TIME_SET_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_TIME_CLOCK_HOUR))
	{
		if ((MenuCur <= MENU_ITEM_SET_TIME_SET_RETURN) && (MenuCur >= MENU_ITEM_SET_TIME_CLOCK_HOUR))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_TimeClock_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}

	if ((GUIBackUp.Menu3_Hour != MenuData.Hour) || (GUIBackUp.Menu3_Min != MenuData.Minute) /*|| (GUIBackUp.Menu3_Apm != MenuData.APm)*/)
	{
		Refresh = 1;
		GUIBackUp.Menu3_Hour = MenuData.Hour;
		GUIBackUp.Menu3_Min = MenuData.Minute;
		// GUIBackUp.Menu3_Hour = MenuData.APm;
	}

	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(88, 104, "Time Mode", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 82, 97, Set_Menu2_Clock_Title_Word0_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 97, Set_Menu2_Clock_Title_Word0_2);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 189, Set_Return);
		}

		GUI_Setting_Menu3_TimeClock_Draw_XuanKuang(MenuCur);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 114, 126, Number_24_White_Point2);
		GUI_General_Digit_Display(MenuData.Hour, Num_24, 2, 0, SETtimeHourDigits15PosX, 125);
		GUI_General_Digit_Display(MenuData.Minute, Num_24, 2, 0, SETtimeMinDigits15PosX, 125);
	}
}

void GUI_Setting_Menu2_OveSpd_Display(void)
{

	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_OVERSPEED_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_OVERSPEED_OPEN))
	{
		if ((MenuCur <= MENU_ITEM_SET_OVERSPEED_RETURN) && (MenuCur >= MENU_ITEM_SET_OVERSPEED_OPEN))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu2_Time_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(112, 102, "On", Num_14_EN);
			GUI_Display_Version_Code_Service(110, 130, "Off", Num_14_EN);
			GUI_Display_Version_Code_Service(80, 158, "User-defined", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(101, 97, Set_Menu_Open_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 125, Set_Menu_Close_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(94, 153, Set_Menu2_Customize_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 189, Set_Return, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu2_Time_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu3_OveSpd_Set_Clear_XuanKuang(Menu_Item_en_t Item0)
{
	if (Item0 == MENU_ITEM_SET_OVERSPEED_CUSTOM_ADJUST)
	{
		TFT_LCD_Draw_Horizontal_Line(89, 150, 124, TFT_LCD_TYPE_CLR); // ����
		TFT_LCD_Draw_Horizontal_Line(89, 150, 150, TFT_LCD_TYPE_CLR); // ����
		TFT_LCD_Draw_Vertical_Line(89, 124, 150, TFT_LCD_TYPE_CLR);	  // ����
		TFT_LCD_Draw_Vertical_Line(150, 124, 150, TFT_LCD_TYPE_CLR);  // ����
	}
	else if (Item0 == MENU_ITEM_SET_OVERSPEED_CUSTOM_RETURN)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_CLR);
	}
}
void GUI_Setting_Menu3_OveSpd_Set_Draw_XuanKuang(Menu_Item_en_t Item0)
{
	if (Item0 == MENU_ITEM_SET_OVERSPEED_CUSTOM_ADJUST)
	{
		TFT_LCD_Draw_Horizontal_Line(89, 150, 124, TFT_LCD_TYPE_SET); // ����
		TFT_LCD_Draw_Horizontal_Line(89, 150, 150, TFT_LCD_TYPE_SET); // ����
		TFT_LCD_Draw_Vertical_Line(89, 124, 150, TFT_LCD_TYPE_SET);	  // ����
		TFT_LCD_Draw_Vertical_Line(150, 124, 150, TFT_LCD_TYPE_SET);  // ����
	}
	else if (Item0 == MENU_ITEM_SET_OVERSPEED_CUSTOM_RETURN)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
	}
}

void GUI_Setting_Menu3_OveSpd_Set_Display(void)
{
	INT8U Refresh;
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}

	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_OVERSPEED_CUSTOM_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_OVERSPEED_CUSTOM_ADJUST))
	{
		if ((MenuCur <= MENU_ITEM_SET_OVERSPEED_CUSTOM_RETURN) && (MenuCur >= MENU_ITEM_SET_OVERSPEED_CUSTOM_ADJUST))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_OveSpd_Set_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}

	if (GUIBackUp.Menu3_OverSpd != MenuData.OverSpeed)
	{
		Refresh = 1;
		GUIBackUp.Menu3_OverSpd = MenuData.OverSpeed;
	}

	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(55, 104, "Overspeed Threshold", Num_14_EN); //
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 80, 97, Set_Menu3_Speeding_Title_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 189, Set_Return);
		}

		TFT_LCD_Draw_Bmp(Compress, Inverse, 157, 132, Cruise_unit);
		GUI_Setting_Menu3_OveSpd_Set_Draw_XuanKuang(MenuCur);
		GUI_General_Digit_Display(MenuData.OverSpeed, Num_24, 3, 0, SETOveSpdDigits15PosX, 125);
	}
}

void GUI_Setting_Menu2_MAINT_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_MAINT_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_MAINT_OPEN))
	{
		if ((MenuCur <= MENU_ITEM_SET_MAINT_RETURN) && (MenuCur >= MENU_ITEM_SET_MAINT_OPEN))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu2_Time_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(112, 102, "On", Num_14_EN);
			GUI_Display_Version_Code_Service(110, 130, "Off", Num_14_EN);
			GUI_Display_Version_Code_Service(82, 158, "Maintenance", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(101, 97, Set_Menu_Open_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 125, Set_Menu_Close_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(60, 153, Set_Menu2_Maintain_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 189, Set_Return, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu2_Time_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu3_MAINT_Check_Display(void)
{
	uint8_t Refresh = 0;
	uint32_t Maint = 0;

	Maint = DataServiceInterval;

	if (Maint > 999999)
	{
		Maint = 999999;
	}
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if (GUIBackUp.Menu_Cur != MenuCur)
	{
		Refresh = 1;
		Clear_Middle();
	}

	if (GUIBackUp.Menu3_ManitenceDis != Maint)
	{
		Refresh = 1;
		GUIBackUp.Menu3_ManitenceDis = Maint;
	}

	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(83, 131, "To maintain", Num_14_EN);
			GUI_Display_Version_Code_Service(136, 103, "km", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
			GUI_General_Digit_Display((Maint / 10), Num_19, 5, 4, SETManitDisDigits12PosX_EN, 101);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 51, 98, Set_Menu3_Maintain1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 51, 122, Set_Menu3_Maintain2);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 152, 122, Alarm_km);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 189, Set_Return);
			GUI_General_Digit_Display((Maint / 10), Num_19, 5, 4, SETManitDisDigits12PosX, 129);
		}
		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
	}
}

void GUI_Setting_Menu2_Clear_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_CLEAR_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_CLEAR_TRIP))
	{
		if ((MenuCur <= MENU_ITEM_SET_CLEAR_RETURN) && (MenuCur >= MENU_ITEM_SET_CLEAR_TRIP))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu2_Time_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(89, 74, "Trip Reset", Num_14_EN);
			GUI_Display_Version_Code_Service(79, 102, "Journey Time", Num_14_EN);
			GUI_Display_Version_Code_Service(55, 130, "Average Speed Reset", Num_14_EN);
			GUI_Display_Version_Code_Service(53, 158, "Average Power Reset", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(82, 69, Set_Menu2_Trip_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(82, 97, ECU_Title_Word0_Time, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 82, 125, ECU_Title_Word0_APC_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 125, ECU_Title_Word0_AVS);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 82, 153, ECU_Title_Word0_APC_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 121, 153, ECU_Title_Word0_APC_2);
			TFT_LCD_Draw_Transparent_Bmp(101, 189, Set_Return, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu2_Time_Draw_XuanKuang(MenuCur);
	}
}
void GUI_Setting_Menu3_Clear_Trip_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_CLEAR_TRIP_NO) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_CLEAR_TRIP_YES))
	{
		if ((MenuCur <= MENU_ITEM_SET_CLEAR_TRIP_NO) && (MenuCur >= MENU_ITEM_SET_CLEAR_TRIP_YES))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_ClearTrip_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(95, 102, "Confirm", Num_14_EN);
			GUI_Display_Version_Code_Service(100, 130, "Cancel", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(101, 97, Set_Menu3_OK_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 125, Set_Menu3_NO_Title_Word0, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu3_ClearTrip_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu3_Clear_DriveTime_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_CLEAR_DRIVTIME_NO) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_CLEAR_DRIVTIME_YES))
	{
		if ((MenuCur <= MENU_ITEM_SET_CLEAR_DRIVTIME_NO) && (MenuCur >= MENU_ITEM_SET_CLEAR_DRIVTIME_YES))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_ClearTrip_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(95, 102, "Confirm", Num_14_EN);
			GUI_Display_Version_Code_Service(100, 130, "Cancel", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(101, 97, Set_Menu3_OK_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 125, Set_Menu3_NO_Title_Word0, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu3_ClearTrip_Draw_XuanKuang(MenuCur);
	}
}
void GUI_Setting_Menu3_Clear_AvgSpd_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_CLEAR_AVGSPD_NO) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_CLEAR_AVGSPD_YES))
	{
		if ((MenuCur <= MENU_ITEM_SET_CLEAR_AVGSPD_NO) && (MenuCur >= MENU_ITEM_SET_CLEAR_AVGSPD_YES))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_ClearTrip_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(95, 102, "Confirm", Num_14_EN);
			GUI_Display_Version_Code_Service(100, 130, "Cancel", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(101, 97, Set_Menu3_OK_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 125, Set_Menu3_NO_Title_Word0, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu3_ClearTrip_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu3_Clear_AvgEcl_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_CLEAR_AVGELC_NO) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_CLEAR_AVGELC_YES))
	{
		if ((MenuCur <= MENU_ITEM_SET_CLEAR_AVGELC_NO) && (MenuCur >= MENU_ITEM_SET_CLEAR_AVGELC_YES))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_ClearTrip_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else if ((GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU))
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.Menu1Ground_Done = 0;
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(95, 102, "Confirm", Num_14_EN);
			GUI_Display_Version_Code_Service(100, 130, "Cancel", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Transparent_Bmp(101, 97, Set_Menu3_OK_Title_Word0, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Transparent_Bmp(101, 125, Set_Menu3_NO_Title_Word0, TFT_LCD_TYPE_SET);
		}

		GUI_Setting_Menu3_ClearTrip_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu2_Language_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}

	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}

	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_LANGUAGE_RETURN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_LANGUAGE_China))
	{
		if ((MenuCur <= MENU_ITEM_SET_LANGUAGE_RETURN) && (MenuCur >= MENU_ITEM_SET_LANGUAGE_China))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_ClearTrip_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (MenuData.Language)
	{
		GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
	}
	else
	{
		TFT_LCD_Draw_Transparent_Bmp(101, 189, Set_Return, TFT_LCD_TYPE_SET);
	}

	if (Refresh)
	{
		TFT_LCD_Draw_Transparent_Bmp(89, 97, Set_Menu2_Chinese_Title_Word0, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Transparent_Bmp(89, 125, Set_Menu2_English_Title_Word0, TFT_LCD_TYPE_SET);
		GUI_Setting_Menu3_ClearTrip_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu2_TPMSLearn_Flash_XuanKuang(Menu_Item_en_t Item0, uint8_t flash)
{
	if ((TPMS_Config.F110 == 1) && (TPMS_Config.F101 == 1))
	{
		if (Item0 == MENU_ITEM_SET_TPMS_LEARN_LF)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_TyreClear);
			}
		}
		else if (Item0 == MENU_ITEM_SET_TPMS_LEARN_RF)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_TyreClear);
			}
		}
		else if (Item0 == MENU_ITEM_SET_TPMS_LEARN_LR)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 129, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 129, TPMS_TyreClear);
			}
		}
		else if (Item0 == MENU_ITEM_SET_TPMS_LEARN_MLR)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 129, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 129, TPMS_TyreClear);
			}
		}
		else if (Item0 == MENU_ITEM_SET_TPMS_LEARN_MRR)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 129, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 129, TPMS_TyreClear);
			}
		}
		else if (Item0 == MENU_ITEM_SET_TPMS_LEARN_RR)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 150, 129, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 150, 129, TPMS_TyreClear);
			}
		}
		else
		{
		}
	}
	else if ((TPMS_Config.F110 == 1) && (TPMS_Config.F101 == 2))
	{
		if (Item0 == MENU_ITEM_SET_TPMS_LEARN_LF)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_TyreClear);
			}
		}
		else if (Item0 == MENU_ITEM_SET_TPMS_LEARN_RF)
		{
			if (flash)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_Tyre);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_TyreClear);
			}
		}
	}
	else
	{
	}
}

void GUI_Setting_Menu2_TPMSLearn_Display(void)
{
	// uint8_t   Refresh = 0 ;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		// Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
		GUIBackUp.Menu3_Tyre_Done = 0;
	}

	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_TPMS_LEARN_RR) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_TPMS_LEARN_LF))
	{
		if ((MenuCur <= MENU_ITEM_SET_TPMS_LEARN_RR) && (MenuCur >= MENU_ITEM_SET_TPMS_LEARN_LF))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				//   Refresh  = 1;
				GUI_Setting_Menu2_TPMSLearn_Flash_XuanKuang(GUIBackUp.Menu_Cur, 1);
			}
			else
			{
			}
		}
	}
	/*else if( (GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU) )
	{
			 Refresh = 1 ;
			 Clear_Middle();
			 GUIBackUp.Menu1Ground_Done = 0;
	}  */
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			//      Refresh = 1 ;
			Clear_Middle();
			GUIBackUp.Menu3_Tyre_Done = 0;
		}
	}
	if (GUIBackUp.Menu3_Tyre_Done == 0)
	{
		if ((TPMS_Config.F110 == 1) && (TPMS_Config.F101 == 1))
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 75, TPMS_Car);

			TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 129, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 129, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 142, 129, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 150, 129, TPMS_Tyre);

			// TFT_LCD_Draw_Transparent_Bmp(100, 75, TPMS_Car, TFT_LCD_TYPE_SET);
			GUIBackUp.Menu3_Tyre_Done = 1;
		}
		else if ((TPMS_Config.F110 == 1) && (TPMS_Config.F101 == 2))
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 77, TPMS_Tyre);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 75, TPMS_Car);
			GUIBackUp.Menu3_Tyre_Done = 1;
		}
		else
		{
		}
	}
	GUI_Setting_Menu2_TPMSLearn_Flash_XuanKuang(MenuCur, FLASH_SYNC_1Hz);
}

void GUI_Setting_Menu3_TPMSLearning_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Refresh = 1;
		Clear_Middle();
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}

	if (GUIBackUp.Menu_Cur != MenuCur)
	{
		Refresh = 1;
		Clear_Middle();
	}

	if (Refresh == 1)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(93, 132, "Learning", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 73, 125, Set_Menu3_TPMS_Title1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 149, 125, Set_Menu3_TPMS_Title2_Word0);
		}
	}
}

void GUI_Setting_Menu4_TPMSLearn_Display(void)
{
	uint8_t Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if (GUIBackUp.Menu_Cur != MenuCur)
	{
		Refresh = 1;
		Clear_Middle();
	}

	if (Refresh)
	{
		if (MenuData.Language)
		{
			if (MenuCur == MENU_ITEM_SET_TPMS_Learn_TimeOut)
			{
				GUI_Display_Version_Code_Service(69, 132, "Learning Failure", Num_14_EN);
			}
			else if (MenuCur == MENU_ITEM_SET_TPMS_Learn_IDConflict)
			{
				GUI_Display_Version_Code_Service(69, 132, "Learning Failure", Num_14_EN);
			}
			else if (MenuCur == MENU_ITEM_SET_TPMS_Learn_HaveVechSpeed)
			{
				GUI_Display_Version_Code_Service(69, 132, "Learning Failure", Num_14_EN);
			}
			else if (MenuCur == MENU_ITEM_SET_TPMS_Learn_Succeed)
			{
				GUI_Display_Version_Code_Service(66, 132, "Learning Success", Num_14_EN);
			}
			else
			{
			}
		}
		else
		{
			if (MenuCur == MENU_ITEM_SET_TPMS_Learn_TimeOut)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 63, 111, Set_Menu3_TPMS_Title1_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 139, 111, Set_Menu3_TPMS_Title7_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 139, Set_Menu3_TPMS_Title4_Word0);
				// TFT_LCD_Draw_Bmp(Compress, Inverse, 101,155,Menu4_TMS_OverTime);
			}
			else if (MenuCur == MENU_ITEM_SET_TPMS_Learn_IDConflict)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 63, 111, Set_Menu3_TPMS_Title1_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 139, 111, Set_Menu3_TPMS_Title7_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 92, 139, Set_Menu3_TPMS_Title5_Word0);
				// TFT_LCD_Draw_Bmp(Compress, Inverse, 92,155,Menu4_TMS_ID);
			}
			else if (MenuCur == MENU_ITEM_SET_TPMS_Learn_HaveVechSpeed)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 63, 111, Set_Menu3_TPMS_Title1_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 139, 111, Set_Menu3_TPMS_Title7_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 75, 139, Set_Menu3_TPMS_Title6_Word0);
				// TFT_LCD_Draw_Bmp(Compress, Inverse, 78,155,Menu4_TMS_OveSpd);
			}
			else if (MenuCur == MENU_ITEM_SET_TPMS_Learn_Succeed)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 63, 125, Set_Menu3_TPMS_Title1_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 138, 125, Set_Menu3_TPMS_Title3_Word0);
			}
			else
			{
			}
		}
	}
}

void GUI_Setting_Menu2_IC_Check_Display(void)
{
	INT8U Refresh;
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur == MENU_ITEM_SET_IC_RETUEN) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_IC_ResCheck))
	{
		if ((MenuCur == MENU_ITEM_SET_IC_RETUEN) && (MenuCur >= MENU_ITEM_SET_IC_ResCheck))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu2_Time_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	/*   else if( (GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU) )
	{
	Refresh = 1 ;
	Clear_Middle();
	GUIBackUp.Menu1Ground_Done = 0;
	}  */
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}

	/*   if(GUIBackUp.Menu3_OverSpd != MenuData.OverSpeed )
	{
	Refresh = 1 ;
	GUIBackUp.Menu3_OverSpd != MenuData.OverSpeed;
	}
	*/
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(50, 104, "Software Version :", Num_14_EN);
			GUI_Display_Version_Code_Service(51, 132, "Hardware Version :", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);

			GUI_General_Digit_Display((GUIBackUp.Menu3_SW[0]), Num_16, 1, 0, SETSW_1_Digits12PosX_EN, 102); // �����汾��
			GUI_General_Digit_Display((GUIBackUp.Menu3_SW[1]), Num_16, 1, 0, SETSW_2_Digits12PosX_EN, 102);
			GUI_General_Digit_Display((GUIBackUp.Menu3_SW[2]), Num_16, 1, 0, SETSW_3_Digits12PosX_EN, 102);
			GUI_General_Digit_Display((GUIBackUp.Menu3_HW[0]), Num_16, 1, 0, SETHW_1_Digits12PosX_EN, 130); // Ӳ���汾��
			GUI_General_Digit_Display((GUIBackUp.Menu3_HW[1]), Num_16, 1, 0, SETHW_2_Digits12PosX_EN, 130); // Ӳ���汾��
			GUI_General_Digit_Display((GUIBackUp.Menu3_HW[2]), Num_16, 1, 0, SETHW_3_Digits12PosX_EN, 130); // Ӳ���汾��
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 52, 102, Set_Menu2_IC_Title1_Word0_1);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 102, Set_Menu2_IC_Title1_Word0_2);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 52, 130, Set_Menu2_IC_Title2_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 130, Set_Menu2_IC_Title1_Word0_2);
			TFT_LCD_Draw_Transparent_Bmp(101, 189, Set_Return, TFT_LCD_TYPE_SET);

			GUI_General_Digit_Display((GUIBackUp.Menu3_SW[0]), Num_16, 1, 0, SETHW_1_Digits12PosX, 102); // �����汾��
			GUI_General_Digit_Display((GUIBackUp.Menu3_SW[1]), Num_16, 1, 0, SETHW_2_Digits12PosX, 102);
			GUI_General_Digit_Display((GUIBackUp.Menu3_SW[2]), Num_16, 1, 0, SETHW_3_Digits12PosX, 102);
			GUI_General_Digit_Display((GUIBackUp.Menu3_HW[0]), Num_16, 1, 0, SETHW_1_Digits12PosX, 130); // Ӳ���汾��
			GUI_General_Digit_Display((GUIBackUp.Menu3_HW[1]), Num_16, 1, 0, SETHW_2_Digits12PosX, 130); // Ӳ���汾��
			GUI_General_Digit_Display((GUIBackUp.Menu3_HW[2]), Num_16, 1, 0, SETHW_3_Digits12PosX, 130); // Ӳ���汾��
		}
		GUI_Setting_Menu2_Time_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu3_IC_Res_Display(void)
{
#if 1
	INT8U Refresh;
	INT16U Res;
	Res = 0;
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}

	if (GUIBackUp.Menu_Cur != MenuCur)
	{
		Refresh = 1;
		Clear_Middle();
	}

	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(35, 126, "Resistance", Num_14_EN);
			GUI_Display_Version_Code_Service(87, 212, "Return", Num_14_EN);
			if (FuelData.Res_Valid)
			{
				GUI_General_Digit_Display((Res / 10), Num_19, 3, 2, SETRES_3_Digits12PosX_EN, 129);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 173, 129, Number_16_White_Line);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 129, Number_16_White_Line);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 143, 129, Number_16_White_Line);
			}
			TFT_LCD_Draw_Horizontal_Line(cursor_L, cursor_R, 210, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Horizontal_Line(cursor_L, cursor_R, 236, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Vertical_Line(cursor_L, 210, 236, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Vertical_Line(cursor_R, 210, 236, TFT_LCD_TYPE_SET);
		}
		else
		{

			TFT_LCD_Draw_Transparent_Bmp(101, 189, Set_Return, TFT_LCD_TYPE_SET);

			TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 129, Number_16_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 143, 129, Number_16_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 132, 129, Number_16_White_Line);

			TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
		}
	}
#endif
}

void GUI_Setting_Menu2_FactoryReset_Display(void)
{
	INT8U Refresh;
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_FactoryReset_Confirm1_Ret) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_FactoryReset_Confirm1))
	{
		if ((MenuCur <= MENU_ITEM_SET_FactoryReset_Confirm1_Ret) && (MenuCur >= MENU_ITEM_SET_FactoryReset_Confirm1))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu2_Time_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(103, 130, "Reset", Num_14_EN);
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 63, 125, Set_Menu3_Recover_Title1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 189, Set_Return);
		}

		GUI_Setting_Menu2_Time_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Setting_Menu3_FactoryReset_Clear_XuanKuang(Menu_Item_en_t Item0)
{
	if (Item0 == MENU_ITEM_SET_FactoryReset_Confirm2)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 110, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 164, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 110, 164, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 110, 164, TFT_LCD_TYPE_CLR);
	}
	else if (Item0 == MENU_ITEM_SET_FactoryReset_Confirm2_Ret)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_CLR);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_CLR);
	}
}

void GUI_Setting_Menu3_FactoryReset_Draw_XuanKuang(Menu_Item_en_t Item0)
{
	if (Item0 == MENU_ITEM_SET_FactoryReset_Confirm2)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 110, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 164, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 110, 164, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 110, 164, TFT_LCD_TYPE_SET);
	}
	else if (Item0 == MENU_ITEM_SET_FactoryReset_Confirm2_Ret)
	{

		TFT_LCD_Draw_Horizontal_Line(50, 190, 188, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Horizontal_Line(50, 190, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(50, 188, 214, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Vertical_Line(190, 188, 214, TFT_LCD_TYPE_SET);
	}
}


void GUI_Setting_Menu3_FactoryReset_Display(void)
{

	INT8U Refresh;
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Clear_Middle();
		Refresh = 1;
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if ((GUIBackUp.Menu_Cur <= MENU_ITEM_SET_FactoryReset_Confirm2_Ret) && (GUIBackUp.Menu_Cur >= MENU_ITEM_SET_FactoryReset_Confirm2))
	{
		if ((MenuCur <= MENU_ITEM_SET_FactoryReset_Confirm2_Ret) && (MenuCur >= MENU_ITEM_SET_FactoryReset_Confirm2))
		{
			if (GUIBackUp.Menu_Cur != MenuCur)
			{
				Refresh = 1;
				GUI_Setting_Menu3_FactoryReset_Clear_XuanKuang(GUIBackUp.Menu_Cur);
			}
			else
			{
			}
		}
	}
	/*   else if( (GUIBackUp.Menu_Cur <= MENU_ITEM_Navi_Demand) && (GUIBackUp.Menu_Cur >= MENU_ITEM_Navi_ECU) )
	   {
				Refresh = 1 ;
				Clear_Middle();
				GUIBackUp.Menu1Ground_Done = 0;
	   }  */
	else
	{
		if (GUIBackUp.Menu_Cur != MenuCur)
		{
			Refresh = 1;
			Clear_Middle();
		}
	}
	if (Refresh)
	{
		if (MenuData.Language) // zh321
		{
			GUI_Display_Version_Code_Service(96, 130, "Reset?", Num_14_EN); //
			GUI_Display_Version_Code_Service(98, 194, "Return", Num_14_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 57 + 25, 113, Set_Menu3_Recover_Title2_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 57, 137, Set_Menu3_Recover_Title3_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 189, Set_Return);
		}

		GUI_Setting_Menu3_FactoryReset_Draw_XuanKuang(MenuCur);
	}
}

void GUI_Display_BackGround(void)
{
	if (SYS_OPR_STAT_IGN_ON) // IGON
	{
		if (GUIBackUp.BackGround_Done == 0)
		{
			GUIBackUp.BackGround_Done = 1;

			// TFT_LCD_Draw_Transparent_Bmp(12, 51, Bottom_Line_01, TFT_LCD_TYPE_SET);
			// TFT_LCD_Draw_Transparent_Bmp(172, 51, Bottom_Line_05, TFT_LCD_TYPE_SET);
			// TFT_LCD_Draw_Transparent_Bmp(84, 27, Bottom_Line_03, TFT_LCD_TYPE_SET);
			// TFT_LCD_Draw_Transparent_Bmp(68, 33, Bottom_Line_02, TFT_LCD_TYPE_SET);
			// TFT_LCD_Draw_Transparent_Bmp(156, 33, Bottom_Line_04, TFT_LCD_TYPE_SET);

			TFT_LCD_Draw_Bmp(1, 0, 12, 51, Bottom_Line_01);
			TFT_LCD_Draw_Bmp(1, 0, 172, 51, Bottom_Line_05);
			TFT_LCD_Draw_Bmp(1, 0, 84, 27, Bottom_Line_03);
			TFT_LCD_Draw_Bmp(1, 0, 68, 33, Bottom_Line_02);
			TFT_LCD_Draw_Bmp(1, 0, 156, 33, Bottom_Line_04);

			TFT_LCD_Draw_Box(12, 250, 228, 253, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Box(68, 253, 71, 309, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_SET);
			TFT_LCD_Draw_Box(12, 307, 228, 310, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_SET);

			TFT_LCD_Draw_Bmp(0, 0, 85, 264, TRIP);
			TFT_LCD_Draw_Bmp(0, 0, 202, 264, KM);

			TFT_LCD_Draw_Bmp(0, 0, 85, 287, ODO);
			TFT_LCD_Draw_Bmp(0, 0, 202, 288, KM);

			TFT_LCD_Draw_Bmp(0, 0, 38, 35, Number_19_White_Point2);

			GUI_BJ_Clock_Display(FLASH_SYNC_1Hz, DspTimeHour, DspTimeMin, 1);
			GUI_BJ_Gear_Display(GearMode, EnergyRecovery, EnergyRecovery, 1);
			GUI_BJ_ODO_Display(NVMODO.Sig.Value, 1);

			GUI_BJ_TRIP_Display(DispTrip, 1);
			TFT_LCD_Draw_Bmp(0, 0, 178, 272, Number_22_White_Point);

			if (BrakeType_Config.F101 == 2)
			{
				TFT_LCD_Draw_Bmp(0, 0, 12, 218, Atmosphere_icon1);
				TFT_LCD_Draw_Bmp(0, 0, 197, 218, Atmosphere_icon2);
				TFT_LCD_Draw_Bmp(0, 0, 25, 201, Atmosphere_NB_0);
				TFT_LCD_Draw_Bmp(0, 0, 206, 201, Atmosphere_NB_0);
				TFT_LCD_Draw_Bmp(0, 0, 26, 56, Atmosphere_NB_10);
				TFT_LCD_Draw_Bmp(0, 0, 200, 56, Atmosphere_NB_10);
				TFT_LCD_Draw_Bmp(0, 0, 14, 57, Atmosphere_Line_1);
				TFT_LCD_Draw_Bmp(0, 0, 216, 57, Atmosphere_Line_2);

				if (PageInfo.u16SelfCheckTimeCnt >= 2)
				{

					Gui_AirPress1(AirPressFront_Dis.u8_Valid, AirPressFront_Dis.u8_CurSeg, 1);
					Gui_AirPress2(AirPressRear_Dis.u8_Valid, AirPressRear_Dis.u8_CurSeg, 1);
				}
			}

			//????
			TFT_LCD_Draw_Bmp(0, 0, 67, 221, Electricity_Line);

			if (AC_Config.F110 == 1)
			{
				TFT_LCD_Draw_Bmp(0, 0, 206, 35, Temperature_C);
				// if (PageInfo.u16SelfCheckTimeCnt >= 2)
				{

					Gui_OutTmep(AC_Temperature.Valid, AC_Temperature.Value, AC_Temperature.Warn, 1);
				}
			}
			Gui_Soc(g_stSoc.u16Val, 1);

			Gui_CruiseSpeed(DataCruise.u8Valid, DataCruise.u16Value, 1);
			Gui_DriveMode(g_stEco.Valid, g_stEco.Value, 1);
		}
		else
		{
			GUI_BJ_Clock_Display(FLASH_SYNC_1Hz, DspTimeHour, DspTimeMin, 0);
			GUI_BJ_Gear_Display(GearMode, EnergyRecovery, EnergyRecovery, 0);
			GUI_BJ_ODO_Display(NVMODO.Sig.Value, 0);
			GUI_BJ_TRIP_Display(DispTrip, 0);
			if (BrakeType_Config.F101 == 2)
			{
				if (PageInfo.u16SelfCheckTimeCnt >= 2)
				{
					Gui_AirPress1(AirPressFront_Dis.u8_Valid, AirPressFront_Dis.u8_CurSeg, 0);
					Gui_AirPress2(AirPressRear_Dis.u8_Valid, AirPressRear_Dis.u8_CurSeg, 0);
				}
			}

			if (AC_Config.F110 == 1)
			{
				// if (PageInfo.u16SelfCheckTimeCnt >= 2)
				{

					Gui_OutTmep(AC_Temperature.Valid, AC_Temperature.Value, AC_Temperature.Warn, 0);
				}
			}
			Gui_Soc(g_stSoc.u16Val, 0);

			Gui_CruiseSpeed(DataCruise.u8Valid, DataCruise.u16Value, 0);
			Gui_DriveMode(g_stEco.Valid, g_stEco.Value, 0);
		}
	}
	else
	{
	}
}

void Gui_CruiseSpeed(INT8U Valid, INT16U CruiseSpeed, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U CruiseSpeedRefresh = 0;

	if (GUIBackUp.CuriseValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.CuriseValid = Valid;
	}

	if (GUIBackUp.CuriseSpeed != CruiseSpeed)
	{
		CruiseSpeedRefresh = 1;
		GUIBackUp.CuriseSpeed = CruiseSpeed;
	}

	if (Refresh)
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 14, 8, Cruise_icon);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 64, 14, Cruise_unit);
		if (Valid)
		{

			GUI_General_Digit_Display(CruiseSpeed, Num_16, 3, 2, CuriseSpeedDigits16PosX, 14);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 54, 14, Number_16_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 45, 14, Number_16_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 36, 14, Number_16_White_Line);
		}
	}

	if ((ValidRefresh) || (CruiseSpeedRefresh))
	{
		if (Valid)
		{
			GUI_General_Digit_Display(CruiseSpeed, Num_16, 3, 2, CuriseSpeedDigits16PosX, 14);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 54, 14, Number_16_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 45, 14, Number_16_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 36, 14, Number_16_White_Line);
		}
	}
}

void Gui_DriveMode(INT8U Valid, INT8U Eco, INT8U Refresh)
{
	INT8U ValidRefresh = 0;
	INT8U EcoRefresh = 0;
	if (GUIBackUp.Eco_Valid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.Eco_Valid = Valid;
	}

	if (GUIBackUp.Eco != Eco)
	{
		EcoRefresh = 1;
		GUIBackUp.Eco = Eco;
	}

	if ((Refresh) || (EcoRefresh) || (ValidRefresh))
	{
		if (Valid)
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 193, 14, Mode_ECO);
		}
		else
		{
			Clear_Box(193, 14, 193 + 30, 14 + 16);
		}
	}
}

void Gui_AirPress1(INT8U Valid, INT8U AirPress1, INT8U Refresh)
{
	// uint8_t ValidRefresh;
	uint8_t AirPress1Refresh = 0;

	if (GUIBackUp.AirPress1 != AirPress1)
	{
		AirPress1Refresh = 1;
		GUIBackUp.AirPress1 = AirPress1;
	}
	if ((Refresh) || (AirPress1Refresh))
	{
// delete repeat
#if 1
		switch (AirPress1)
		{
		case 10:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 61, Atmosphere_lattice);
		case 9:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 76, Atmosphere_lattice);
		case 8:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 91, Atmosphere_lattice);
		case 7:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 106, Atmosphere_lattice);
		case 6:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 121, Atmosphere_lattice);
		case 5:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 136, Atmosphere_lattice);
		case 4:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 151, Atmosphere_lattice);
		case 3:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 166, Atmosphere_lattice);
		case 2:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 181, Atmosphere_lattice);
		case 1:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 15, 196, Atmosphere_lattice);
		case 0:
		default:
			break;
		}

		switch (AirPress1)
		{
		case 0:
			Clear_Box(15, 196, 15 + 6, 196 + 16);
		case 1:
			Clear_Box(15, 181 - 1, 15 + 6, 181 + 16 - 1);
		case 2:
			Clear_Box(15, 166 - 1, 15 + 6, 166 + 16 - 1);
		case 3:
			Clear_Box(15, 151 - 1, 15 + 6, 151 + 16 - 1);
		case 4:
			Clear_Box(15, 136 - 1, 15 + 6, 136 + 16 - 1);
		case 5:
			Clear_Box(15, 121 - 1, 15 + 6, 121 + 16 - 1);
		case 6:
			Clear_Box(15, 106 - 1, 15 + 6, 106 + 16 - 1);
		case 7:
			Clear_Box(15, 91 - 1, 15 + 6, 91 + 16 - 1);
		case 8:
			Clear_Box(15, 76 - 1, 15 + 6, 76 + 16 - 1);
		case 9:
			Clear_Box(15, 61 - 1, 15 + 6, 61 + 16 - 1);
		case 10:
		default:
			break;
		}
#endif
	}
}

void Gui_AirPress2(INT8U Valid, INT8U AirPress2, INT8U Refresh)
{
	// uint8_t ValidRefresh;
	uint8_t AirPress1Refresh = 0;

	if (GUIBackUp.AirPress2 != AirPress2)
	{
		AirPress1Refresh = 1;
		GUIBackUp.AirPress2 = AirPress2;
	}
	if ((AirPress1Refresh) || (Refresh))
	{
// delete repeat
#if 1
		switch (AirPress2)
		{
		case 10:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 61, Atmosphere_lattice);
		case 9:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 76, Atmosphere_lattice);
		case 8:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 91, Atmosphere_lattice);
		case 7:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 106, Atmosphere_lattice);
		case 6:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 121, Atmosphere_lattice);
		case 5:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 136, Atmosphere_lattice);
		case 4:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 151, Atmosphere_lattice);
		case 3:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 166, Atmosphere_lattice);
		case 2:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 181, Atmosphere_lattice);
		case 1:
			TFT_LCD_Draw_Bmp(Compress, Inverse, 219, 196, Atmosphere_lattice);
		case 0:

		default:
			break;
		}

		switch (AirPress2)
		{
		case 0:
			Clear_Box(219, 196, 219 + 6, 196 + 16);
		case 1:
			Clear_Box(219, 181 - 1, 219 + 6, 181 + 16 - 1);
		case 2:
			Clear_Box(219, 166 - 1, 219 + 6, 166 + 16 - 1);
		case 3:
			Clear_Box(219, 151 - 1, 219 + 6, 151 + 16 - 1);
		case 4:
			Clear_Box(219, 136 - 1, 219 + 6, 136 + 16 - 1);
		case 5:
			Clear_Box(219, 121 - 1, 219 + 6, 121 + 16 - 1);
		case 6:
			Clear_Box(219, 106 - 1, 219 + 6, 106 + 16 - 1);
		case 7:
			Clear_Box(219, 91 - 1, 219 + 6, 91 + 16 - 1);
		case 8:
			Clear_Box(219, 76 - 1, 219 + 6, 76 + 16 - 1);
		case 9:
			Clear_Box(219, 61 - 1, 219 + 6, 61 + 16 - 1);
		case 10:
		default:
			break;
		}
#endif
	}
}

void Gui_OutTmep(INT8U Valid, INT8U Temp, INT8U Warn, INT8U Refresh)
{
	uint8_t ValidRefresh = 0;
	uint8_t TempRefresh = 0;
	uint8_t OutWarnRefresh = 0;
	if (GUIBackUp.OutTempValid != Valid)
	{
		ValidRefresh = 1;
		GUIBackUp.OutTempValid = Valid;
	}
	if (GUIBackUp.OutTemp != Temp)
	{
		TempRefresh = 1;
		GUIBackUp.OutTemp = Temp;
	}

	if (GUIBackUp.OutWarn != AC_Temperature.Blink)
	{
		GUIBackUp.OutWarn = AC_Temperature.Blink;
		OutWarnRefresh = 1;
	}

	if ((Refresh) || (ValidRefresh) || (TempRefresh) || (OutWarnRefresh))
	{
		if (Valid)
		{
			if (AC_Temperature.Symbol == Positive)
			{
				if (Temp <= 4)
				{
					Clear_Box(172, 35, 180, 51);
					if (Warn)
					{
						if (AC_Temperature.Blink)
						{
							GUI_General_Digit_Display(Temp, Num_19, 3, 2, OutTempDigits19PosX, 35);
						}
						else
						{
							Clear_Box(172, 35, 194 + 10, 35 + 16);
						}
					}
					else
					{
						GUI_General_Digit_Display(Temp, Num_19, 3, 2, OutTempDigits19PosX, 35);
					}
				}
				else
				{
					Clear_Box(172, 35, 180, 51);
					GUI_General_Digit_Display(Temp, Num_19, 3, 2, OutTempDigits19PosX, 35);
				}
			}
			else
			{
				if (Temp >= 10)
				{
					if (Warn)
					{
						if (AC_Temperature.Blink)
						{
							GUI_General_Digit_Display(Temp, Num_19, 2, 1, OutTempDigits19PosX2, 35);
						}
						else
						{
							Clear_Box(183, 35, 194 + 10, 35 + 16);
						}
					}
					else
					{
						GUI_General_Digit_Display(Temp, Num_19, 2, 1, OutTempDigits19PosX2, 35);
					}
					TFT_LCD_Draw_Bmp(Compress, Inverse, 172, 35, Number_19_White_Line);
				}
				else
				{
					if (Warn)
					{
						if (AC_Temperature.Blink)
						{
							GUI_General_Digit_Display(Temp, Num_19, 1, 0, OutTempDigits19PosX1, 35);
						}
						else
						{
							Clear_Box(194, 35, 194 + 10, 35 + 16);
						}
					}
					else
					{
						GUI_General_Digit_Display(Temp, Num_19, 1, 0, OutTempDigits19PosX1, 35);
					}
					TFT_LCD_Draw_Bmp(Compress, Inverse, 183, 35, Number_19_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 172, 35, Number_19_White_back);
				}
			}
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 183, 35, Number_19_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 194, 35, Number_19_White_Line);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 172, 35, Number_19_White_Line);
		}
	}
}

void Gui_Soc(INT16U Soc, INT8U Refresh)
{
	uint8_t SocRefresh = 0;
	uint8_t SocDis;
	SocDis = Soc / 10;

	if (GUIBackUp.Soc != Soc)
	{
		SocRefresh = 1;
		GUIBackUp.Soc = Soc;
	}

	if (Refresh)
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 174, 225, Electricity_Hundred);
	}

	if (SocRefresh)
	{
		TFT_LCD_Draw_Box(70, 224, 69 + (6 * SocDis), 241, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_SET);
		TFT_LCD_Draw_Box(130 - (6 * (10 - SocDis)), 224, 129, 241, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);

		GUI_General_Digit_Display(Soc, Num_19, 3, 2, SOC3Digits19PosX1, 225);
	}
}

void GUI_MANIT_Warning_Display(INT32U ManitDis, INT8U Refresh)
{
	if (ManitDis > 500)
	{
		ManitDis = 500;
	}
	if ((GUIBackUp.ManitenceDis != ManitDis) || (Refresh))
	{
		GUIBackUp.ManitenceDis = ManitDis;

		if (MenuData.Language)
		{
			GUI_General_Digit_Display(ManitDis, Num_22, 3, 2, POP_ManitDisDigits_CH_EN, 109);
		}
		else
		{
			GUI_General_Digit_Display(ManitDis, Num_22, 3, 2, POP_ManitDisDigits_CH_EN, 130);
		}
	}
}

void GUI_PopAlarm_Display(INT16U PopupAlarmDis) // zh321
{
	INT8U Refresh = 0;

	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Refresh = 1;
		Clear_Middle();
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if (GUIBackUp.PopupAlarmDis != PopupAlarmDis)
	{
		if (((GUIBackUp.PopupAlarmDis == POPUP_MSG_DoorOpen_Greate) && (PopupAlarmDis == POPUP_MSG_DoorOpen_Greate)) ||
			((GUIBackUp.PopupAlarmDis == POPUP_MSG_DoorOpen_Greate) && (PopupAlarmDis == POPUP_MSG_DoorOpen)) ||
			((GUIBackUp.PopupAlarmDis == POPUP_MSG_DoorOpen) && (PopupAlarmDis == POPUP_MSG_DoorOpen)) ||
			((GUIBackUp.PopupAlarmDis == POPUP_MSG_DoorOpen) && (PopupAlarmDis == POPUP_MSG_DoorOpen_off)) ||
			((GUIBackUp.PopupAlarmDis == POPUP_MSG_DoorOpen_off) && (PopupAlarmDis == POPUP_MSG_DoorOpen)) ||
			((GUIBackUp.PopupAlarmDis == POPUP_MSG_DoorOpen_off) && (PopupAlarmDis == POPUP_MSG_DoorOpen_off)) ||
			((GUIBackUp.PopupAlarmDis == POPUP_MSG_charge_display) && (PopupAlarmDis == POPUP_MSG_charge_display)) ||
			((GUIBackUp.PopupAlarmDis == POPUP_MSG_charge_display_off) && (PopupAlarmDis == POPUP_MSG_charge_display_off)))
		{
			Refresh = 1;
		}
		else
		{
			Refresh = 1;
			Clear_Middle(); // ���м�
		}
	}

	if ((Refresh))
	{
		GUIBackUp.PopupAlarmDis = PopupAlarmDis;
		// switch (PopupAlarmDis) //    1

		if (POPUP_MSG_Leave_the_vehicle == PopupAlarmDis)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(45, 98, "Leave The Vehicle", Num_18_EN);
			}
			else
			{

				TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_048_Word0);
			}
			TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 140, Alarm_Image_01);
		}

		else if (PopupAlarmDis == POPUP_MSG_Skid_of_vehicle)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(76, 108, "Motor Slip", Num_18_EN);
				GUI_Display_Version_Code_Service(52, 133, "Stop To Restart", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 105, Alarm_022_2_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 129, Alarm_022_2_Word0);
			}
		}

		else if (PopupAlarmDis == POPUP_MSG_SafetyBelt)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(40, 98, "Please Tie Seatbelt", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 23, 95, Alarm_084_Word0);
			}
			TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 133, Alarm_Image_02);
		}
		else if (PopupAlarmDis == POPUP_MSG_Close_30)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(51, 108, "Shut Down High", Num_18_EN);
				GUI_Display_Version_Code_Service(53, 133, "Voltage System", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_002_Word0);
			}
		}
		else if (PopupAlarmDis == POPUP_MSG_Please_wait_relieving_pressure) // shi
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(80, 108, "Tank Pressure", Num_18_EN);
				GUI_Display_Version_Code_Service(80, 108, "Release,Please", Num_18_EN);
				GUI_Display_Version_Code_Service(80, 108, "Wait", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_003_Word0);
			}
		}
		else if (PopupAlarmDis == POPUP_MSG_Please_Fuel_up)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(48, 98, "Please Refueling", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 66, 95, Alarm_052_Word0);
			}
			TFT_LCD_Draw_Bmp(Compress, Inverse, 96, 142, Alarm_Image_03);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 134, 154, Alarm_Image_04);
		}
		else if (PopupAlarmDis == POPUP_MSG_Heavy_overload)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(46, 118, "Serious overload", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 105, Alarm_023_1_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 55, 129, Alarm_024_2_Word0);
			}
		}
		else if (PopupAlarmDis == POPUP_MSG_Overload)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(82, 118, "overload", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 45, 105, Alarm_023_Word0);
			}
		}
		else if (PopupAlarmDis == POPUP_MSG_Little_light)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(85, 98, "Light On", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_053_Word0);
			}
			TFT_LCD_Draw_Bmp(Compress, Inverse, 89, 142, Alarm_Image_05);
		}
		else if (PopupAlarmDis == POPUP_MSG_Go_to_service_station)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(60, 98, "Go To Service", Num_18_EN);
				GUI_Display_Version_Code_Service(71, 123, "Station For", Num_18_EN);
				GUI_Display_Version_Code_Service(62, 148, "Regeneration", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 23, 105, Alarm_025_1_Word0);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 77, 129, Alarm_025_2_Word0);
			}
		}
		else if (PopupAlarmDis == POPUP_MSG_Vehicle_not_shift_gears) // shi
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(57, 88, "Shifting Device", Num_18_EN);
				GUI_Display_Version_Code_Service(57, 113, "Unlock Failure,", Num_18_EN);
				GUI_Display_Version_Code_Service(77, 138, "Unable To", Num_18_EN);
				GUI_Display_Version_Code_Service(65, 163, "Normal Shift", Num_18_EN);
			}
			else
			{
			}
		}
		else if (PopupAlarmDis == POPUP_MSG_Do_not_operate_shift_gears) // shi
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(57, 98, "Shifting Device", Num_18_EN);
				GUI_Display_Version_Code_Service(49, 123, "Unlock Running,", Num_18_EN);
				GUI_Display_Version_Code_Service(52, 148, "Don't Operation", Num_18_EN);
			}
			else
			{
			}
		}
		else if (PopupAlarmDis == POPUP_MSG_SafetyBelt_EPB)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(40, 98, "Please Tie Seatbelt", Num_18_EN);
				GUI_Display_Version_Code_Service(76, 123, "or Manual", Num_18_EN);
				GUI_Display_Version_Code_Service(65, 148, "Release EPB", Num_18_EN);
			}
			else
			{
			}
		}
		Gui_POPUP_TYPE_HINT(PopupAlarmDis, Refresh);
	}

	if ((PopupAlarmDis == POPUP_MSG_charge_display) || (PopupAlarmDis == POPUP_MSG_charge_display_off))
	{
		Gui_ChargeSoc(g_stSoc.u16Val, DataChgRemain.u8Hour, DataChgRemain.u8Min, Refresh);
	}

	if ((PopupAlarmDis == POPUP_MSG_DoorOpen_Greate) || (PopupAlarmDis == POPUP_MSG_DoorOpen) || (PopupAlarmDis == POPUP_MSG_DoorOpen_off))
	{
		INT8U Refresh_4Door = 0;
		if ((GUIBackUp.GUI_DriverDoor != DoorOpen.u8LF_St) || (GUIBackUp.GUI_PassengerDoor != DoorOpen.u8RF_St))
		{
			GUIBackUp.GUI_DriverDoor = DoorOpen.u8LF_St;
			GUIBackUp.GUI_PassengerDoor = DoorOpen.u8RF_St;
			Refresh_4Door = 1;
		}

		if ((Refresh_4Door) || (Refresh))
		{
			if (DoorOpen.u8LF_St == 1)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 117, DoorOpen_LF);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 117, DoorOpen_LF_CLEAR);
			}
			if (DoorOpen.u8RF_St == 1)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 117, DoorOpen_RF);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 141, 117, DoorOpen_RF_CLEAR);
			}
		}
	}
}

void GUI_Alarm_Demand_Display(INT16U PopupAlarmDis) // zh321
{
	INT8U Refresh = 0;
	if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
	{
		Refresh = 1;
		Clear_Middle();
		// Clear_Box(25, 71, 214, 183);
		// Clear_Box(34, 183, 144, 215);
		// Clear_Box(145 - 8, 193 - 8, 145, 193);
		DisplayInfor_BackUp.PageType = PageInfo.PageType;
	}
	if (GUIBackUp.Language != MenuData.Language)
	{
		Clear_Middle();
		Refresh = 1;
		GUIBackUp.Language = MenuData.Language;
	}
	if (GUIBackUp.Menu_Cur != MenuCur)
	{
		Refresh = 1;
		// Clear_Middle();
		Clear_Box(25, 71, 214, 183);
		Clear_Box(34, 183, 144, 215);
		Clear_Box(145 - 8, 193 - 8, 145, 193);
	}

	if (GUIBackUp.HintPopupNum != HintPopupNum)
	{
		Refresh = 1;
		Clear_Middle();
		GUIBackUp.HintPopupNum = HintPopupNum;
	}

	if (GUIBackUp.MaskPopupCurIdx != MaskPopupCurIdx)
	{
		Clear_Box(25, 71, 214, 183);
		Clear_Box(34, 183, 144, 215);
		Clear_Box(145 - 8, 193 - 8, 145, 193);
		Refresh = 1;
		GUIBackUp.MaskPopupCurIdx = MaskPopupCurIdx;
	}

	if (HintPopupNum != 0)
	{
		GUI_General_Digit_Display(HintPopupNum, Num_19, 2, 1, DemandTotal19PosX, 194);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 170, 191, Number_19_White_Diagonal);
		Popups_SelfCheckTime = 0xff;
	}
	else
	{
		if (Popups_SelfCheckTime > SelfCheckTime)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(94, 122, "No Fault", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 59, 119, Breakdown_Title1_Word0);
			}
		}
		else
		{
			if (Popups_SelfCheckTime == SelfCheckTime)
			{
				;
			}
			else
			{
				if (MenuData.Language)
				{
					GUI_Display_Version_Code_Service(94, 118, "Fault Query", Num_14_EN);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 75, 117, Alarm_085_Word0);
				}
			}

			if (Popups_SelfCheckTime == SelfCheckTime)
			{
				Popups_SelfCheckTime = 0xff;
				Clear_Middle();
			}
		}
	}

	if ((Refresh))
	{
		if (HintPopupNum != 0)
		{
			if ((PopupAlarmDis == POPUP_MSG_charge_display) || (PopupAlarmDis == POPUP_MSG_DoorOpen))
			{
				GUI_General_Digit_Display(MaskPopupCurIdx, Num_19, 2, 1, DemandSingle19PosX, 194);
			}
			else
			{
				GUI_General_Digit_Display(MaskPopupCurIdx + 1, Num_19, 2, 1, DemandSingle19PosX, 194);
			}
			Popups_SelfCheckTime = 0xff;
		}
		else
		{
			if (Popups_SelfCheckTime > SelfCheckTime)
			{
				if (MenuData.Language)
				{
					GUI_Display_Version_Code_Service(94, 122, "No Fault", Num_18_EN);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 59, 119, Breakdown_Title1_Word0);
				}
			}
			else
			{
				if (MenuData.Language)
				{
					GUI_Display_Version_Code_Service(94, 118, "Fault Query", Num_14_EN);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 75, 117, Alarm_085_Word0);
				}
				if (Popups_SelfCheckTime == SelfCheckTime)
				{
					Popups_SelfCheckTime = 0xff;
				}
			}
		}
		GUIBackUp.PopupAlarmDis = PopupAlarmDis;
		Gui_POPUP_TYPE_HINT(PopupAlarmDis, Refresh);
	}
}

void Gui_POPUP_TYPE_HINT(INT16U PopupAlarmDis, INT8U Refresh)
{
	if (PopupAlarmDis == POPUP_MSG_start_button) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(58, 108, "START/STOP", Num_18_EN);
			GUI_Display_Version_Code_Service(49, 133, "BUTTON Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_004_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_nokey_sys_fault) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(60, 108, "PEPS System", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 133, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_005_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_relay_fault) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(48, 118, "IGN1 Relay Failue", Num_18_EN);
		}
		else
		{
			// TFT_LCD_Draw_Bmp(Compress, Inverse, 41, 105, Alarm_029_1_Word0_X41_Y105);
			// TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 129, Alarm_029_2_Word0_X76_Y129);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_authentication_failure) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(47, 88, "Security Authen-", Num_18_EN);
			GUI_Display_Version_Code_Service(55, 113, "tication Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_054_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 97, 142, Alarm_Image_06);
	}
	else if (PopupAlarmDis == POPUP_MSG_undetected_key) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(56, 118, "Key Not Found", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_006_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_key_not_Car) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(59, 118, "key Not In Car", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 41, 105, Alarm_030_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_Key_close_start) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(68, 108, "Close Key to", Num_18_EN);
			GUI_Display_Version_Code_Service(68, 133, "Starter Area", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 105, Alarm_031_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 129, Alarm_031_2_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_brake_to_start) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(64, 108, "Please Press", Num_18_EN);
			GUI_Display_Version_Code_Service(69, 133, "Brake Pedal", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_007_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_N_gear_start) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(51, 118, "Please shfit to N", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 44, 105, Alarm_032_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_N_gear_parking) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(46, 108, "Turn IGN on and", Num_18_EN);
			GUI_Display_Version_Code_Service(80, 133, "shift to N", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 25, 105, Alarm_033_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_key_low_power) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(50, 118, "Key Battery Low", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_008_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_motor_high)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(76, 98, "The Motor", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 123, "Temperature", Num_18_EN);
			GUI_Display_Version_Code_Service(60, 148, "Limited Power", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 44, 105, Alarm_034_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_Please_charge_power)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(37, 108, "Low Power Battery", Num_18_EN);
			GUI_Display_Version_Code_Service(50, 133, "Please Recharge", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 78, 105, Alarm_035_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 129, Alarm_035_2_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_Electronic_parking_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(69, 118, "EPB Failure", Num_18_EN);
		}
		else
		{
			// TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 44, 105, Alarm_036_Word0_X32_Y105_44);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_please_foot_brake)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(39, 108, "Press Brake Pedal,", Num_18_EN);
			GUI_Display_Version_Code_Service(33, 133, "Release The Parking", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 33, 105, Alarm_037_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_low_pressure)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(43, 98, "Low Air Pressure,", Num_18_EN);
			GUI_Display_Version_Code_Service(61, 123, "Don't Release", Num_18_EN);
			GUI_Display_Version_Code_Service(69, 148, "The Parking", Num_18_EN);
		}
		else
		{
			// TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 24, 105, Alarm_038_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_gear_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(64, 108, "Please Press", Num_18_EN);
			GUI_Display_Version_Code_Service(69, 133, "Brake Pedal", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 74, 105, Alarm_039_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32, 129, Alarm_039_2_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_please_Step_brake)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(64, 108, "Please Press", Num_18_EN);
			GUI_Display_Version_Code_Service(69, 133, "Brake Pedal", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_009_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_please_N_gear)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(51, 118, "Please shfit to N", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 37, 117, Alarm_010_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_Please_draw_charging)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(53, 108, "Please Pull Out", Num_18_EN);
			GUI_Display_Version_Code_Service(62, 133, "Charging Gun", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 22, 117, Alarm_011_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_high_low_temp)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(66, 98, "Temperature", Num_18_EN);
			GUI_Display_Version_Code_Service(45, 123, "Abnormal, Limited", Num_18_EN);
			GUI_Display_Version_Code_Service(92, 148, "Power", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 105, Alarm_040_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 52, 129, Alarm_040_2_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_charging_parking_brake)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(32, 118, "Please Handle Brake", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_012_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_charge_complete)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(37, 118, "Charging Completed", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 34, 117, Alarm_013_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_charge_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(40, 118, "Charging Abnormal", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 35, 117, Alarm_014_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_Face_Loss) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(46, 98, "Facial Image Loss", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_057_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 140, Alarm_Image_01);
	}
	else if (PopupAlarmDis == POPUP_MSG_fatigue_driving) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(56, 98, "Drowsy driving", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_077_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 148, Alarm_Image_09);
	}
	else if (PopupAlarmDis == POPUP_MSG_fatigue_driving_stopcar) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(56, 88, "Drowsy driving", Num_18_EN);
			GUI_Display_Version_Code_Service(42, 113, "Pull over and Rest", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_077_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 66, 108, Alarm_078_Word0);
		}

		TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 148, Alarm_Image_09);
	}
	else if (PopupAlarmDis == POPUP_MSG_safe_driving) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(69, 98, "Safe driving", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 25, 95, Alarm_058_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 140, Alarm_Image_01);
	}
	else if (PopupAlarmDis == POPUP_MSG_Speeding_alarm)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(73, 98, "Over speed", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 35, 95, Alarm_059_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 140, Alarm_Image_01);
	}
	else if (PopupAlarmDis == POPUP_MSG_SOC_low)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(55, 98, "Low Power,Air", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 123, "Conditioning", Num_18_EN);
			GUI_Display_Version_Code_Service(51, 148, "Can't Be Started", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 76, 105, Alarm_041_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 55, 129, Alarm_041_2_Word0);
		}
	}
	/*else if(PopupAlarmDis == POPUP_MSG_pressure_fault_stopfuel) // shi
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 34, 105, Alarm_042_Word0);

	}*/
	else if (PopupAlarmDis == POPUP_MSG_airbag_fault) // shi
	{
		if (Val_EOL_F101_CollisionSystem() == 1)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(35, 118, "ACU System Failure", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_016_Word0);
			}
		}
		else if (Val_EOL_F101_CollisionSystem() == 2)
		{
			if (MenuData.Language)
			{
				GUI_Display_Version_Code_Service(61, 118, "Airbag Failure", Num_18_EN);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_015_Word0);
			}
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_GPF) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(65, 108, "GPF is Being", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 133, "Regenerated", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 27, 117, Alarm_017_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_Radar_sys_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(29, 98, "Radar System Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_066_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 94, 128, Alarm_Image_14);
	}
	else if (PopupAlarmDis == POPUP_MSG_shifter_fault) // shi
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(57, 108, "Shifting Device", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 133, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 23, 117, Alarm_018_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_HighBeam_relay_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(76, 88, "High Beam", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 113, "Lamp Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 86, 84, Alarm_081_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 108, Alarm_081_2_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 94, 148, Alarm_Image_15);
	}
	else if (PopupAlarmDis == POPUP_MSG_RearFog_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(56, 88, "Rear Fog Lamp", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 113, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 22, 95, Alarm_067_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 98, 142, Alarm_Image_16);
	}
	else if (PopupAlarmDis == POPUP_MSG_FrontFog_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(52, 88, "Front Fog Lamp", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 113, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 22, 95, Alarm_068_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 102, 142, Alarm_Image_17);
	}
	else if (PopupAlarmDis == POPUP_MSG_DayRun_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(58, 88, "Running Lamp", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 113, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_069_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 142, Alarm_Image_18);
	}
	else if (PopupAlarmDis == POPUP_MSG_Position_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(59, 88, "Position Lamp", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 113, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 22, 95, Alarm_070_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 89, 135, Alarm_Image_19);
	}
	else if (PopupAlarmDis == POPUP_MSG_LowBeam_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(51, 88, "Low Beam Lamp", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 113, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 87, 84, Alarm_082_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 108, Alarm_081_2_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 95, 148, Alarm_Image_20);
	}
	else if (PopupAlarmDis == POPUP_MSG_reversing_light_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(60, 88, "Reverse Lamp", Num_18_EN);
			GUI_Display_Version_Code_Service(91, 113, "Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 84, Alarm_083_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 65, 108, Alarm_081_2_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 146, Alarm_Image_01);
	}
	else if (PopupAlarmDis == POPUP_MSG_brake_light_fault)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(38, 98, "Brake Lamp Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 22, 95, Alarm_071_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 94, 136, Alarm_Image_21);
	}
	else if (PopupAlarmDis == POPUP_MSG_Please_pull_key)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(55, 88, "Please Pull Out", Num_18_EN);
			GUI_Display_Version_Code_Service(87, 113, "The Key", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 34, 95, Alarm_072_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 94, 133, Alarm_Image_22);
	}
	else if (PopupAlarmDis == POPUP_MSG_Maintenance_Km)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(138, 108, "km", Num_18_EN);
			GUI_Display_Version_Code_Service(71, 133, "To maintain", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 32, 105, Alarm_044_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 138, 129, Alarm_km);
		}
		GUI_MANIT_Warning_Display(DataServiceInterval / 10, Refresh);
	}
	else if (PopupAlarmDis == POPUP_MSG_Maintenance_Tips)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(49, 98, "Need to Maintain", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_073_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 90, 141, Alarm_Image_23);
	}
	/*else if(PopupAlarmDis == POPUP_MSG_please_Maintenance_engine)
	{

	}
	else if(PopupAlarmDis == POPUP_MSG_Maintenance_engine_Km)
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 32+32, 105, Alarm_044_Word0_X32_Y105_32);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 132, 129, Alarm_km);


	}*/
	else if (PopupAlarmDis == POPUP_MSG_battery_low_power)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(33, 118, "Battery Voltage Low", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 117, Alarm_019_Word0);
		}
	}
	/*else if(PopupAlarmDis == POPUP_MSG_DoorOpen)
	else if(PopupAlarmDis == POPUP_MSG_DoorOpen_off)
	{
		if(MenuData.Language)
		{
			GUI_Display_Version_Code_Service(48, 68, "Door Not Closed", Num_18_EN);
		}
		else
		{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 75, 65, Alarm_001_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 88, 93, DoorOpen_Car);

	}*/
	else if (PopupAlarmDis == POPUP_MSG_TPMS_NotLearnt)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(58, 88, "TPMS Sensor", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 113, "Not learning", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 64, 84, Alarm_079_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 87, 108, Alarm_079_2_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 140, Alarm_Image_01);
	}
	else if (PopupAlarmDis == POPUP_MSG_TPMS_SenLost)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(58, 108, "TPMS Sensor", Num_18_EN);
			GUI_Display_Version_Code_Service(70, 133, "Signal Loss", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 32 + 34, 105, Alarm_043_Word0);
		}
	}
	else if (PopupAlarmDis == POPUP_MSG_TPMS_SenFlt)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(38, 98, "TPMS Sensor Failure", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_060_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 140, Alarm_Image_01);
	}
	else if (PopupAlarmDis == POPUP_MSG_TPMS_TirePr_Low)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(37, 98, "Tyre Pressure Low", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 22, 95, Alarm_061_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 140, Alarm_Image_10);
	}
	else if (PopupAlarmDis == POPUP_MSG_TPMS_TirePr_High)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(37, 98, "Tyre Pressure High", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 33, 95, Alarm_062_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 101, 140, Alarm_Image_10);
	}
	else if (PopupAlarmDis == POPUP_MSG_TPMS_FastLeak)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(37, 88, "Tyre Pressure Fast", Num_18_EN);
			GUI_Display_Version_Code_Service(89, 113, "Change", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42, 95, Alarm_064_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 140, Alarm_Image_01);
	}
	else if (PopupAlarmDis == POPUP_MSG_TPMS_Temp_High)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(44, 88, "Tyre Temperature", Num_18_EN);
			GUI_Display_Version_Code_Service(102, 113, "High", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 42 + 33, 95, Alarm_063_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 102, 139, Alarm_Image_11);
	}
	else if (PopupAlarmDis == POPUP_MSG_TPMS_BatLow)
	{
		if (MenuData.Language)
		{
			GUI_Display_Version_Code_Service(58, 88, "TPMS Sensor", Num_18_EN);
			GUI_Display_Version_Code_Service(66, 113, "Voltage Low", Num_18_EN);
		}
		else
		{
			TFT_LCD_Draw_Bmp(Compress, Inverse, 64, 84, Alarm_079_1_Word0);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 89, 108, Alarm_080_2_Word0);
		}
		TFT_LCD_Draw_Bmp(Compress, Inverse, 93, 145, Alarm_Image_12);
	}
	else
	{
	}
}
// uint16_t qqq;
void GUI_Navi_Demand_Alam_Display(void)
{
	INT16U MaskedPopupMsg = 0xFFFF;

	MaskPopupNum_Backup = Menu_Get_g1_SystemError();

	if (MaskPopupNum != MaskPopupNum_Backup)
	{
		MaskPopupNum = MaskPopupNum_Backup;
		if (MaskPopupNum > 0)
		{
			MaskPopupCurIdx = (MaskPopupNum - 1);
		}
		else
		{
			MaskPopupCurIdx = 0;
		}
	}

	if (MaskPopupNum > 0)
	{
		MaskedPopupMsg = MaskPopupList[MaskPopupCurIdx];
	}
	else
	{
		MaskedPopupMsg = 0xFFFF;
	}
	//	qqq =  MaskedPopupMsg;

	GUI_Alarm_Demand_Display(MaskedPopupMsg);
}

void GUI_OTA_Draw_XuanKuang(OTA_HMI_CURSOR_ENUM OTA)
{
	if (OTA == OTA_HMI_CURSOR_Confirm)
	{
		TFT_LCD_Draw_Horizontal_Line(46, 88, 194, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Horizontal_Line(46, 88, 214, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Vertical_Line(46, 194, 214, TFT_LCD_TYPE_SET);	 // ��2����
		TFT_LCD_Draw_Vertical_Line(88, 194, 214, TFT_LCD_TYPE_SET);	 // ��2����
	}
	else if (OTA == OTA_HMI_CURSOR_Concel)
	{
		TFT_LCD_Draw_Horizontal_Line(112, 194, 194, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Horizontal_Line(112, 194, 214, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Vertical_Line(112, 194, 214, TFT_LCD_TYPE_SET);   // ��2����
		TFT_LCD_Draw_Vertical_Line(194, 194, 214, TFT_LCD_TYPE_SET);   // ��2����
	}
	else
	{
		TFT_LCD_Draw_Horizontal_Line(46, 88, 194, TFT_LCD_TYPE_CLR);   // ��2����
		TFT_LCD_Draw_Horizontal_Line(46, 88, 214, TFT_LCD_TYPE_CLR);   // ��2����
		TFT_LCD_Draw_Vertical_Line(46, 194, 214, TFT_LCD_TYPE_CLR);	   // ��2����
		TFT_LCD_Draw_Vertical_Line(88, 194, 214, TFT_LCD_TYPE_CLR);	   // ��2����
		TFT_LCD_Draw_Horizontal_Line(112, 194, 194, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Horizontal_Line(112, 194, 214, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Vertical_Line(112, 194, 214, TFT_LCD_TYPE_CLR);   // ��2����
		TFT_LCD_Draw_Vertical_Line(194, 194, 214, TFT_LCD_TYPE_CLR);   // ��2����
	}
}

void GUI_OTA_Clear_XuanKuang(OTA_HMI_CURSOR_ENUM OTA)
{
	if (OTA == OTA_HMI_CURSOR_Confirm)
	{
		TFT_LCD_Draw_Horizontal_Line(46, 88, 194, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Horizontal_Line(46, 88, 214, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Vertical_Line(46, 194, 214, TFT_LCD_TYPE_CLR);	 // ��2����
		TFT_LCD_Draw_Vertical_Line(88, 194, 214, TFT_LCD_TYPE_CLR);	 // ��2����
	}
	else if (OTA == OTA_HMI_CURSOR_Concel)
	{
		TFT_LCD_Draw_Horizontal_Line(112, 194, 194, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Horizontal_Line(112, 194, 214, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Vertical_Line(112, 194, 214, TFT_LCD_TYPE_CLR);   // ��2����
		TFT_LCD_Draw_Vertical_Line(194, 194, 214, TFT_LCD_TYPE_CLR);   // ��2����
	}
	else
	{
		TFT_LCD_Draw_Horizontal_Line(46, 88, 194, TFT_LCD_TYPE_CLR);   // ��2����
		TFT_LCD_Draw_Horizontal_Line(46, 88, 214, TFT_LCD_TYPE_CLR);   // ��2����
		TFT_LCD_Draw_Vertical_Line(46, 194, 214, TFT_LCD_TYPE_CLR);	   // ��2����
		TFT_LCD_Draw_Vertical_Line(88, 194, 214, TFT_LCD_TYPE_CLR);	   // ��2����
		TFT_LCD_Draw_Horizontal_Line(112, 194, 194, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Horizontal_Line(112, 194, 214, TFT_LCD_TYPE_CLR); // ��2����
		TFT_LCD_Draw_Vertical_Line(112, 194, 214, TFT_LCD_TYPE_CLR);   // ��2����
		TFT_LCD_Draw_Vertical_Line(194, 194, 214, TFT_LCD_TYPE_CLR);   // ��2����
	}
}

#if 0
void GUI_OTA_PageOne_Display(uint8_t Refresh)
{
	if (Refresh)
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
	}
}

void GUI_OTA_PageTwo_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	uint8_t Cursor_Refresh = 0;
	uint8_t Time_Refresh = 0;

	if (OTA_Ctrl_Backup.Cursor != OTA.Cursor)
	{
		Cursor_Refresh = 1;
		GUI_OTA_Clear_XuanKuang(OTA_Ctrl_Backup.Cursor);
		OTA_Ctrl_Backup.Cursor = OTA.Cursor;
	}

	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		Time_Refresh = 1;
	}

	if ((Refresh) || (Cursor_Refresh) || (Time_Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 119, OTA_Word0_02);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 52, 196, OTA_Word0_03);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);

		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageThree_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{

	if (OTA_Ctrl_Backup.DownLoadPercent != OTA.DownLoadPercent)
	{
		OTA_Ctrl_Backup.DownLoadPercent = OTA.DownLoadPercent;
		GUI_General_Digit_Display(OTA.DownLoadPercent, Num_15, 3, 2, OTA3downLoadDigits18PosX, 142);
	}

	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTA3timedownDigits18PosX, 196);
	}

	if (Refresh)
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 59, 118, OTA_Word0_07);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTA3timedownDigits18PosX, 196);
		GUI_General_Digit_Display(OTA.DownLoadPercent, Num_15, 3, 2, OTA3downLoadDigits18PosX, 142);
		TFT_LCD_Draw_Horizontal_Line(79, 161, 194, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Horizontal_Line(79, 161, 214, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Vertical_Line(79, 194, 214, TFT_LCD_TYPE_SET);	  // ��2����
		TFT_LCD_Draw_Vertical_Line(161, 194, 214, TFT_LCD_TYPE_SET);  // ��2����
	}
}

void GUI_OTA_PageFour_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	// uint8_t Cursor_Refresh = 0;
	// uint8_t Time_Refresh = 0;

	if (OTA_Ctrl_Backup.Cursor != OTA.Cursor)
	{
		//	Cursor_Refresh = 1 ;
		GUI_OTA_Clear_XuanKuang(OTA_Ctrl_Backup.Cursor);
		OTA_Ctrl_Backup.Cursor = OTA.Cursor;
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}

	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 35, 107, OTA_Word0_08);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 52, 196, OTA_Word0_03);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageFive_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	// uint8_t Cursor_Refresh = 0;
	// uint8_t Time_Refresh = 0;

	if (OTA_Ctrl_Backup.Cursor != OTA.Cursor)
	{
		//	Cursor_Refresh = 1 ;
		GUI_OTA_Clear_XuanKuang(OTA_Ctrl_Backup.Cursor);
		OTA_Ctrl_Backup.Cursor = OTA.Cursor;
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}

	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 119, OTA_Word0_09);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 52, 196, OTA_Word0_03);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);

		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageSix_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Cursor != OTA.Cursor)
	{
		GUI_OTA_Clear_XuanKuang(OTA_Ctrl_Backup.Cursor);
		OTA_Ctrl_Backup.Cursor = OTA.Cursor;
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}

	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 33, 70, OTA_Word0_10);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 52, 196, OTA_Word0_03);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageSeven_PowerMode_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 60, 131, OTA_Word0_18);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageSeven_GearPN_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 64, 131, OTA_Word0_17);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageSeven_VehicleNotrefined_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 80, 131, OTA_Word0_12);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}
void GUI_OTA_PageSeven_BattVolt_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 71, 131, OTA_Word0_16);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageSeven_HandBrake_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}
	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 80, 131, OTA_Word0_15);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageSeven_ChgStatus_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 79, 131, OTA_Word0_14);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}
void GUI_OTA_PageSeven_Highpressure_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 89, 131, OTA_Word0_13);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 118, 196, OTA_Word0_04);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTAtimedownDigits18PosX, 196);
		GUI_OTA_Draw_XuanKuang(OTA.Cursor);
	}
}

void GUI_OTA_PageEight_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 67, 107, OTA_Word0_19);
	}
}

void GUI_OTA_PageNine_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 68, 67, OTA_Word0_01);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 75, 107, OTA_Word0_20);
	}
}

void GUI_OTA_PageTen_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{
	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTA3timedownDigits18PosX, 196);
	}

	if (Refresh)
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 48, 119, OTA_Word0_21);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 86, 196, OTA_Word0_23);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTA3timedownDigits18PosX, 196);
		TFT_LCD_Draw_Horizontal_Line(79, 161, 194, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Horizontal_Line(79, 161, 214, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Vertical_Line(79, 194, 214, TFT_LCD_TYPE_SET);	  // ��2����
		TFT_LCD_Draw_Vertical_Line(161, 194, 214, TFT_LCD_TYPE_SET);  // ��2����
	}
}

void GUI_OTA_PageEleven_Display(OTA_HMI_Ctrl_Struct OTA, uint8_t Refresh)
{

	if (OTA_Ctrl_Backup.Countdown != OTA.Countdown)
	{
		OTA_Ctrl_Backup.Countdown = OTA.Countdown;
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTA3timedownDigits18PosX, 196);
	}

	if ((Refresh))
	{
		TFT_LCD_Draw_Bmp(Compress, Inverse, 66, 131, OTA_Word0_24);
		TFT_LCD_Draw_Bmp(Compress, Inverse, 86, 196, OTA_Word0_23);
		GUI_General_Digit_Display(OTA.Countdown, Num_15, 2, 1, OTA3timedownDigits18PosX, 196);
		TFT_LCD_Draw_Horizontal_Line(79, 161, 194, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Horizontal_Line(79, 161, 214, TFT_LCD_TYPE_SET); // ��2����
		TFT_LCD_Draw_Vertical_Line(79, 194, 214, TFT_LCD_TYPE_SET);	  // ��2����
		TFT_LCD_Draw_Vertical_Line(161, 194, 214, TFT_LCD_TYPE_SET);  // ��2����
	}
}

void GUI_OTA_Display(OTA_HMI_Ctrl_Struct OTA)
{
	if((Val_EOL_F110_MMI() == 0)&&(Val_EOL_F110_TBOX() == 1)&&(Val_EOL_F101_OTA() == 1))
	{
		INT8U Refresh = 0;
		if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
		{
			Refresh = 1;
			Clear_Middle();
			DisplayInfor_BackUp.PageType = PageInfo.PageType;
		}
	

		if (OTA_Ctrl_Backup.CurHMI != OTA.CurHMI)
		{
			OTA_Ctrl_Backup.CurHMI = OTA.CurHMI;
			Clear_Middle();
			Refresh = 1;
		}

		if (OTA.CurHMI == OTA_HMI_1)
		{
			GUI_OTA_PageOne_Display(Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_2)
		{
			GUI_OTA_PageTwo_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_3)
		{
			GUI_OTA_PageThree_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_4)
		{
			GUI_OTA_PageFour_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_5)
		{
			GUI_OTA_PageFive_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_6)
		{
			GUI_OTA_PageSix_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_7_PowerMode)
		{
			GUI_OTA_PageSeven_PowerMode_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_7_GearPos)
		{
			GUI_OTA_PageSeven_GearPN_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_7_VehicleSpd)
		{
			GUI_OTA_PageSeven_VehicleNotrefined_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_7_BattVol)
		{
			GUI_OTA_PageSeven_BattVolt_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_7_HandBrake)
		{
			GUI_OTA_PageSeven_HandBrake_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_7_ChgStatus)
		{
			GUI_OTA_PageSeven_ChgStatus_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_7_HVStatus)
		{
			GUI_OTA_PageSeven_Highpressure_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_8)
		{
			GUI_OTA_PageEight_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_9)
		{
			GUI_OTA_PageNine_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_10)
		{
			GUI_OTA_PageTen_Display(OTA, Refresh);
		}
		else if (OTA.CurHMI == OTA_HMI_11)
		{
			GUI_OTA_PageEleven_Display(OTA, Refresh);
		}
		else
		{
			Clear_Middle();
		}
	}
}
#endif

void Gui_ChargeSoc(INT16U Soc, INT8U Hour, INT8U Minute, INT8U Refresh)
{
	INT8U VoltageRefresh = 0;
	INT8U CurrentRefresh = 0;
	INT8U HourRefresh = 0;
	INT8U MinuteRefresh = 0;
	INT8U SocRefresh = 0;
	INT8U SymbolRefresh = 0;
	INT8U CharVol_ValidRefresh = 0;
	INT8U CharCur_ValidRefresh = 0;

	if (GUIBackUp.CharVol != BattVolt.Display_Value)
	{
		VoltageRefresh = 1;
		GUIBackUp.CharVol = BattVolt.Display_Value;
	}

	if (GUIBackUp.CharCur != BattCurr.Display_Value)
	{
		CurrentRefresh = 1;
		GUIBackUp.CharCur = BattCurr.Display_Value;
	}

	if (GUIBackUp.CharVol_Valid != BattVolt.Valid)
	{
		CharVol_ValidRefresh = 1;
		GUIBackUp.CharVol_Valid = BattVolt.Valid;
	}

	if (GUIBackUp.CharCur_Valid != BattCurr.Valid)
	{
		CharCur_ValidRefresh = 1;
		GUIBackUp.CharCur_Valid = BattCurr.Valid;
	}

	if (GUIBackUp.CharHour != Hour)
	{
		HourRefresh = 1;
		GUIBackUp.CharHour = Hour;
	}

	if (GUIBackUp.CharMinute != Minute)
	{
		MinuteRefresh = 1;
		GUIBackUp.CharMinute = Minute;
	}

	if (GUIBackUp.CharSoc != Soc)
	{
		SocRefresh = 1;
		GUIBackUp.CharSoc = Soc;
	}

	if (GUIBackUp.CharPower != g_PowerIGN)
	{
		Clear_Middle();
		GUIBackUp.CharPower = g_PowerIGN;
	}

	if (GUIBackUp.CharSymbol != BattCurr.Symbol)
	{
		GUIBackUp.CharSymbol = BattCurr.Symbol;
		SymbolRefresh = 1;
	}

	if (SYS_OPR_STAT_IGN_ON)
	{
		if (MenuData.Language)
		{
			if (Refresh)
			{
				
				TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 100, Fast);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 100, Charge);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 149, 100, Mode);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 37, 138, Charging);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 138, Current);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 155, 138, colon);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 37, 158, Charging);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 158, Voltage);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 155, 158, colon);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 36, 177, Charge2);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 89, 177, Time);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 37, 198, Remain);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 87, 198, colon);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 194, 136, ECU_Unit_A);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 186, 156, ECU_Unit_V);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 113, 197, Charging_Interface_Unit_h);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 140, 198, Charging_Interface_Unit_min);
			}

			if ((Refresh) || (VoltageRefresh) || (CurrentRefresh) || (SymbolRefresh) || (MinuteRefresh) || (HourRefresh) || (CharVol_ValidRefresh) || (CharCur_ValidRefresh))
			{
				if (BattVolt.Valid)
				{
					GUI_General_Digit_Display(BattVolt.Display_Value, Num_16, 3, 2, ChargeVolDigits16PosX_EN, 156);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 176, 156, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 156, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 156, Number_16_White_Line);
				}
				if (BattCurr.Valid)
				{
					if (BattCurr.Symbol == Positive)
					{
						TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
						GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX_EN, 136);
					}
					else
					{
						if (BattCurr.Display_Value > 99)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_Line);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX_EN, 136);
						}
						else if (BattCurr.Display_Value > 9)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 136, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 2, 1, ChargeCurDigits2PosX_EN, 136);
						}
						else
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 176, 136, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 136, Number_16_White_back);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 1, 0, ChargeCurDigits1PosX_EN, 136);
						}
					}
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 185, 136, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 176, 136, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 136, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
				}
				GUI_General_Digit_Display(Hour, Num_16, 2, 0, ChargeHourDigits16PosX_EN, 196);
				GUI_General_Digit_Display(Minute, Num_16, 2, 0, ChargeMinuteDigits16PosX_EN, 196);
			}
		}
		else
		{
			if (Refresh)
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 98, Charging_Interface_Word0_1);
				// TFT_LCD_Draw_Bmp(Compress, Inverse, 46, 144, Charging_Interface_Word0_2);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 172, 144, ECU_Unit_A);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 173, 164, ECU_Unit_V);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 148, 185, Charging_Interface_Unit_h);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 175, 186, Charging_Interface_Unit_min);
			}

			if ((Refresh) || (VoltageRefresh) || (CurrentRefresh) || (SymbolRefresh) || (MinuteRefresh) || (HourRefresh) || (CharVol_ValidRefresh) || (CharCur_ValidRefresh))
			{
				if (BattVolt.Valid)
				{
					GUI_General_Digit_Display(BattVolt.Display_Value, Num_16, 3, 2, ChargeVolDigits16PosX, 164);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 163, 164, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 164, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 164, Number_16_White_Line);
				}

				if (BattCurr.Valid)
				{
					if (BattCurr.Symbol == Positive)
					{
						TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
						GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX, 144);
					}
					else
					{
						if (BattCurr.Display_Value > 99)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_Line);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX, 144);
						}
						else if (BattCurr.Display_Value > 9)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 144, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 2, 1, ChargeCurDigits2PosX, 144);
						}
						else
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 144, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 144, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 1, 0, ChargeCurDigits1PosX, 144);
						}
					}
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 163, 144, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 144, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 144, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
				}

				GUI_General_Digit_Display(Hour, Num_16, 2, 0, ChargeHourDigits16PosX, 184);
				GUI_General_Digit_Display(Minute, Num_16, 2, 0, ChargeMinuteDigits16PosX, 184);
			}
		}
	}
	else // off
	{
		if (Refresh)
		{
			if (MenuData.Language)
			{
				// GUI_Display_Version_Code_Service(44, 112, "Fast Charge Mode", Num_18_EN);
				// GUI_Display_Version_Code_Service(37, 138, "Charging Current :", Num_14_EN);
				// GUI_Display_Version_Code_Service(37, 158, "Charging Voltage :", Num_14_EN);
				// GUI_Display_Version_Code_Service(37, 177, "Charge Time", Num_14_EN);
				// GUI_Display_Version_Code_Service(37, 198, "Remain :", Num_14_EN);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 43, 115, Fast);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 85, 115, Charge);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 149, 115, Mode);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 37, 138, Charging);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 100, 138, Current);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 155, 138, colon);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 37, 158, Charging);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 99, 158, Voltage);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 155, 158, colon);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 36, 177, Charge2);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 89, 177, Time);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 37, 198, Remain);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 87, 198, colon);

				TFT_LCD_Draw_Bmp(Compress, Inverse, 194, 136, ECU_Unit_A);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 186, 156, ECU_Unit_V);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 113, 197, Charging_Interface_Unit_h);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 140, 198, Charging_Interface_Unit_min);
			}
			else
			{
				TFT_LCD_Draw_Bmp(Compress, Inverse, 84, 118, Charging_Interface_Word0_1);
				// TFT_LCD_Draw_Bmp(Compress, Inverse, 46, 144, Charging_Interface_Word0_2);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 172, 144, ECU_Unit_A);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 173, 164, ECU_Unit_V);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 148, 185, Charging_Interface_Unit_h);
				TFT_LCD_Draw_Bmp(Compress, Inverse, 175, 186, Charging_Interface_Unit_min);
			}
			TFT_LCD_Draw_Bmp(Compress, Inverse, 87, 70, Charging_Interface_Unit_SOC);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 86, 87, Charging_Interface_Frame);
			TFT_LCD_Draw_Bmp(Compress, Inverse, 144, 69, Electricity_Hundred);
		}

		if ((Refresh) || (VoltageRefresh) || (CurrentRefresh) || (SymbolRefresh) || (HourRefresh) || (MinuteRefresh) || (SocRefresh) || (CharVol_ValidRefresh) || (CharCur_ValidRefresh))
		{
			if (MenuData.Language)
			{
				if (BattVolt.Valid)
				{
					GUI_General_Digit_Display(BattVolt.Display_Value, Num_16, 3, 2, ChargeVolDigits16PosX_EN, 156);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 176, 156, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 156, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 156, Number_16_White_Line);
				}

				if (BattCurr.Valid)
				{
					if (BattCurr.Symbol == Positive)
					{
						TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
						GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX_EN, 136);
					}
					else
					{
						if (BattCurr.Display_Value > 99)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_Line);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX_EN, 136);
						}
						else if (BattCurr.Display_Value > 9)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 136, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 2, 1, ChargeCurDigits2PosX_EN, 136);
						}
						else
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 176, 136, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 136, Number_16_White_back);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 1, 0, ChargeCurDigits1PosX_EN, 136);
						}
					}
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 186, 136, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 176, 136, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 167, 136, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 158, 136, Number_16_White_back);
				}

				GUI_General_Digit_Display(Hour, Num_16, 2, 0, ChargeHourDigits16PosX_EN, 196);
				GUI_General_Digit_Display(Minute, Num_16, 2, 0, ChargeMinuteDigits16PosX_EN, 196);
			}
			else
			{
				if (BattVolt.Valid)
				{
					GUI_General_Digit_Display(BattVolt.Display_Value, Num_16, 3, 2, ChargeVolDigits16PosX, 164);
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 163, 164, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 164, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 164, Number_16_White_Line);
				}

				if (BattCurr.Valid)
				{
					if (BattCurr.Symbol == Positive)
					{
						TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
						GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX, 144);
					}
					else
					{
						if (BattCurr.Display_Value > 99)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_Line);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 3, 2, ChargeCurDigits16PosX, 144);
						}
						else if (BattCurr.Display_Value > 9)
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 144, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 2, 1, ChargeCurDigits2PosX, 144);
						}
						else
						{
							TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 144, Number_16_White_Line);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
							TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 144, Number_16_White_back);
							GUI_General_Digit_Display(BattCurr.Display_Value, Num_16, 1, 0, ChargeCurDigits1PosX, 144);
						}
					}
				}
				else
				{
					TFT_LCD_Draw_Bmp(Compress, Inverse, 163, 144, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 154, 144, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 145, 144, Number_16_White_Line);
					TFT_LCD_Draw_Bmp(Compress, Inverse, 136, 144, Number_16_White_back);
				}

				GUI_General_Digit_Display(Hour, Num_16, 2, 0, ChargeHourDigits16PosX, 184);
				GUI_General_Digit_Display(Minute, Num_16, 2, 0, ChargeMinuteDigits16PosX, 184);
			}
			GUI_General_Digit_Display(Soc, Num_14, 3, 2, ChargeSocDigits16PosX, 70);
// delete repeat
#if 1
			switch (Soc / 10)
			{
			case 10:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 144, 87, Charging_Interface_Style);
			case 9:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 138, 87, Charging_Interface_Style);
			case 8:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 132, 87, Charging_Interface_Style);
			case 7:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 126, 87, Charging_Interface_Style);
			case 6:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 120, 87, Charging_Interface_Style);
			case 5:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 114, 87, Charging_Interface_Style);
			case 4:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 108, 87, Charging_Interface_Style);
			case 3:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 102, 87, Charging_Interface_Style);
			case 2:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 96, 87, Charging_Interface_Style);
			case 1:
				TFT_LCD_Draw_Bmp(Compress, Inverse, 90, 87, Charging_Interface_Style);
			case 0:
			default:
				break;
			}
			switch (Soc / 10)
			{
			case 0:
				Clear_Box(90, 87 + 3, 90 + 5, 87 + 21);
			case 1:
				Clear_Box(96, 87 + 3, 96 + 5, 87 + 21);
			case 2:
				Clear_Box(102, 87 + 3, 102 + 5, 87 + 21);
			case 3:
				Clear_Box(108, 87 + 3, 108 + 5, 87 + 21);
			case 4:
				Clear_Box(114, 87 + 3, 114 + 5, 87 + 21);
			case 5:
				Clear_Box(120, 87 + 3, 120 + 5, 87 + 21);
			case 6:
				Clear_Box(126, 87 + 3, 126 + 5, 87 + 21);
			case 7:
				Clear_Box(132, 87 + 3, 132 + 5, 87 + 21);
			case 8:
				Clear_Box(138, 87 + 3, 138 + 5, 87 + 21);
			case 9:
				Clear_Box(144, 87 + 3, 144 + 5, 87 + 21);
			case 10:
			default:
				break;
			}
#endif
		}
	}
}

INT8U GUI_Power;
INT8U ALARMTEST;
void Gui_Display_Service(void) // zh321
{

	ALARMTEST = Popup_Get_Current_Message();
	if (SYS_OPR_STAT_HALT)
	{
		// Clear_Box(0, 0, 239, 319);
		return;
	}

	if (SYS_OPR_STAT_IGN_ON)
	{
		GUI_Power = 1;
		MenuCur = Menu_Get_Current_Cursor_Information();
		GUI_Display_BackGround(); // �̶�������Ϣ��ʾ
		NavigationBar_Mode_Display();

		if (PageInfo.PageType == Page_OTA) // ����
		{
			// GUI_OTA_Display(OTA_Ctrl);
		}
		else if (PageInfo.PageType == Page_Alarm) // ����
		{
			GUI_PopAlarm_Display(PopupAlarm);
		}
		else if (PageInfo.PageType == Page_Menu)
		{
			if ((MenuCur >= MENU_ITEM_Navi_ECU) && (MenuCur <= MENU_ITEM_Navi_Demand))
			{
				NavigationBar_Page_Display();
			}
			else if ((MenuCur >= MENU_ITEM_ECU_AvgELC) && (MenuCur <= MENU_ITEM_ECU_RADAR))
			{
				GUI_DRIVE_INFO_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_TIME) && (MenuCur <= MENU_ITEM_SET_RETURN))
			{
				GUI_Setting_Menu1_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_TIME_CLOCK) && (MenuCur <= MENU_ITEM_SET_TIME_RETURN))
			{
				GUI_Setting_Menu2_Time_Display();
			}
			/*else if ((MenuCur >= MENU_ITEM_SET_TIME_12MODE) && (MenuCur <= MENU_ITEM_SET_TIME_MODE_RETURN))
			{
				GUI_Setting_Menu3_TimeMode_Display();
			}*/
			else if ((MenuCur >= MENU_ITEM_SET_TIME_CLOCK_HOUR) && (MenuCur <= MENU_ITEM_SET_TIME_SET_RETURN))
			{
				GUI_Setting_Menu3_TimeClock_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_OVERSPEED_OPEN) && (MenuCur <= MENU_ITEM_SET_OVERSPEED_RETURN))
			{
				GUI_Setting_Menu2_OveSpd_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_OVERSPEED_CUSTOM_ADJUST) && (MenuCur <= MENU_ITEM_SET_OVERSPEED_CUSTOM_RETURN))
			{
				GUI_Setting_Menu3_OveSpd_Set_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_MAINT_OPEN) && (MenuCur <= MENU_ITEM_SET_MAINT_RETURN))
			{
				GUI_Setting_Menu2_MAINT_Display();
			}
			else if (MenuCur == MENU_ITEM_SET_MAINT_CHECK_RETURN)
			{
				GUI_Setting_Menu3_MAINT_Check_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_CLEAR_TRIP) && (MenuCur <= MENU_ITEM_SET_CLEAR_RETURN))
			{
				GUI_Setting_Menu2_Clear_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_CLEAR_TRIP_YES) && (MenuCur <= MENU_ITEM_SET_CLEAR_TRIP_NO))
			{
				GUI_Setting_Menu3_Clear_Trip_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_CLEAR_DRIVTIME_YES) && (MenuCur <= MENU_ITEM_SET_CLEAR_DRIVTIME_NO))
			{
				GUI_Setting_Menu3_Clear_DriveTime_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_CLEAR_AVGSPD_YES) && (MenuCur <= MENU_ITEM_SET_CLEAR_AVGSPD_NO))
			{
				GUI_Setting_Menu3_Clear_AvgSpd_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_CLEAR_AVGELC_YES) && (MenuCur <= MENU_ITEM_SET_CLEAR_AVGELC_NO))
			{
				GUI_Setting_Menu3_Clear_AvgEcl_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_LANGUAGE_China) && (MenuCur <= MENU_ITEM_SET_LANGUAGE_RETURN))
			{
				GUI_Setting_Menu2_Language_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_TPMS_LEARN_LF) && (MenuCur <= MENU_ITEM_SET_TPMS_LEARN_RR))
			{
				if ((TPMS_Config.F110 == 1) && ((TPMS_Config.F101 == 1) || (TPMS_Config.F101 == 2)))
				{
					GUI_Setting_Menu2_TPMSLearn_Display();
				}
			}
			else if (MenuCur == MENU_ITEM_SET_TPMS_Learning)
			{
				GUI_Setting_Menu3_TPMSLearning_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_TPMS_Learn_TimeOut) && (MenuCur <= MENU_ITEM_SET_TPMS_Learn_Succeed))
			{
				GUI_Setting_Menu4_TPMSLearn_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_IC_ResCheck) && (MenuCur == MENU_ITEM_SET_IC_RETUEN))
			{
				GUI_Setting_Menu2_IC_Check_Display(); // zh321
			}
			else if (MenuCur == MENU_ITEM_SET_IC_ResCheckRet)
			{
				GUI_Setting_Menu3_IC_Res_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_FactoryReset_Confirm1) && (MenuCur <= MENU_ITEM_SET_FactoryReset_Confirm1_Ret))
			{
				GUI_Setting_Menu2_FactoryReset_Display();
			}
			else if ((MenuCur >= MENU_ITEM_SET_FactoryReset_Confirm2) && (MenuCur <= MENU_ITEM_SET_FactoryReset_Confirm2_Ret))
			{
				GUI_Setting_Menu3_FactoryReset_Display();
			}
			else if (MenuCur == MENU_ITEM_Navi_Demand_Alam)
			{
				GUI_Navi_Demand_Alam_Display();
			}
			else
			{
			}

			GUIBackUp.Menu_Cur = MenuCur;
		}
		else
		{
		}
	}
	else // ��15
	{
		if (GUI_Power)
		{
			lcd_init_test();
			TFT_LCD_BUF_Clean();
			Clear_Below();
			Clear_Above();
			GUI_Power = 0;
		}

		if (PageInfo.PageType == Page_Alarm) // ����
		{

			GUI_PopAlarm_Display(PopupAlarm);
		}
		else
		{
			if (DisplayInfor_BackUp.PageType != PageInfo.PageType)
			{
				DisplayInfor_BackUp.PageType = PageInfo.PageType;
				Clear_Middle();
				TFT_LCD_BUF_Clean();
			}
		}
	}
}
