Commit 5cfe1bf4 authored by hu's avatar hu

调整界面显示

parent d8fbf34c
......@@ -7,39 +7,6 @@
.\common\TYW_stdint.h
.\UDS\APP\Common\libhello.h
.\UDS\APP\Common\libhello.a
.\Graphic\GUI_VC66\GUI_VC66_General.c
.\Graphic\GUI_VC66\GUI_VC66_General.h
.\Graphic\GUI_VC66\GUI_VC66_Include.h
.\Graphic\GUI_VC66\GUI_VC66_Usually.c
.\Graphic\GUI_VC66\GUI_VC66_Usually.h
.\Graphic\GUI_VC66\GUI_VC66_Popup.c
.\Graphic\GUI_VC66\GUI_VC66_Popup.h
.\Graphic\GUI_VC66\GUI_VC66_Menu_User.c
.\Graphic\GUI_VC66\GUI_VC66_Menu_User.h
.\Graphic\GUI_VC66\GUI_VC66_Menu_DLR.c
.\Graphic\GUI_VC66\GUI_VC66_Menu_DLR.h
.\Graphic\GUI_VC66\GUI_VC66_Menu_Fty.c
.\Graphic\GUI_VC66\GUI_VC66_Menu_Fty.h
.\Graphic\GUI_VC66\GUI_VC66_AC_AdBule.c
.\Graphic\GUI_VC66\GUI_VC66_AC_AdBule.h
.\Graphic\GUI_VC66\GUI_VC66_AC_TEMP.c
.\Graphic\GUI_VC66\GUI_VC66_AC_TEMP.h
.\Graphic\GUI_VC66\GUI_VC66_AC_WET.c
.\Graphic\GUI_VC66\GUI_VC66_AC_WET.h
.\Graphic\GUI_VC66\GUI_VC66_ADAS.c
.\Graphic\GUI_VC66\GUI_VC66_ADAS.h
.\Graphic\GUI_VC66\GUI_VC66_Date.c
.\Graphic\GUI_VC66\GUI_VC66_Date.h
.\Graphic\GUI_VC66\GUI_VC66_DrivingSupport.c
.\Graphic\GUI_VC66\GUI_VC66_DrivingSupport.h
.\Graphic\GUI_VC66\GUI_VC66_Gear.c
.\Graphic\GUI_VC66\GUI_VC66_Gear.h
.\Graphic\GUI_VC66\GUI_VC66_ODO.c
.\Graphic\GUI_VC66\GUI_VC66_ODO.h
.\Graphic\GUI_VC66\GUI_VC66_Time.c
.\Graphic\GUI_VC66\GUI_VC66_Time.h
.\Graphic\GUI_VC66\GUI_VC66_TRIPA.c
.\Graphic\GUI_VC66\GUI_VC66_TRIPA.h
.\Graphic\GUI\GUI.c
.\Graphic\GUI\GUI.h
.\Graphic\GUI\GUI_Interface.c
......
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
project .intvect 1536
project .text 291052
project .rodata 406279
project .text 290252
project .rodata 408703
project .secinfo 120
project .syscall 6
project .romdata 7717
project .romdata 9029
project .ROM.ramfunc 208
project .ramfunc 208
......@@ -14,7 +14,7 @@ static struct
{
uint8_t Number ;
en_ADBULE_Sta DisplaySta ;
}AdBuleVariable ;
} AdBuleVariable ;
/*-------------------------------------------------------------------------
* Function Name : AdBule_KL30_Init
......@@ -80,23 +80,23 @@ void AdBule_Processing_Service(void)
}
else
{
if(Msg_Tank_Level == 0x3C)
if (Msg_Tank_Level == 0x3C)
{
u8Number = 5u;
}
else if(Msg_Tank_Level == 0x1C)
else if (Msg_Tank_Level == 0x1C)
{
u8Number = 4u;
}
else if(Msg_Tank_Level == 0x0C)
else if (Msg_Tank_Level == 0x0C)
{
u8Number = 3u;
}
else if(Msg_Tank_Level == 0x04)
else if (Msg_Tank_Level == 0x04)
{
u8Number = 2u;
}
else if(Msg_Tank_Level == 0x02)
else if (Msg_Tank_Level == 0x02)
{
u8Number = 1u;
}
......@@ -105,11 +105,11 @@ void AdBule_Processing_Service(void)
u8Number = 0u;
}
if(Msg_Level_blinking == 0x03)
if (Msg_Level_blinking == 0x03)
{
u8DisplaySta = ADBULE_LED_3HZ_FLASH ;
}
else if(Msg_Level_blinking == 0x01)
else if (Msg_Level_blinking == 0x01)
{
u8DisplaySta = ADBULE_LED_1HZ_FLASH ;
}
......@@ -151,5 +151,3 @@ en_ADBULE_Sta AdBule_Get_Display_Sta(void)
u8Result = AdBuleVariable.DisplaySta;
return u8Result;
}
\ No newline at end of file
......@@ -26,8 +26,7 @@ typedef enum
{
GEAR_MANUAL_OFF = 0 ,
GEAR_MANUAL_ON ,
}en_GEAR_Sta ;
} en_GEAR_Sta ;
void Gear_KL30_Init(void);
void Gear_KL15_ON_Init(void);
......
......@@ -20,7 +20,6 @@
#include "Common_Interface.h"
#include "System_Monitor.h"
#include "Flash_synchronizer.h"
#include "GUI_VC66_Include.h"
#include "Popups.h"
#include "Data_Fuel_User.h"
......@@ -61,7 +60,7 @@ void GUI_Display_KL15_OFF_Init(void)
--------------------------------------------------------------------------*/
void GUI_Display_background(void)
{
GUI_General_Display(WET_Sprite, ditu, GUI_BLENDMODE_CUSTOM);
GUI_General_Display(WET_Sprite, ditu_1, GUI_BLENDMODE_CUSTOM);
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_OftenShow_Group
......@@ -69,27 +68,665 @@ void GUI_Display_background(void)
* Input : None
* Output : None
* Return : None
* onther : 常显功能界面均放在此处
* onther : 常显功能界面均放在此处 此处显示区域 1 2 3 8
--------------------------------------------------------------------------*/
void GUI_Display_OftenShow_Group(void)
void GUI_OftenShow_Display(void)
{
Gui_Display_AC_AdBule();
Gui_Display_AC_TEMP();
Gui_Display_AC_WET();
Gui_Display_ADAS();
Gui_Display_Date();
Gui_Display_DrivingSupport();
Gui_Display_Gear();
Gui_Display_ODO();
Gui_Display_Time();
Gui_Display_TRIPA();
GUI_AC_Temp_Dispaly(GUI_DISP_MODE_BLANK);
GUI_Time_Dispaly(GUI_DISP_MODE_NORMAL);
GUI_Data_Dispaly(GUI_DISP_MODE_NORMAL);
GUI_TFTTelltales_Display(GUI_DISP_MODE_NORMAL);
GUI_WetGas_Dispaly(GUI_DISP_MODE_NORMAL);
GUI_AdBlue_Dispaly(GUI_DISP_MODE_NORMAL);
Gui_ODO_Display(GUI_DISP_MODE_NORMAL);
if (1)
{
Gui_TRIPA_Display(GUI_DISP_MODE_NORMAL);
}
else
{
Gui_TRIPB_Display(GUI_DISP_MODE_NORMAL);
}
GUI_Dynamic_DIsplay();
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_UsuallyConv
* Description : 通常显示选择
* Function Name : GUI_Dynamic_DIsplay
* Description : 常显界面
* Input : None
* Output : None
* Return : None
* onther : None
* onther :
--------------------------------------------------------------------------*/
void GUI_Dynamic_DIsplay(void)
{
Gui_ADAS_Display(GUI_DISP_MODE_NORMAL);
Gui_DrivingSupport_Display(GUI_DISP_MODE_NORMAL);
Gui_Gear_Display(GUI_DISP_MODE_NORMAL);
}
/*-------------------------------------------------------------------------
* Function Name : GUI_AC_Temp_Dispaly
* Description : 室外温度显示
* Input : None
* Output : None
* Return : None
* onther : 区域 8 Temp_Sprite
--------------------------------------------------------------------------*/
void GUI_AC_Temp_Dispaly(uint8_t Mode)
{
uint8_t AC_TEMP_value = 0u;
AC_TEMP_value = 17u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
GUI_General_Display(Temp_Sprite, CN_xiaotianqi, GUI_BLENDMODE_SRC_OVER); /*天气图标*/
GUI_General_Display(Temp_Sprite, CN_shiwaiwendu, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ 室外温度 ”*/
if (1u)
{
GUI_Translate_Display(Temp_Sprite, Nb_12_heng, 207u, 58u, GUI_BLENDMODE_SRC_OVER); /*显示 负号*/
}
else
{
GUI_Translate_Display(Temp_Sprite, SpriteSize, 207u, 58u, GUI_BLENDMODE_SRC_OVER);
}
/*显示 外温 的数值*/
GUI_General_Digit_Display(Temp_Sprite, AC_TEMP_value, Nb_12_0, 2u, 1u, GUI_DISP_AC_TEMP, 48u, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(Temp_Sprite, CN_wendudanwei, GUI_BLENDMODE_SRC_OVER); /*显示 温度单位*/
}
else
{
GUI_General_Display(Temp_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Time_Dispaly
* Description : 时间显示
* Input : None
* Output : None
* Return : None
* onther : 区域 8 Time_Sprite
--------------------------------------------------------------------------*/
void GUI_Time_Dispaly (uint8_t Mode)
{
uint8_t Time_Hours = 0u;
uint8_t Time_Minutes = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
/*时*/
Time_Hours = Get_RTC_HOUR();
if (1) /*24小时*/
{
if (Time_Hours == 0)
{
GUI_General_Digit_Display(Time_Sprite, (Time_Hours + 12u) , Nb_21_0, 2u, 1u, GUI_DISP_Hours , 37, GUI_BLENDMODE_SRC_OVER);
}
else if (Time_Hours > 12u)
{
GUI_General_Digit_Display(Time_Sprite, (Time_Hours - 12u) , Nb_21_0, 2u, 1u, GUI_DISP_Hours , 37, GUI_BLENDMODE_SRC_OVER); //PM
}
else
{
GUI_General_Digit_Display(Time_Sprite, Time_Hours , Nb_21_0, 2u, 1u, GUI_DISP_Hours , 37, GUI_BLENDMODE_SRC_OVER); //AM
}
}
else
{
GUI_General_Digit_Display(Time_Sprite, Time_Hours , Nb_21_0, 2u, 1u, GUI_DISP_Hours , 37, GUI_BLENDMODE_SRC_OVER);/*显示小时*/
}
/*分钟*/
Time_Minutes = Get_RTC_MINUTE();
GUI_General_Digit_Display(Time_Sprite, Time_Minutes, Nb_21_0, 2u, 0u, GUI_DISP_Minutes, 37, GUI_BLENDMODE_SRC_OVER);/*显示分钟*/
if (FLASH_SYNC_1Hz)
{
GUI_Translate_Display(Time_Sprite, Nb_21_maohao, 396u, 45u, GUI_BLENDMODE_SRC_OVER); /*显示冒号*/
}
else
{
GUI_General_Display(Time_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
else
{
GUI_General_Display(Time_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Data_Dispaly
* Description : 日历显示
* Input : None
* Output : None
* Return : None
* onther : 区域 8 Calendar_Sprite
--------------------------------------------------------------------------*/
void GUI_Data_Dispaly (uint8_t Mode)
{
uint16_t Year = 0u;/*年*/
uint8_t Month = 0u;/*月*/
uint8_t Date = 0u;/*日*/
uint8_t Week = 0u;/*星期*/
if (Mode == GUI_DISP_MODE_NORMAL)
{
Year = 2000 + Get_RTC_YEAR();
Month = Get_RTC_MONTH();
Date = Get_RTC_DATE();
Week = Get_RTC_WEEK();
GUI_Translate_Display(Calendar_Sprite, Nb_14_dian, 591u, 64u, GUI_BLENDMODE_SRC_OVER); /*显示年份后面的 “ . ” */
GUI_Translate_Display(Calendar_Sprite, Nb_14_dian, 642u, 64u, GUI_BLENDMODE_SRC_OVER); /*显示月份后面的 “ . ” */
GUI_General_Digit_Display(Calendar_Sprite, Year , Nb_14_0, 4u, 0u, GUI_DISP_Year, 48, GUI_BLENDMODE_SRC_OVER);/*显示年*/
GUI_General_Digit_Display(Calendar_Sprite, Month, Nb_14_0, 2u, 0u, GUI_DISP_Month, 48, GUI_BLENDMODE_SRC_OVER); /*显示月*/
GUI_General_Digit_Display(Calendar_Sprite, Date , Nb_14_0, 2u, 0u, GUI_DISP_Date, 48, GUI_BLENDMODE_SRC_OVER);/*显示日*/
GUI_General_Display(Calendar_Sprite, GUIWedk[Week - 1u], GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(Calendar_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_TFTTelltales_Display
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void GUI_TFTTelltales_Display(uint8_t Mode)
{
if (Mode == GUI_DISP_MODE_NORMAL)
{
if (1)
{
GUI_General_Display(WarningLight_Sprite, CN_Alarm_01, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(WarningLight_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
else
{
GUI_General_Display(WarningLight_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_WetGas_Dispaly
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
uint32_t HYQ_TEST = 3 ;
void GUI_WetGas_Dispaly (uint8_t Mode)
{
uint8_t current_value = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
current_value = HYQ_TEST;
GUI_General_Display(WET_Sprite, CN_qiyafuhaodeng, GUI_BLENDMODE_SRC_OVER); /*气压符号灯。*/
if (current_value <= 17u)
{
GUI_General_Display(WET_Sprite, CN_qiya, GUI_BLENDMODE_SRC_OVER); /*刷长条的气压表框。*/
}
else
{
GUI_General_Display(WET_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
switch (current_value)
{
case 0x11u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x10), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x10u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x0F), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x0Fu :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x0E), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x0Eu :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x0D), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x0Du :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x0C), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x0Cu :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x0B), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x0Bu :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x0A), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x0Au :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x09), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x09u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x08), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x08u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x07), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x07u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x06), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x06u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x05), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x05u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x04), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x04u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x03), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x03u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x02), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x02u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x01), 405u, GUI_BLENDMODE_SRC_OVER);
case 0x01u :
GUI_Translate_Display(WET_Sprite, CN_qiyazouge_01, (145u + 8u * 0x00), 405u, GUI_BLENDMODE_SRC_OVER);
break;
default :
GUI_General_Display(WET_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
break;
}
}
else
{
GUI_General_Display(WET_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*--------------------------------------------------------------------------
* Function Name : GUI_AdBlue_Dispaly
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void GUI_AdBlue_Dispaly (uint8_t Mode)
{
uint8_t current_value = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
current_value = HYQ_TEST;
GUI_General_Display(AdBlue_Sprite, CN_tianlanyefuhaodeng, GUI_BLENDMODE_SRC_OVER);/*AdBlue*/
GUI_General_Display(AdBlue_Sprite, CN_tianlanye, GUI_BLENDMODE_SRC_OVER);/*框*/
switch (current_value)
{
case 0x05u :
GUI_Translate_Display(AdBlue_Sprite, CN_tianlanyezouge_01, (152u + 31u * 0x04u), 450u, GUI_BLENDMODE_SRC_OVER);
case 0x04u :
GUI_Translate_Display(AdBlue_Sprite, CN_tianlanyezouge_01, (152u + 31u * 0x03u), 450u, GUI_BLENDMODE_SRC_OVER);
case 0x03u :
GUI_Translate_Display(AdBlue_Sprite, CN_tianlanyezouge_01, (152u + 31u * 0x02u), 450u, GUI_BLENDMODE_SRC_OVER);
case 0x02u :
GUI_Translate_Display(AdBlue_Sprite, CN_tianlanyezouge_01, (152u + 31u * 0x01u), 450u, GUI_BLENDMODE_SRC_OVER);
case 0x01u :
GUI_Translate_Display(AdBlue_Sprite, CN_tianlanyezouge_01, (152u + 31u * 0x00u), 450u, GUI_BLENDMODE_SRC_OVER);
break;
default :
GUI_General_Display(AdBlue_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
break;
}
}
else
{
GUI_General_Display(AdBlue_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*--------------------------------------------------------------------------
* Function Name : Gui_TRIPA_Display
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void Gui_TRIPA_Display(uint8_t Mode)
{
uint16_t TRIPA_value = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
TRIPA_value = Data_Read_Trip(EM_TRIP_A); /*此处TRIPA_value的值应为仪表显示的值的10倍。*/
GUI_General_Display(TRIP_Sprite, CN_TRIP, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ TRIP ”*/
GUI_General_Display(TRIP_Sprite, CN_TRIP_A, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ A ”*/
GUI_Translate_Display(TRIP_Sprite, Nb_19_dian, 668u, 410u, GUI_BLENDMODE_SRC_OVER); /*显示 小数点*/
/*显示 TRIP A 的数值*/
GUI_General_Digit_Display(TRIP_Sprite, TRIPA_value, Nb_19_0, 5u, 3u, GUI_DISP_TRIPA, 389, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(TRIP_Sprite, CN_TRIP_danwei, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ km ”*/
}
else
{
GUI_General_Display(TRIP_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
void Gui_TRIPB_Display(uint8_t Mode)
{
uint16_t TRIPB_value = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
TRIPB_value = Data_Read_Trip(EM_TRIP_B); /*此处TRIPA_value的值应为仪表显示的值的10倍。*/
GUI_General_Display(TRIP_Sprite, CN_TRIP, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ TRIP ”*/
GUI_General_Display(TRIP_Sprite, CN_TRIP_B, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ B ”*/
GUI_Translate_Display(TRIP_Sprite, Nb_19_dian, 668u, 410u, GUI_BLENDMODE_SRC_OVER); /*显示 小数点*/
/*显示 TRIP B 的数值*/
GUI_General_Digit_Display(TRIP_Sprite, TRIPB_value, Nb_19_0, 5u, 3u, GUI_DISP_TRIPA, 389, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(TRIP_Sprite, CN_TRIP_danwei, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ km ”*/
}
else
{
GUI_General_Display(TRIP_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*--------------------------------------------------------------------------
* Function Name : Gui_ODO_Display
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void Gui_ODO_Display(uint8_t Mode)
{
uint32_t ODO_value = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
ODO_value = (Data_ODO_Read() / 10); /*此处需将ODO函数返回值赋给变量,ODO函数在其他文件中实现。*/
GUI_General_Display(ODO_Sprite, CN_ODO, GUI_BLENDMODE_SRC_OVER); /*显示文/*字 “ ODO ”*/
GUI_General_Display(ODO_Sprite, CN_ODO_danwei, GUI_BLENDMODE_SRC_OVER); /*显示文字 “ km ”*/
GUI_General_Digit_Display(ODO_Sprite, ODO_value, Nb_19_0, 7u, 6u, GUI_DISP_ODO, 425, GUI_BLENDMODE_SRC_OVER);/*显示ODO的数值*/
}
else
{
GUI_General_Display(ODO_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*--------------------------------------------------------------------------
* Function Name : Gui_ADAS_Display
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void Gui_ADAS_Display(uint8_t Mode)
{
uint8_t ADAS_Value = 0u;
uint8_t CanStatus1 = 0u;
uint8_t CanStatus2 = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
if (K_Line_Set.K_Line_LID28 == 0x01)
{
CanStatus1 = CAN_MSG_Status(ID_CanMsg0CF02FA0_Msg_Count);
CanStatus2 = CAN_MSG_Status(ID_CanMsg0CF02F2A_Msg_Count);
if ((CanStatus1 == CAN_SIG_LOST) && (CanStatus2 == CAN_SIG_LOST))
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
else
{
/*刷文字“ADAS”:*/
GUI_General_Display(ADAS_Sprite, CN_ADAS_wenzi, GUI_BLENDMODE_SRC_OVER);
/*刷4个绿色的边框框角:*/
GUI_General_Display(ADAS_Sprite, CN_jiao1, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_jiao2, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_jiao3, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_jiao4, GUI_BLENDMODE_SRC_OVER);
if (1)
{
if (FLASH_SYNC_1Hz)
{
/*车*/
GUI_General_Display(ADAS_Sprite, CN_che_shanshuo, GUI_BLENDMODE_SRC_OVER);
/*道*/
GUI_General_Display(ADAS_Sprite, CN_Road4_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road3_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road2_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road1_shanshuo, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
else if (0)
{
/*车*/
GUI_General_Display(ADAS_Sprite, CN_che, GUI_BLENDMODE_SRC_OVER);
/*道*/
ADAS_Value = 2u;
switch (ADAS_Value)
{
case 4u: GUI_General_Display(ADAS_Sprite, CN_Road4, GUI_BLENDMODE_SRC_OVER);
case 3u: GUI_General_Display(ADAS_Sprite, CN_Road3, GUI_BLENDMODE_SRC_OVER);
case 2u: GUI_General_Display(ADAS_Sprite, CN_Road2, GUI_BLENDMODE_SRC_OVER);
case 1u: GUI_General_Display(ADAS_Sprite, CN_Road1, GUI_BLENDMODE_SRC_OVER);
break;
default :
break;
}
}
else
{
}
}
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
/*左车道线*/
if (FLASH_SYNC_1Hz == 0)
{
GUI_General_Display(ADAS_Sprite, CN_LeftRoad, GUI_BLENDMODE_SRC_OVER);/*绿*/
}
else
{
GUI_General_Display(ADAS_Sprite, CN_LeftRoad_shanshuo, GUI_BLENDMODE_SRC_OVER);/*虚*/
}
/*右车道线*/
if (FLASH_SYNC_1Hz == 0)
{
GUI_General_Display(ADAS_Sprite, CN_RightRoad, GUI_BLENDMODE_SRC_OVER);/*绿*/
}
else
{
GUI_General_Display(ADAS_Sprite, CN_RightRoad_shanshuo, GUI_BLENDMODE_SRC_OVER);/*虚*/
}
/*左叹号*/
if (FLASH_SYNC_1Hz)
{
GUI_Translate_Display(ADAS_Sprite, CN_tanhao1, 125u, 257u, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
/*右叹号*/
if (FLASH_SYNC_1Hz)
{
GUI_Translate_Display(ADAS_Sprite, CN_tanhao1, 339u, 257u, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*--------------------------------------------------------------------------
* Function Name : Gui_DrivingSupport_Display
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void Gui_DrivingSupport_Display(uint8_t Mode)
{
uint8_t Veh_Seep_Value = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
/*定速巡航图标*/
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_SET, GUI_BLENDMODE_SRC_OVER);
//显示km/h,显示设定车速:
GUI_General_Digit_Display(Cruise_Sprite, Veh_Seep_Value, Nb_21_0, 3u, 2u, GUI_DISP_DrivingSupport, 104u, GUI_BLENDMODE_SRC_OVER);/*显示 定速巡航设定车速 的数值*/
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhangdanwei, GUI_BLENDMODE_SRC_OVER); //显示文字 “ km/h ”
}
else
{
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*--------------------------------------------------------------------------
* Function Name : Gui_Gear_Display
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void Gui_Gear_Display(uint8_t Mode)
{
uint8_t Gear_Value = 0u;
uint8_t Manouvering_Mode = 0u;
uint8_t Transmission_Sift_Mode = 0u;
uint8_t Current_Gear = 0u;
uint8_t Temp = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
/*自动挡 EOL设定为ZF变速器*/
if (K_Line_Set.K_Line_LID41 == 0x13u)
{
Manouvering_Mode = Get_ID_18FF8503_Sig_Manouvering_mode();
Transmission_Sift_Mode = Get_ID_18FE4A03_Sig_TransmissionSiftMode1_Indicator();
Current_Gear = Get_ID_18F00503_Sig_Current_Gear();
Temp = Current_Gear - 0x7Eu;
if ((Current_Gear >= 0x7Eu) && (Current_Gear <= 0x89u))
{
if ((Current_Gear == 0x7Eu) && (Manouvering_Mode == 0x01u))
{
GUI_General_Display(Gear_Sprite, CN_dangwei_DM, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(Gear_Sprite, GUIGear[Temp], GUI_BLENDMODE_SRC_OVER);/*1-12*/
}
}
else if (Current_Gear == 0x7Bu)
{
GUI_General_Display(Gear_Sprite, CN_dangwei_R2, GUI_BLENDMODE_SRC_OVER);/*R2*/
}
else if (Current_Gear == 0x7Cu)
{
if (Manouvering_Mode == 0x01u)
{
GUI_General_Display(Gear_Sprite, CN_dangwei_RM, GUI_BLENDMODE_SRC_OVER);/*RM*/
}
else
{
GUI_General_Display(Gear_Sprite, CN_dangwei_R1, GUI_BLENDMODE_SRC_OVER);/*R1*/
}
}
else if (Current_Gear == 0x7Du)
{
if (Transmission_Sift_Mode == 0x01u)
{
if (FLASH_SYNC_1Hz)
{
GUI_General_Display(Gear_Sprite, CN_dangwei_E, GUI_BLENDMODE_SRC_OVER);/*E*/
}
else
{
GUI_General_Display(Gear_Sprite, CN_dangwei_NE, GUI_BLENDMODE_SRC_OVER);/*NE*/
}
}
else
{
GUI_General_Display(Gear_Sprite, CN_dangwei_N, GUI_BLENDMODE_SRC_OVER);/*N*/
}
}
else
{
GUI_General_Display(Gear_Sprite, CN_dangwei_buming, GUI_BLENDMODE_SRC_OVER);/*-*/
}
}
else
{
GUI_General_Display(Gear_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER); /*K未配*/
}
/**/
}
else
{
GUI_General_Display(Gear_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
void GUI_Test_Dispaly (uint8_t Mode)
{
if (Mode == GUI_DISP_MODE_NORMAL)
{
}
else
{
GUI_General_Display(Time_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
//GUI_General_Digit_Display(Time_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
\ No newline at end of file
......@@ -2,17 +2,71 @@
#ifndef GUI_H_
#define GUI_H_
#include "loc_graphics.h"
#include "images.h"
#include "TYW_stdint.h"
static const uint32_t GUIWedk[7u] = {CN_xingqiyi, CN_xingqier, CN_xingqisan, CN_xingqisi, CN_xingqiwu, CN_xingqiliu, CN_xingqiri};
static const uint32_t GUIGear[12u] = {CN_dangwei_01, CN_dangwei_02, CN_dangwei_03, CN_dangwei_04, CN_dangwei_05, CN_dangwei_06,
CN_dangwei_07, CN_dangwei_08, CN_dangwei_09, CN_dangwei_10, CN_dangwei_11, CN_dangwei_12
};
static const uint16_t GUI_DISP_AC_TEMP[2] = {229u, 216u}; /*室外温度数字显示*/
static const uint16_t GUI_DISP_Hours[2] = {370, 349};
static const uint16_t GUI_DISP_Minutes[2] = {428, 406};
static const uint16_t GUI_DISP_Year[4] = {568, 552, 538, 522};
static const uint16_t GUI_DISP_Month[2] = {617, 604};
static const uint16_t GUI_DISP_Date[2] = {669, 653};
static const uint16_t GUI_DISP_TRIPA[5] = {676, 648, 629, 610, 591};/*TRIP*/
static const uint16_t GUI_DISP_ODO[7] = {676, 657, 638, 619, 600, 581, 562};/*ODO*/
static const uint16_t GUI_DISP_DrivingSupport[3] = {481, 459, 436};/*定速巡航*/
extern void GUI_Display_KL15_ON_Init(void);
extern void GUI_Display_KL15_OFF_Init(void);
extern void GUI_Display_background(void);
extern void GUI_Display_OftenShow_Group(void);
extern void GUI_wby_test_Display(void) ;
extern void GUI_Display_background(void); /*刷底图*/
extern void GUI_OftenShow_Display(void);/*常显界面*/
extern void GUI_Dynamic_DIsplay(void);
void GUI_AC_Temp_Dispaly(uint8_t Mode);/*室外温度显示*/
void GUI_Time_Dispaly(uint8_t Mode);/*时间显示*/
void GUI_Data_Dispaly(uint8_t Mode);/*日历显示*/
void GUI_TFTTelltales_Display(uint8_t Mode);/*TFT指示灯*/
void GUI_WetGas_Dispaly(uint8_t Mode);/*wet气压*/
void GUI_AdBlue_Dispaly(uint8_t Mode);/**/
void Gui_TRIPA_Display(uint8_t Mode);
void Gui_TRIPB_Display(uint8_t Mode);
void Gui_ODO_Display(uint8_t Mode);
void Gui_ADAS_Display(uint8_t Mode);
void Gui_DrivingSupport_Display(uint8_t Mode);/*定速巡航*/
void Gui_Gear_Display(uint8_t Mode);/*挡位*/
void GUI_Test_Dispaly (uint8_t Mode);
#endif
......
#include "GUI_VC66_AC_AdBule.h"
#include "Data_AdBule.h"
/*ZH:*/
static uint8_t Logic_Processing(void);
/*尿素显示*/
void Gui_Display_AC_AdBule(void)
{
static uint8_t last_value = 5u;//上次调用本函数时的Logic_Processing()返回值。
uint8_t current_value;//本次调用本函数时的Logic_Processing()返回值。
current_value = Logic_Processing();
switch (current_value)
{
case 0u:{
;
}
break;
case 1u:{
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_01, GUI_BLENDMODE_SRC_OVER);
}
break;
case 2u:{
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_01, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_02, GUI_BLENDMODE_SRC_OVER);
}
break;
case 3u:{
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_01, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_02, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_03, GUI_BLENDMODE_SRC_OVER);
}
break;
case 4u:{
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_01, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_02, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_03, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_04, GUI_BLENDMODE_SRC_OVER);
}
break;
case 5u:{
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_01, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_02, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_03, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_04, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(AdBlue_Sprite, CN_tianlanyezouge_05, GUI_BLENDMODE_SRC_OVER);
}
break;
default:{
;
}
break;
}
GUI_General_Display(AdBlue_Sprite, CN_tianlanye, GUI_BLENDMODE_SRC_OVER);//常显的表框和图标
GUI_General_Display(AdBlue_Sprite, CN_tianlanyefuhaodeng, GUI_BLENDMODE_SRC_OVER);
if (current_value < last_value)//若本次要显示的格数小于上次显示的格数,则清空本次未刷的图。
{
GUI_General_Display(AdBlue_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
else
{
;
}
/******************************************************************************************/
last_value = current_value;//本句 尽可能 放在 本函数体 的结尾位置。
}
uint8_t Logic_Processing(void)
{
uint8_t in_1 = AdBule_Get_Number();
en_ADBULE_Sta in_2 = AdBule_Get_Display_Sta();
uint8_t out;
switch (in_2)
{
case ADBULE_LED_1HZ_FLASH :
{
if (FLASH_SYNC_1Hz)
{
out = in_1;
}
else
{
out = 0u;
}
}
break;
case ADBULE_LED_3HZ_FLASH :
{
if (FLASH_SYNC_2Hz)
{
out = in_1;
}
else
{
out = 0u;
}
}
break;
case ADBULE_LED_ON :
{
out = in_1;
}
break;
case ADBULE_LED_OFF :
{
out = 0u;
}
break;
default :
{
out = 0u;
}
break;
}
return out;
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_AC_ADBULE_H
#define GUI_VC66_AC_ADBULE_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_AC_AdBule(void);
/*:ZH*/
#endif
#include "GUI_VC66_AC_TEMP.h"
/*ZH:*/
/*外温 显示*/
static const uint16_t GUI_DISP_AC_TEMP[2] = {229, 216};
void Gui_Display_AC_TEMP(void)
{
uint8_t AC_TEMP_value = 0u;
AC_TEMP_value = 17u;
GUI_General_Display(Temp_Sprite, CN_xiaotianqi, GUI_BLENDMODE_SRC_OVER); //显示 天气图标
GUI_General_Display(Temp_Sprite, CN_shiwaiwendu, GUI_BLENDMODE_SRC_OVER); //显示文字 “ 室外温度 ”
GUI_General_Display(Temp_Sprite, CN_wendudanwei, GUI_BLENDMODE_SRC_OVER); //显示 温度单位
if (1u)
{
GUI_Translate_Display(Temp_Sprite, Nb_12_heng, 207u, 58u, GUI_BLENDMODE_SRC_OVER); //显示 负号
}
/*显示 外温 的数值*/
GUI_General_Digit_Display(Temp_Sprite, AC_TEMP_value, Nb_12_0, 2u, 1u, GUI_DISP_AC_TEMP, 48, GUI_BLENDMODE_SRC_OVER);
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_AC_TEMP_H
#define GUI_VC66_AC_TEMP_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_AC_TEMP(void);
/*:ZH*/
#endif
#include "GUI_VC66_AC_WET.h"
/*ZH:*/
const uint16_t wet_picture[17] =
{
CN_qiyazouge_01,
CN_qiyazouge_02,
CN_qiyazouge_03,
CN_qiyazouge_04,
CN_qiyazouge_05,
CN_qiyazouge_06,
CN_qiyazouge_07,
CN_qiyazouge_08,
CN_qiyazouge_09,
CN_qiyazouge_10,
CN_qiyazouge_11,
CN_qiyazouge_12,
CN_qiyazouge_13,
CN_qiyazouge_14,
CN_qiyazouge_15,
CN_qiyazouge_16,
CN_qiyazouge_17,
}; // 建立数组存储17个气压格的图片枚举。
static uint8_t Logic_Processing(void);
/*气压 显示*/
void Gui_Display_AC_WET(void)
{
static uint8_t last_value = 18u;//上次调用本函数时的Logic_Processing()返回值。
uint8_t current_value;//本次调用本函数时的Logic_Processing()返回值。
uint8_t i;
current_value = Logic_Processing();
GUI_General_Display(WET_Sprite, CN_qiyafuhaodeng, GUI_BLENDMODE_SRC_OVER); // 刷气压符号灯。
if (current_value > 17u)
{
;//上层数据大于17时,不显示长条的气压表框。
}
else
{
GUI_General_Display(WET_Sprite, CN_qiya, GUI_BLENDMODE_SRC_OVER); // 刷长条的气压表框。
for (i = 0; i < current_value; i++)
{
GUI_General_Display(WET_Sprite, wet_picture[i], GUI_BLENDMODE_SRC_OVER); // current_value 为几,就显示几格气压。
}
}
if (current_value < last_value)//若本次要显示的格数小于上次显示的格数,则清空本次未刷的图。
{
GUI_General_Display(WET_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
else if (current_value > 17u)//若本次要显示的格数 大于或等于18,则清空本次未刷的图。
{
GUI_General_Display(WET_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
else
{
;
}
/******************************************************************************************/
last_value = current_value;//本句 尽可能 放在 本函数体 的结尾位置。
}
uint8_t Logic_Processing(void)
{
uint8_t in_1 = 123u;
uint8_t in_2 = 123u;
uint8_t out;
out = 10u;
return out;
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_AC_WET_H
#define GUI_VC66_AC_WET_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_AC_WET(void);
/*:ZH*/
#endif
#include "GUI_VC66_ADAS.h"
#include "Data_ADAS.h"
/*************************************/
uint8_t zh_processed_value_L = 0u;
/********************************/
/*ZH:*/
/*ADAS显示*/
void Gui_Display_ADAS(void)
{
static uint8_t last_value_M = 0u;//记录上一次的值。
uint8_t current_value_M = 0u;//本次获取的值。
uint8_t processed_value_M = 0u;//经过处理的值。
static uint8_t last_value_L= 0u;//记录上一次的值。
uint8_t current_value_L = 0u;//本次获取的值。
uint8_t processed_value_L = 0u;//经过处理的值。
static uint8_t last_value_R = 0u;//记录上一次的值。
uint8_t current_value_R = 0u;//本次获取的值。
uint8_t processed_value_R = 0u;//经过处理的值。
//刷文字“ADAS”:
GUI_General_Display(ADAS_Sprite, CN_ADAS_wenzi, GUI_BLENDMODE_SRC_OVER);
//刷4个绿色的边框框角:
GUI_General_Display(ADAS_Sprite, CN_jiao1, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_jiao2, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_jiao3, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_jiao4, GUI_BLENDMODE_SRC_OVER);
/********************************************************/
current_value_M = Gui_Get_WorkshopScope_DisplayMode();
if (current_value_M <= 3u)
{
processed_value_M = current_value_M;
last_value_M = current_value_M;
}
else
{
processed_value_M = last_value_M;
}
/********************************************************/
switch (processed_value_M)
{
case 0u:{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//向缓存放入等数量的空图
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 1u:{
GUI_General_Display(ADAS_Sprite, CN_che_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road4_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road3_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road2_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road1_shanshuo, GUI_BLENDMODE_SRC_OVER);
}
break;
case 2u:{
GUI_General_Display(ADAS_Sprite, CN_che_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road4, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road3, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road2, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road1, GUI_BLENDMODE_SRC_OVER);
}
break;
case 3u:{
GUI_General_Display(ADAS_Sprite, CN_che, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road4, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road3, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road2, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_Road1, GUI_BLENDMODE_SRC_OVER);
}
break;
default:{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//向缓存放入等数量的空图
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
}
/****************************************************/
current_value_L = Gui_Get_LDWS_Left_DisplayMode();
if (current_value_L <= 4u)
{
processed_value_L = current_value_L;
last_value_L = current_value_L;
}
else
{
processed_value_L = last_value_L;
}
/****************************************************/
zh_processed_value_L = processed_value_L;
switch (processed_value_L)
{
case 0u:{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//向缓存放入等数量的空图
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 1u:{
if (FLASH_SYNC_1Hz)//1Hz闪烁
{
GUI_General_Display(ADAS_Sprite, CN_LeftRoad_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_RightRoad_shanshuo, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//向缓存放入等数量的空图
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
break;
case 2u:{
GUI_General_Display(ADAS_Sprite, CN_LeftRoad_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 3u:{
GUI_General_Display(ADAS_Sprite, CN_LeftRoad, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 4u:{
if (FLASH_SYNC_2Hz)//2.5Hz闪烁
{
GUI_General_Display(ADAS_Sprite, CN_LeftRoad, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_tanhao1, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
break;
default:{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
}
/*************************************************/
current_value_R = Gui_Get_LDWS_Right_DisplayMode();
if (current_value_R <= 4u)
{
processed_value_R = current_value_R;
last_value_R = current_value_R;
}
else
{
processed_value_R = last_value_R;
}
/*************************************************/
switch (processed_value_R)
{
case 0u:{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 1u:{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 2u:{
GUI_General_Display(ADAS_Sprite, CN_RightRoad_shanshuo, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 3u:{
GUI_General_Display(ADAS_Sprite, CN_RightRoad, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 4u:{
if (FLASH_SYNC_2Hz)//2.5Hz闪烁
{
GUI_General_Display(ADAS_Sprite, CN_RightRoad, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, CN_tanhao2, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
break;
default:{
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(ADAS_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
}
}
#ifndef GUI_VC66_ADAS_H
#define GUI_VC66_ADAS_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_ADAS(void);
/*:ZH*/
#endif
#include "GUI_VC66_Date.h"
#include "RTE_TIME.h"
/*ZH:*/
/*日期和星期 显示*/
static const uint16_t GUI_DISP_Year[4] = {568, 552, 538, 522};
static const uint16_t GUI_DISP_Month[2] = {617, 604};
static const uint16_t GUI_DISP_Date[2] = {669, 653};
typedef enum
{
Monday = 1 , /*星期一*/
Tuesday , /*星期二*/
Wednesday , /*星期三*/
Thursday , /*星期四*/
Friday , /*星期五*/
Saturday , /*星期六*/
Sunday /*星期日*/
} GUI_Day;
void Gui_Display_Date(void)
{
uint16_t Year = 0u;/*年*/
uint8_t Month = 0u;/*月*/
uint8_t Date = 0u;/*日*/
uint8_t Day = 0u;/*星期*/
Year = 2000 + Get_RTC_YEAR();
Month = Get_RTC_MONTH();
Date = Get_RTC_DATE();
Day = Get_RTC_WEEK();
GUI_Translate_Display(Calendar_Sprite, Nb_14_dian, 591u, 64u, GUI_BLENDMODE_SRC_OVER); /*显示年份后面的 “ . ” */
GUI_Translate_Display(Calendar_Sprite, Nb_14_dian, 642u, 64u, GUI_BLENDMODE_SRC_OVER); /*显示月份后面的 “ . ” */
GUI_General_Digit_Display(Calendar_Sprite, Year , Nb_14_0, 4u, 0u, GUI_DISP_Year, 48, GUI_BLENDMODE_SRC_OVER);/*显示年*/
GUI_General_Digit_Display(Calendar_Sprite, Month, Nb_14_0, 2u, 0u, GUI_DISP_Month,48, GUI_BLENDMODE_SRC_OVER);/*显示月*/
GUI_General_Digit_Display(Calendar_Sprite, Date , Nb_14_0, 2u, 0u, GUI_DISP_Date, 48, GUI_BLENDMODE_SRC_OVER);/*显示日*/
switch (Day)
{
case Monday : {
GUI_General_Display(Calendar_Sprite, CN_xingqiyi,GUI_BLENDMODE_SRC_OVER);
}
break;
case Tuesday : {
GUI_General_Display(Calendar_Sprite, CN_xingqier,GUI_BLENDMODE_SRC_OVER);
}
break;
case Wednesday :{
GUI_General_Display(Calendar_Sprite, CN_xingqisan,GUI_BLENDMODE_SRC_OVER);
}
break;
case Thursday : {
GUI_General_Display(Calendar_Sprite, CN_xingqisi,GUI_BLENDMODE_SRC_OVER);
}
break;
case Friday : {
GUI_General_Display(Calendar_Sprite, CN_xingqiwu,GUI_BLENDMODE_SRC_OVER);
}
break;
case Saturday : {
GUI_General_Display(Calendar_Sprite, CN_xingqiliu,GUI_BLENDMODE_SRC_OVER);
}
break;
case Sunday : {
GUI_General_Display(Calendar_Sprite, CN_xingqiri,GUI_BLENDMODE_SRC_OVER);
}
break;
}
}
/*:ZH*/
#ifndef GUI_VC66_DATE_H
#define GUI_VC66_DATE_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_Date(void);
/*:ZH*/
#endif
//*********************************************************************************************************************************
//ZH修改2021年8月26日10:56:49
//*********************************************************************************************************************************
#include "GUI_VC66_DrivingSupport.h"
#include "Data_DrivingSupport.h"
/*ZH:*/
/*驾驶支持 显示*/
static const uint16_t GUI_DISP_DrivingSupport[3] = {481, 459, 436};
static void display(uint8_t number);//定速巡航图标显示函数,根据传入的参数,进行刷图。
void Gui_Display_DrivingSupport(void)
{
static uint8_t Sys_Run_Sta_last_value = 0u;//上一次调用本函数时,SystemRunningState的值(即SystemRunningState的历史值)
uint8_t SystemRunningState = 0u;
uint8_t settingspeed = 0u;
//*************************************************************************************************
SystemRunningState = Gui_Get_SystemRunningState_DisplayMode();//定速巡航_系统运行状态
settingspeed = Gui_Get_SetSpeed_DisplayMode();//设定车速
//*************************************************************************************************
//显示 定速巡航图标区域:
//************************************************
if (SystemRunningState == 2u)
{
display(Sys_Run_Sta_last_value);
}
else
{
display(SystemRunningState);
Sys_Run_Sta_last_value = SystemRunningState;//Gui_Get_SystemRunningState_DisplayMode()函数返回值不为2时,更新Sys_Run_Sta_last_value值。
}
/********************************************************************
显示 设定车速区域:
********************************************************************/
if (settingspeed == 0u)
{
//显示 -- km/h. :
GUI_Translate_Display(SetSpeed_Sprite, Nb_21_hengxian, 455u, 118u, GUI_BLENDMODE_SRC_OVER); //显示 第一个横
GUI_Translate_Display(SetSpeed_Sprite, Nb_21_hengxian, 470u, 118u, GUI_BLENDMODE_SRC_OVER); //显示 第二个横
GUI_General_Display(SetSpeed_Sprite, CN_dingsuxunhangdanwei, GUI_BLENDMODE_SRC_OVER); //显示文字 “ km/h ”
}
else if (settingspeed <= 250u)
{
//显示km/h,显示设定车速:
GUI_General_Digit_Display(SetSpeed_Sprite, settingspeed, Nb_21_0, 3u, 2u, GUI_DISP_DrivingSupport, 104u, GUI_BLENDMODE_SRC_OVER);/*显示 定速巡航设定车速 的数值*/
GUI_General_Display(SetSpeed_Sprite, CN_dingsuxunhangdanwei, GUI_BLENDMODE_SRC_OVER); //显示文字 “ km/h ”
}
else
{
GUI_General_Display(SetSpeed_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
}
/**************************************
函数:
***************************************/
void display(uint8_t number)
{
switch (number)
{
case 0u :
{
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
break;
case 1u :
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
break;
case 3u :
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_SET, GUI_BLENDMODE_SRC_OVER);
}
break;
case 4u :
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang, GUI_BLENDMODE_SRC_OVER);
if (FLASH_SYNC_1Hz)
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_SET, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
}
break;
case 5u :
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_1, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
break;
case 6u :
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_1, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_STANDBY, GUI_BLENDMODE_SRC_OVER);
}
break;
case 7u :
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_1, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_SET, GUI_BLENDMODE_SRC_OVER);
}
break;
case 8u :
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_1, GUI_BLENDMODE_SRC_OVER);
if (FLASH_SYNC_1Hz)
{
GUI_General_Display(Cruise_Sprite, CN_dingsuxunhang_SET, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
}
break;
default :
{
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
GUI_General_Display(Cruise_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
break;
}
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_DRIVINGSUPPORT_H
#define GUI_VC66_DRIVINGSUPPORT_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_DrivingSupport(void);
/*:ZH*/
#endif
#include "GUI_VC66_Gear.h"
#include "Data_Gear.h"
/*ZH:*/
/*档位 显示*/
void Gui_Display_Gear(void)
{
switch (Gui_Get_Gear()) // 显示19种档位
{
case 0u :
{
GUI_General_Display(Gear_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
case 1u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_1, GUI_BLENDMODE_SRC_OVER);
}
break;
case 2u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_2, GUI_BLENDMODE_SRC_OVER);
}
break;
case 3u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_3, GUI_BLENDMODE_SRC_OVER);
}
break;
case 4u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_4, GUI_BLENDMODE_SRC_OVER);
}
break;
case 5u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_5, GUI_BLENDMODE_SRC_OVER);
}
break;
case 6u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_6, GUI_BLENDMODE_SRC_OVER);
}
break;
case 7u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_7, GUI_BLENDMODE_SRC_OVER);
}
break;
case 8u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_8, GUI_BLENDMODE_SRC_OVER);
}
break;
case 9u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_9, GUI_BLENDMODE_SRC_OVER);
}
break;
case 10u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_10, GUI_BLENDMODE_SRC_OVER);
}
break;
case 11u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_11, GUI_BLENDMODE_SRC_OVER);
}
break;
case 12u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_12, GUI_BLENDMODE_SRC_OVER);
}
break;
case 13u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_R2, GUI_BLENDMODE_SRC_OVER);//R2
}
break;
case 14u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_R1, GUI_BLENDMODE_SRC_OVER);//R1
}
break;
case 15u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_N, GUI_BLENDMODE_SRC_OVER);
}
break;
case 16u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_RM, GUI_BLENDMODE_SRC_OVER);
}
break;
case 17u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_DM, GUI_BLENDMODE_SRC_OVER);
}
break;
case 18u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_E, GUI_BLENDMODE_SRC_OVER);
}
break;
case 19u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_NE, GUI_BLENDMODE_SRC_OVER);
}
break;
case 20u :
{
GUI_General_Display(Gear_Sprite, CN_dangwei_buming, GUI_BLENDMODE_SRC_OVER);
}
break;
default :
{
GUI_General_Display(Gear_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
break;
}
if (Gui_Get_Gear_MANUAL())
{
GUI_General_Display(Gear_Sprite, CN_MANUAL, GUI_BLENDMODE_SRC_OVER); // 显示文字 “ MANUAL ”
}
else
{
GUI_General_Display(Gear_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER); // 不显示文字 “ MANUAL ”
}
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_GEAR_H
#define GUI_VC66_GEAR_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_Gear(void);
/*:ZH*/
#endif
#ifndef GUI_VC66_GENERAL_H
#define GUI_VC66_GENERAL_H
#include "TYW_stdint.h"
#include "loc_graphics.h"
#include "images.h"
#include "GUI_Interface.h"
#include "Flash_synchronizer.h"
//=====================================================
//多国语言
//=====================================================
typedef enum
{
CHINESE = 0 ,//中文
ENGLISH ,//英文
JAPANESE ,//日文
RESERVED0 ,
RESERVED1 ,
}en_LANGUAGE ;
#endif
#ifndef GUI_VC66_INCLUDE_H
#define GUI_VC66_INCLUDE_H
/*-----------------------------------------------------------------------------
说明: 2021年7月9日11:06:07 wangboyu
包含VC66项目所有刷图功能.包含所有刷图组件头文件,上层仅调用本文件
按组件区分,每个组件完成相关刷图逻辑,逻辑来源为 APP中 Data_XXXXXX.h
每个组件不关注外部调用,默认被调用.需要的通用信息以接口形式处理,不用考虑上掉电这些问题,外部调用会处理.
GUI_VC66_General.h 为通用文件,被各组件调用
非固定通用信息接口说明:
①上电时间
②下电时间
③闪烁标志
④菜单信息
⑤多国语言接口
固定通用信息接口:
①.使能
②.
③.
接口要求:不可以传入地址,传入立即数.
每个.h文件 应该只暴露一个函数被上层使用.命名格式:Gui_Display_含义
接口顺序及命名要求:
-----------------------------------------------------------------
首位必须为使能位 1 - 正常应用 0 - 不应用,保持上次状态
-----------------------------------------------------------------
多国语言在GUI_VC66_General.h定义,不能更改.
-----------------------------------------------------------------
==============================================================================*/
//=======================================================================
//================常显信息===============================================
//=======================================================================
//---------------------------------------
//尿素
#include "GUI_VC66_AC_AdBule.h"
//=======================================
//---------------------------------------
//室外温度
#include "GUI_VC66_AC_TEMP.h"
//=======================================
//---------------------------------------
//WET空气计
#include "GUI_VC66_AC_WET.h"
//=======================================
//---------------------------------------
//ADAS
#include "GUI_VC66_ADAS.h"
//=======================================
//---------------------------------------
//日期
#include "GUI_VC66_Date.h"
//=======================================
//---------------------------------------
//驾驶支持
#include "GUI_VC66_DrivingSupport.h"
//=======================================
//---------------------------------------
//大计里程
#include "GUI_VC66_ODO.h"
//=======================================
//---------------------------------------
//TRIPA
#include "GUI_VC66_TRIPA.h"
//=======================================
//---------------------------------------
//时间
#include "GUI_VC66_Time.h"
//=======================================
//---------------------------------------
//档位
#include "GUI_VC66_Gear.h"
//=======================================
//=======================================
//=======================================================================
//================通常显示转换===========================================
//=======================================================================
#include "GUI_VC66_Usually.h"
//=======================================================================
//================弹出信息===============================================
//=======================================================================
#include "GUI_VC66_Popup.h"
//=======================================================================
//================菜单===================================================
//=======================================================================
//---------------------------------------
//用户模式
#include "GUI_VC66_Menu_User.h"
//=======================================
//---------------------------------------
//经销商模式
#include "GUI_VC66_Menu_DLR.h"
//=======================================
//---------------------------------------
//工厂模式
#include "GUI_VC66_Menu_Fty.h"
//=======================================
//---------------------------------------
//=======================================
//---------------------------------------
//=======================================
//---------------------------------------
//=======================================
//---------------------------------------
//=======================================
#endif
#include "GUI_VC66_Menu_DLR.h"
#include "GUI_VC66_Menu_DLR.h"
\ No newline at end of file
#ifndef GUI_VC66_MENU_DLR_H
#define GUI_VC66_MENU_DLR_H
#include "TYW_stdint.h"
#endif
#include "GUI_VC66_Menu_Fty.h"
#include "GUI_VC66_General.h"
\ No newline at end of file
#ifndef GUI_VC66_MENU_FTY_H
#define GUI_VC66_MENU_FTY_H
#include "TYW_stdint.h"
#endif
#ifndef GUI_VC66_MENU_USER_H
#define GUI_VC66_MENU_USER_H
#include "TYW_stdint.h"
extern void GUI_Display_Menu_Item(uint8_t Cursor, uint8_t Language);
#endif
#include "GUI_VC66_ODO.h"
#include "Services_Mileage.h"
/*ZH:*/
/*ODO 显示*/
static const uint16_t GUI_DISP_ODO[7] = {676, 657, 638, 619, 600, 581, 562};
void Gui_Display_ODO(void)
{
uint32_t ODO_value = 0u;
ODO_value = (Data_ODO_Read()/10); //此处需将ODO函数返回值赋给变量,ODO函数在其他文件中实现。
GUI_General_Display(ODO_Sprite, CN_ODO, GUI_BLENDMODE_SRC_OVER); //显示文字 “ ODO ”
GUI_General_Display(ODO_Sprite, CN_ODO_danwei, GUI_BLENDMODE_SRC_OVER); //显示文字 “ km ”
GUI_General_Digit_Display(ODO_Sprite, ODO_value, Nb_19_0, 7u, 6u, GUI_DISP_ODO, 425, GUI_BLENDMODE_SRC_OVER);/*显示ODO的数值*/
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_ODO_H
#define GUI_VC66_ODO_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_ODO(void);
/*:ZH*/
#endif
#include "GUI_VC66_Popup.h"
#include "GUI_VC66_General.h"
#include "Popup_Message_List.h"
#include "Popup_Scheduler.h"
#include "Popups.h"
//---------------------------------------------------------
//wangboyu 2021年8月25日15:13:52
//---------------------------------------------------------
//347
//---------------------------------------------------------
//弹出报警显示
//---------------------------------------------------------
static void Popups_Displaying(uint8_t PopupMsg);
static void GUI_General_Popup_Display(uint16_t PopupMsg);
static void GUI_Torque_Speed_Popup_Display(void);
static void GUI_AdBule_anomaly_Popup_Display(void);
typedef struct
{
uint16_t Background ; //背景
uint16_t Image ; //图片
uint16_t firstText[3u] ; //文字1
uint16_t secondText[3u] ; //文字2
}GUIGeneralPopupStruct ;
/*************************************************************************************************************
报警显示表
*************************************************************************************************************/
static const GUIGeneralPopupStruct GUIGeneralPopupTable[] =
{
{/*00 紧急警报-刹车*/
CN_Alarm_01_image ,
SpriteSize ,
{CN_Alarm_01_wenzi1,CN_Alarm_01_wenzi1 ,CN_Alarm_01_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*01 紧急警报-紧急制动*/
CN_Alarm_01_image ,
SpriteSize ,
{CN_Alarm_01_wenzi4 ,CN_Alarm_01_wenzi4 ,CN_Alarm_01_wenzi4 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*02 车间距警报-刹车(红字)*/
CN_Alarm_01_imageblack ,
SpriteSize ,
{CN_Alarm_01_wenzi2,CN_Alarm_01_wenzi2 ,CN_Alarm_01_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*03 车间距警报-碰撞报警*/
CN_Alarm_01_imageblack ,
SpriteSize ,
{CN_Alarm_01_wenzi5,CN_Alarm_01_wenzi5 ,CN_Alarm_01_wenzi5 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*04 车间距警报-刹车(黄字)*/
CN_Alarm_01_imageblack ,
SpriteSize ,
{CN_Alarm_01_wenzi3,CN_Alarm_01_wenzi3 ,CN_Alarm_01_wenzi3 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*05 ASR工作*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_04_image ,
{CN_Alarm_drive_04_wenzi ,CN_Alarm_drive_04_wenzi ,CN_Alarm_drive_04_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
/**2**/
{/*06 PTO紧急警报-刹车*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_05_image ,
{CN_Alarm_drive_05_wenzi,CN_Alarm_drive_05_wenzi ,CN_Alarm_drive_05_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*07 忘记松手刹车*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_06_image ,
{CN_Alarm_drive_06_wenzi,CN_Alarm_drive_06_wenzi ,CN_Alarm_drive_06_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*08 遥控调整车辆高度(有车速)*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_10_image ,
{CN_Alarm_drive_10_wenzi,CN_Alarm_drive_10_wenzi ,CN_Alarm_drive_10_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
/**3**/
{/*09 自动巡航模式*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_12_image ,
{CN_Alarm_drive_12_wenzi,CN_Alarm_drive_12_wenzi ,CN_Alarm_drive_12_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*10 可变SLD 模式*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_14_image ,
{CN_Alarm_drive_14_wenzi ,CN_Alarm_drive_14_wenzi ,CN_Alarm_drive_14_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
/**4**/
{/*11 充电异常(系统检测)*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_2_image ,
{CN_Alarm_TST_1_wenzi,CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*12 油压(系统检测)*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_1_image ,
{CN_Alarm_TST_1_wenzi,CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*13 AMT初始化异常*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_3_image ,
{CN_Alarm_TST_3_wenzi1,CN_Alarm_TST_3_wenzi1 ,CN_Alarm_TST_3_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*14 尿素品质异常(系统检测)*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_5_image ,
{CN_Alarm_TST_1_wenzi,CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*15 尿素喷射异常(系统检测)*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_6_image ,
{CN_Alarm_TST_1_wenzi,CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*16 尿素水补给(系统检测)*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_7_image ,
{CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*17 AMT初始化结束*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_4_image ,
{CN_Alarm_TST_4_wenzi1,CN_Alarm_TST_4_wenzi1 ,CN_Alarm_TST_4_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*18 DPD自动再生*/
CN_Alarm_01_imageblack ,
CN_Alarm_TST_8_image ,
{CN_Alarm_TST_1_wenzi,CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
/**5**/
{/*19 过热(过热,请在安全的场所停车)*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_1_image ,
{CN_Alarm_G5_1_wenzi1 ,CN_Alarm_G5_1_wenzi1 ,CN_Alarm_G5_1_wenzi1 },
{CN_Alarm_G5_1_wenzi2 ,CN_Alarm_G5_1_wenzi2 ,CN_Alarm_G5_1_wenzi2 },
},
{/*20 过热(冷却液温度过高)*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_1_image ,
{CN_Alarm_G5_1_wenzi3 ,CN_Alarm_G5_1_wenzi3 ,CN_Alarm_G5_1_wenzi3 },
{CN_Alarm_G5_1_wenzi4 ,CN_Alarm_G5_1_wenzi4 ,CN_Alarm_G5_1_wenzi4 },
},
{/*21 冷却水(冷却液不足)*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_2_image ,
{CN_Alarm_G5_2_image2 ,CN_Alarm_G5_2_image2 ,CN_Alarm_G5_2_image2 },
{CN_Alarm_G5_2_wenzi1 ,CN_Alarm_G5_2_wenzi1 ,CN_Alarm_G5_2_wenzi1 },
},
{/*22 冷却水(冷却水不足)*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_2_image ,
{CN_Alarm_G5_2_wenzi ,CN_Alarm_G5_2_wenzi ,CN_Alarm_G5_2_wenzi },
{CN_Alarm_G5_2_wenzi2 ,CN_Alarm_G5_2_wenzi2 ,CN_Alarm_G5_2_wenzi2 },
},
{/*23 油压(机油)请在安全场所停车*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_3_mage ,
{CN_Alarm_G5_3_wenzi1 ,CN_Alarm_G5_3_wenzi1 ,CN_Alarm_G5_3_wenzi1 },
{CN_Alarm_G5_3_wenzi4 ,CN_Alarm_G5_3_wenzi4 ,CN_Alarm_G5_3_wenzi4 },
},
{/*24 油压异常*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_3_mage ,
{CN_Alarm_G5_3_wenzi3 ,CN_Alarm_G5_3_wenzi3 ,CN_Alarm_G5_3_wenzi3 },
{CN_Alarm_G5_3_wenzi2 ,CN_Alarm_G5_3_wenzi2 ,CN_Alarm_G5_3_wenzi2 },
},
{/*25 仪表故障-请在安全场所停车*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_4_image ,
{CN_Alarm_G5_4_wenzi1 ,CN_Alarm_G5_4_wenzi1 ,CN_Alarm_G5_4_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*26 仪表故障-请与五十铃公司联系*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_4_image ,
{CN_Alarm_G5_4_wenzi2 ,CN_Alarm_G5_4_wenzi2 ,CN_Alarm_G5_4_wenzi2 },
{CN_Alarm_G5_4_wenzi3 ,CN_Alarm_G5_4_wenzi3 ,CN_Alarm_G5_4_wenzi3 },
},
{/*27 通信系统-请在安全场所停车*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_5_image ,
{CN_Alarm_G5_5_wenzi1 ,CN_Alarm_G5_5_wenzi1 ,CN_Alarm_G5_5_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*28 通信系统-请与五十铃公司联系*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_5_image ,
{CN_Alarm_G5_5_wenzi2 ,CN_Alarm_G5_5_wenzi2 ,CN_Alarm_G5_5_wenzi2 },
{CN_Alarm_G5_5_wenzi3 ,CN_Alarm_G5_5_wenzi3 ,CN_Alarm_G5_5_wenzi3 },
},
{/*29 车速限制-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_6_image ,
{CN_Alarm_G5_6_wenzi1 ,CN_Alarm_G5_6_wenzi1 ,CN_Alarm_G5_6_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*30 车速限制-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_6_image ,
{CN_Alarm_G5_6_wenzi2 ,CN_Alarm_G5_6_wenzi2 ,CN_Alarm_G5_6_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*31 扭矩限制-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_7_image ,
{CN_Alarm_G5_7_wenzi1 ,CN_Alarm_G5_7_wenzi1 ,CN_Alarm_G5_7_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*32 扭矩限制-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_7_image ,
{CN_Alarm_G5_7_wenzi2 ,CN_Alarm_G5_7_wenzi2 ,CN_Alarm_G5_7_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*33 扭矩限制、车速限制 交互 显示*/
SpriteSize ,
SpriteSize ,
{SpriteSize,SpriteSize ,SpriteSize },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*34 尿素品质异常-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_89_image ,
{CN_Alarm_G5_89_iwenzi4 ,CN_Alarm_G5_89_iwenzi4 ,CN_Alarm_G5_89_iwenzi4 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*35 尿素品质异常-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_89_image ,
{CN_Alarm_G5_89_iwenzi1 ,CN_Alarm_G5_89_iwenzi1 ,CN_Alarm_G5_89_iwenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*36 临界排放故障-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_89_image ,
{CN_Alarm_G5_89_iwenzi3 ,CN_Alarm_G5_89_iwenzi3 ,CN_Alarm_G5_89_iwenzi3 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*37 临界排放故障-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_89_image ,
{CN_Alarm_G5_89_iwenzi2 ,CN_Alarm_G5_89_iwenzi2 ,CN_Alarm_G5_89_iwenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*38 AMT异常-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_10_11_image ,
{CN_Alarm_G5_10_11_wenzi1 ,CN_Alarm_G5_10_11_wenzi1 ,CN_Alarm_G5_10_11_wenzi1 },
{CN_Alarm_G5_10_11_wenzi5 ,CN_Alarm_G5_10_11_wenzi5 ,CN_Alarm_G5_10_11_wenzi5 },
},
{/*39 AMT异常-请重启发动机*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_10_11_image ,
{CN_Alarm_G5_10_11_wenzi5 ,CN_Alarm_G5_10_11_wenzi5 ,CN_Alarm_G5_10_11_wenzi5 },
{CN_Alarm_G5_10_11_wenzi4 ,CN_Alarm_G5_10_11_wenzi4 ,CN_Alarm_G5_10_11_wenzi4 },
},
{/*40 AMT异常(气压低下)-图1*///*注意这里,文字颜色应为黄色,试刷黑色*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_10_11_image ,
{CN_Alarm_G5_10_11_wenzi2 ,CN_Alarm_G5_10_11_wenzi2 ,CN_Alarm_G5_10_11_wenzi2 },
{SpriteSize ,SpriteSize ,SpriteSize },
},
{/*41 AMT异常(气压低下)-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_10_11_image ,
{CN_Alarm_G5_10_11_wenzi3 ,CN_Alarm_G5_10_11_wenzi3 ,CN_Alarm_G5_10_11_wenzi3 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*42 低圧警報-轮胎漏气警告*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_wenzi1 ,CN_Alarm_G5_12__25_wenzi1 ,CN_Alarm_G5_12__25_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*43 同——42*///有无车速无差异
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_wenzi1 ,CN_Alarm_G5_12__25_wenzi1 ,CN_Alarm_G5_12__25_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*44 尿素补给-补充尿素溶液-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_13_14__image ,
{CN_Alarm_G5_13_14_weizhi5 ,CN_Alarm_G5_13_14_weizhi5 ,CN_Alarm_G5_13_14_weizhi5 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*45 尿素补给-补充尿素溶液-图2*//*注意这里实际该为黑字黄底,实际刷黄白底*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_13_14__image ,
{CN_Alarm_G5_13_14__wenzi2 ,CN_Alarm_G5_13_14__wenzi2 ,CN_Alarm_G5_13_14__wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*46 尿素余量少-有车速-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_13_14__image ,
{CN_Alarm_G5_13_14_wenzi ,CN_Alarm_G5_13_14_wenzi ,CN_Alarm_G5_13_14_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*47 尿素余量少-无车速-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_13_14__image ,
{CN_Alarm_G5_13_14__wenzi1 ,CN_Alarm_G5_13_14__wenzi1 ,CN_Alarm_G5_13_14__wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*48 低圧警報(低下)*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_wenzi2 ,CN_Alarm_G5_12__25_wenzi2 ,CN_Alarm_G5_12__25_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*49 同——50*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_wenzi2 ,CN_Alarm_G5_12__25_wenzi2 ,CN_Alarm_G5_12__25_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*50 摄像头有污染-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_16_image ,
{CN_Alarm_G5_16_wenzi1 ,CN_Alarm_G5_16_wenzi1 ,CN_Alarm_G5_16_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*51 摄像头有污染-请与五十铃公司联系*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_16_image ,
{CN_Alarm_G5_16_wenzi2 ,CN_Alarm_G5_16_wenzi2 ,CN_Alarm_G5_16_wenzi2 },
{CN_Alarm_G5_16_wenzi3 ,CN_Alarm_G5_16_wenzi3 ,CN_Alarm_G5_16_wenzi3 },
},
{/*52 尿素喷射异常(停止)-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image2 ,
{CN_Alarm__G5_17_18_21_wenzi1 ,CN_Alarm__G5_17_18_21_wenzi1 ,CN_Alarm__G5_17_18_21_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*53 尿素喷射异常(停止)-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image2 ,
{CN_Alarm__G5_17_18_21_wenzi2 ,CN_Alarm__G5_17_18_21_wenzi2 ,CN_Alarm__G5_17_18_21_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*54 尿素喷射异常(消耗量)-图1*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12_23_image ,
{CN_Alarm__G5_17_18_21_wenzi3 ,CN_Alarm__G5_17_18_21_wenzi3 ,CN_Alarm__G5_17_18_21_wenzi3 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*55 尿素喷射异常(消耗量)-图2*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12_23_image ,
{CN_Alarm__G5_17_18_21_wenzi5 ,CN_Alarm__G5_17_18_21_wenzi5 ,CN_Alarm__G5_17_18_21_wenzi5 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*56 高圧警報-轮胎高压警告*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_weizhi8 ,CN_Alarm_G5_12__25_weizhi8 ,CN_Alarm_G5_12__25_weizhi8 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*57 高温警報-轮胎高温警告*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_weizhi9 ,CN_Alarm_G5_12__25_weizhi9 ,CN_Alarm_G5_12__25_weizhi9 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*58 尿素喷射异常(停止、消耗量)交互显示*/
SpriteSize ,
SpriteSize ,
{SpriteSize,SpriteSize ,SpriteSize },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*59 DPD手动再生要求1-DPD需要再生*/
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image2 ,
{CN_Alarm_G5_12_23_wenzi2 ,CN_Alarm_G5_12_23_wenzi2 ,CN_Alarm_G5_12_23_wenzi2 },
{CN_Alarm__G5_17_18_21_wenzi4 ,CN_Alarm__G5_17_18_21_wenzi4 ,CN_Alarm__G5_17_18_21_wenzi4 },
},
{/*60 DPD手动再生要求1-请按下DPD开关*/
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image2 ,
{CN_Alarm_G5_12_23_wenzi1 ,CN_Alarm_G5_12_23_wenzi1 ,CN_Alarm_G5_12_23_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*61 DPD手动再生要求2-DPD需要再生*/
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image2 ,
{CN_Alarm_G5_12_23_wenzi2 ,CN_Alarm_G5_12_23_wenzi2 ,CN_Alarm_G5_12_23_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*62 DPD手动再生要求2-请按下DPD开关*/
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image2 ,
{CN_Alarm_G5_12_23_wenzi1 ,CN_Alarm_G5_12_23_wenzi1 ,CN_Alarm_G5_12_23_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*63 TPMS故障-轮胎监控失败*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_weizhi7 ,CN_Alarm_G5_12__25_weizhi7 ,CN_Alarm_G5_12__25_weizhi7 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*64 TPMS電池低下-轮胎监控传感器电压下降*/
CN_Alarm_01_imageblack ,
CN_Alarm_G5_12__25_image ,
{CN_Alarm_G5_12__25_wenzi6 ,CN_Alarm_G5_12__25_wenzi6 ,CN_Alarm_G5_12__25_wenzi6 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*65 DPD手动再生中*/////////////////这个个空的,占位
CN_Alarm_01_imageblack ,
CN_Alarm_TST_8_image ,
{CN_Alarm_TST_1_wenzi,CN_Alarm_TST_1_wenzi ,CN_Alarm_TST_1_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
/**6**/
{/*66 遥控车辆高度调整中(无车速)*/
CN_Alarm_01_imageblack ,
CN_Alarm_stop_31_image ,
{CN_Alarm_stop_31_wenzi1 ,CN_Alarm_stop_31_wenzi1 ,CN_Alarm_stop_31_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*67 PTO(停车中)*/
CN_Alarm_01_imageblack ,
CN_Alarm_stop_32_image ,
{CN_Alarm_stop_32_wenzi ,CN_Alarm_stop_32_wenzi ,CN_Alarm_stop_32_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
/**7**/
{/*68 充电异常-请在安全的场所停车*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_33_image ,
{CN_Alarm_drive_33_wenzi1 ,CN_Alarm_drive_33_wenzi1 ,CN_Alarm_drive_33_wenzi1 },
{CN_Alarm_drive_33_wenzi2 ,CN_Alarm_drive_33_wenzi2 ,CN_Alarm_drive_33_wenzi2 },
},
{/*69 充电异常-请与五十铃公司联系*/
CN_Alarm_01_imageblack ,
CN_Alarm_stop_36_image ,
{CN_Alarm_stop_36_wenzi1 ,CN_Alarm_stop_36_wenzi1 ,CN_Alarm_stop_36_wenzi1 },
{CN_Alarm_stop_36_wenzi2 ,CN_Alarm_stop_36_wenzi2 ,CN_Alarm_stop_36_wenzi2 },
},
{/*70 AMT異常-AMT异常*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_55_image ,
{CN_Alarm_drive_55_wenzi1_1 ,CN_Alarm_drive_55_wenzi1_1 ,CN_Alarm_drive_55_wenzi1_1 },
{CN_Alarm_drive_55_wenzi1_2 ,CN_Alarm_drive_55_wenzi1_2 ,CN_Alarm_drive_55_wenzi1_2 },
},
{/*71 AMT異常-请联系经销商*/
CN_Alarm_01_imageblack ,
CN_Alarm_stop_55_image ,
{CN_Alarm_stop_55_wenzi1_1 ,CN_Alarm_stop_55_wenzi1_1 ,CN_Alarm_stop_55_wenzi1_1 },
{CN_Alarm_stop_55_wenzi1_2 ,CN_Alarm_stop_55_wenzi1_2 ,CN_Alarm_stop_55_wenzi1_2 },
},
{/*72 补充燃料-油箱单位*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_37_image ,
{CN_Alarm_drive_37_wenzi ,CN_Alarm_drive_37_wenzi ,CN_Alarm_drive_37_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*73 过热-离合器过载*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_56_image ,
{CN_Alarm_drive_56_wenzi1 ,CN_Alarm_drive_56_wenzi1 ,CN_Alarm_drive_56_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*74 过热-选择合适的档位*/
CN_Alarm_01_imageblack ,
CN_Alarm_stop_56_image ,
{CN_Alarm_stop_56_wenzi1_1 ,CN_Alarm_stop_56_wenzi1_1 ,CN_Alarm_stop_56_wenzi1_1 },
{CN_Alarm_stop_56_wenzi1_2 ,CN_Alarm_stop_56_wenzi1_2 ,CN_Alarm_stop_56_wenzi1_2 },
},
{/*75 AMT磨耗-离合器磨损*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_56_image ,
{CN_Alarm_drive_56_wenzi2 ,CN_Alarm_drive_56_wenzi2 ,CN_Alarm_drive_56_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*76 低电压报警*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_39_image ,
{CN_Alarm_drive_39_wenzi1 ,CN_Alarm_drive_39_wenzi1 ,CN_Alarm_drive_39_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*77 过电压报警*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_39_image ,
{CN_Alarm_drive_39_wenzi2 ,CN_Alarm_drive_39_wenzi2 ,CN_Alarm_drive_39_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*78 .DPD自动再生-DPD自动再生中*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_41_image ,
{CN_Alarm_drive_41_wenzi ,CN_Alarm_drive_41_wenzi ,CN_Alarm_drive_41_wenzi },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*79 DPD自动再生-再生将自动完成,不需要操作开关 */
CN_Alarm_01_imageblack ,
CN_Alarm_stop_43_image ,
{CN_Alarm_stop_43_wenzi1 ,CN_Alarm_stop_43_wenzi1 ,CN_Alarm_stop_43_wenzi1 },
{CN_Alarm_stop_43_wenzi2 ,CN_Alarm_stop_43_wenzi2 ,CN_Alarm_stop_43_wenzi2 },
},
/**9**/
{/*80 气压过低-气压过低请注意*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_42_image ,
{CN_Alarm_drive_42_wenzi1 ,CN_Alarm_drive_42_wenzi1 ,CN_Alarm_drive_42_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*81 气压过低-请冲入空气*/
CN_Alarm_01_imageblack ,
CN_Alarm_stop_44_image ,
{CN_Alarm_stop_44_wenzi1_1 ,CN_Alarm_stop_44_wenzi1_1 ,CN_Alarm_stop_44_wenzi1_1 },
{CN_Alarm_stop_44_wenzi1_2 ,CN_Alarm_stop_44_wenzi1_2 ,CN_Alarm_stop_44_wenzi1_2 },
},
{/*82 EBS故障(红)-请在安全的场所停车*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_42_image ,
{CN_Alarm_drive_42_wenzi2_1 ,CN_Alarm_drive_42_wenzi2_1 ,CN_Alarm_drive_42_wenzi2_1 },
{CN_Alarm_drive_42_wenzi2_2 ,CN_Alarm_drive_42_wenzi2_2 ,CN_Alarm_drive_42_wenzi2_2 },
},
{/*83 EBS故障(红)-请与五十铃公司联系*/
CN_Alarm_01_imageblack ,
CN_Alarm_stop_44_image ,
{CN_Alarm_stop_44_wenzi2_1 ,CN_Alarm_stop_44_wenzi2_1 ,CN_Alarm_stop_44_wenzi2_1 },
{CN_Alarm_stop_44_wenzi2_2 ,CN_Alarm_stop_44_wenzi2_2 ,CN_Alarm_stop_44_wenzi2_2 },
},
/**10**/
{/*84 省油耗建议-急加速*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_43_image ,
{CN_Alarm_drive_43_wenzi1 ,CN_Alarm_drive_43_wenzi1 ,CN_Alarm_drive_43_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*85 省油耗建议-急减速*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_43_image ,
{CN_Alarm_drive_43_wenzi2 ,CN_Alarm_drive_43_wenzi2 ,CN_Alarm_drive_43_wenzi2 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*86 省油耗建议-请降低发动机转速*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_43_image ,
{CN_Alarm_drive_43_wenzi3 ,CN_Alarm_drive_43_wenzi3 ,CN_Alarm_drive_43_wenzi3 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{/*87 省油耗建议-请降低发动机转速*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_43_image ,
{CN_Alarm_drive_43_wenzi4 ,CN_Alarm_drive_43_wenzi4 ,CN_Alarm_drive_43_wenzi4 },
{SpriteSize,SpriteSize ,SpriteSize },
},
/**11**/
{/*88 发动机机油&滤清器*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_44_image ,
{CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 },
{CN_Alarm_drive_44_wenzi1_1 ,CN_Alarm_drive_44_wenzi1_1 ,CN_Alarm_drive_44_wenzi1_1 },
},
{/*89 燃油滤清器*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_44_image ,
{CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 },
{CN_Alarm_drive_44_wenzi1_2 ,CN_Alarm_drive_44_wenzi1_2 ,CN_Alarm_drive_44_wenzi1_2 },
},
{/*90 变速箱油*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_44_image ,
{CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 },
{CN_Alarm_drive_44_wenzi1_3 ,CN_Alarm_drive_44_wenzi1_3 ,CN_Alarm_drive_44_wenzi1_3 },
},
{/*91 差速器油*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_44_image ,
{CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 },
{CN_Alarm_drive_44_wenzi1_4 ,CN_Alarm_drive_44_wenzi1_4 ,SpriteSize },
},
{/*92 顺畅系统离合器油*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_44_image ,
{CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 },
{CN_Alarm_drive_44_wenzi1_7 ,CN_Alarm_drive_44_wenzi1_7 ,CN_Alarm_drive_44_wenzi1_7 },
},
{/*93 动力转向液*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_44_image ,
{CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 ,CN_Alarm_drive_44_wenzi1 },
{CN_Alarm_drive_44_wenzi1_5 ,CN_Alarm_drive_44_wenzi1_5 ,CN_Alarm_drive_44_wenzi1_5 },
},
{/*94 更换轮胎・轮胎位置*/
CN_Alarm_01_imageblack ,
CN_Alarm_drive_44_image ,
{CN_Alarm_drive_44_wenzi2 ,CN_Alarm_drive_44_wenzi2 ,CN_Alarm_drive_44_wenzi2 },
{CN_Alarm_drive_44_wenzi2_1 ,CN_Alarm_drive_44_wenzi2_1 ,CN_Alarm_drive_44_wenzi2_1 },
},
};
/*-------------------------------------------------------------------------
* Function Name : GUI_General_Popup
* Description : 报警显示
* Input : None
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
static uint16_t wbyPopupTest = 0 ;
static uint16_t wbyPopupTimer = 0 ;
void GUI_General_Popup(void)
{
uint16_t PopupMsg = 0u;
PopupMsg = Popup_Get_Current_Message();
if(wbyPopupTimer < 100)
{//20s
wbyPopupTimer ++ ;
}
else
{
wbyPopupTimer = 0 ;
if(wbyPopupTest < (POPUP_MSG_NUMBER_TOTAL - 1))
wbyPopupTest ++ ;
else
wbyPopupTest = 0 ;
}
Popups_Displaying(wbyPopupTest);
//Popups_Displaying(PopupMsg);
}
/*-------------------------------------------------------------------------
* Function Name : Popups_Displaying
* Description : 分类弹出信息显示程序
* Input : PopupID:弹出信息名称
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
static void Popups_Displaying(uint8_t PopupMsg)
{
if ( PopupMsg < POPUP_MSG_NUMBER_TOTAL )
{
switch ( PopupMsgAttributeTable [ PopupMsg ].Type )
{
case POPUP_TYPE_GENERAL:
GUI_General_Popup_Display(PopupMsg);
break;
case POPUP_TYPE_TORQUE_SPEED :
GUI_Torque_Speed_Popup_Display();
break;
case POPUP_TYPE_ADBULE_ANOMALY :
GUI_AdBule_anomaly_Popup_Display();
break;
default:
break;
}
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_General_Popup_Display
* Description : 通用弹出信息显示程序
* Input : PopupID:弹出信息名称
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
static void GUI_General_Popup_Display(uint16_t PopupMsg)
{
if (PopupMsg >= POPUP_MSG_NUMBER_TOTAL)
return;
//背景
if(GUIGeneralPopupTable[PopupMsg].Background == CN_Alarm_01_image)
{//只刷红底
GUI_General_Display(MultiPurpose_Sprite, GUIGeneralPopupTable[PopupMsg].Background, GUI_BLENDMODE_CUSTOM);//背景
}
else
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
//图片
if(GUIGeneralPopupTable[PopupMsg].Image == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, GUIGeneralPopupTable[PopupMsg].Image, GUI_BLENDMODE_CUSTOM);//图片
}
//文字1
if(GUIGeneralPopupTable[PopupMsg].firstText[0] == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, GUIGeneralPopupTable[PopupMsg].firstText[0], GUI_BLENDMODE_CUSTOM);//文字
}
//文字2
if(GUIGeneralPopupTable[PopupMsg].secondText[0] == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, GUIGeneralPopupTable[PopupMsg].secondText[0], GUI_BLENDMODE_CUSTOM);//文字
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Torque_Speed_Popup_Display
* Description : 扭矩限制、车速限制 交互显示
* Input : None
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
const static GUIGeneralPopupStruct Torque_Speed_Interaction[2u] =
{
{
CN_Alarm_01_imageblack ,
CN_Alarm_G5_6_image ,
{CN_Alarm_G5_6_wenzi1,CN_Alarm_G5_6_wenzi1 ,CN_Alarm_G5_6_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{
CN_Alarm_01_imageblack ,
CN_Alarm_G5_7_image ,
{CN_Alarm_G5_7_wenzi1,CN_Alarm_G5_7_wenzi1 ,CN_Alarm_G5_7_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
};
static void GUI_Torque_Speed_Popup_Display(void)
{
//背景
//if(Torque_Speed_Interaction[FLASH_SYNC_05Hz].Background == SpriteSize)
//{
// GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
//}
//else
//{
// GUI_General_Display(MultiPurpose_Sprite, Torque_Speed_Interaction[FLASH_SYNC_05Hz].Background, GUI_BLENDMODE_CUSTOM);//背景
//}
//图片
if(Torque_Speed_Interaction[FLASH_SYNC_05Hz].Image == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, Torque_Speed_Interaction[FLASH_SYNC_05Hz].Image, GUI_BLENDMODE_CUSTOM);//图片
}
//文字1
if(Torque_Speed_Interaction[FLASH_SYNC_05Hz].firstText[0] == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, Torque_Speed_Interaction[FLASH_SYNC_05Hz].firstText[0], GUI_BLENDMODE_CUSTOM);//文字1
}
//文字2
if(Torque_Speed_Interaction[FLASH_SYNC_05Hz].secondText[0] == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, Torque_Speed_Interaction[FLASH_SYNC_05Hz].secondText[0], GUI_BLENDMODE_CUSTOM);//文字2
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_AdBule_anomaly_Popup_Display
* Description : 尿素喷射异常(停止、消耗量)交互显示
* Input : None
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
const static GUIGeneralPopupStruct AdBule_anomaly_Interaction[2u] =
{
{
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image ,
{CN_Alarm__G5_17_18_21_wenzi1 ,CN_Alarm__G5_17_18_21_wenzi1 ,CN_Alarm__G5_17_18_21_wenzi1 },
{SpriteSize,SpriteSize ,SpriteSize },
},
{
CN_Alarm_01_imageblack ,
CN_Alarm__G5_17_18_21_image ,
{CN_Alarm__G5_17_18_21_wenzi3 ,CN_Alarm__G5_17_18_21_wenzi3 ,CN_Alarm__G5_17_18_21_wenzi3 },
{SpriteSize,SpriteSize ,SpriteSize },
},
};
static void GUI_AdBule_anomaly_Popup_Display(void)
{
//背景
//if(AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].Background == SpriteSize)
//{
// GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
//}
//else
//{
// GUI_General_Display(MultiPurpose_Sprite, AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].Background, GUI_BLENDMODE_CUSTOM);//背景
//}
//图片
if(AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].Image == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].Image, GUI_BLENDMODE_CUSTOM);//图片
}
//文字1
if(AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].firstText[0] == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].firstText[0], GUI_BLENDMODE_CUSTOM);//文字
}
//文字2
if(AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].secondText[0] == SpriteSize)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
GUI_General_Display(MultiPurpose_Sprite, AdBule_anomaly_Interaction[FLASH_SYNC_05Hz].secondText[0], GUI_BLENDMODE_CUSTOM);//文字
}
}
#ifndef GUI_VC66_POPUP_H
#define GUI_VC66_POPUP_H
#include "TYW_stdint.h"
extern void GUI_General_Popup(void) ;
#endif
#include "GUI_VC66_TRIPA.h"
#include "Services_Mileage.h"
/*ZH:*/
/*TRIP A 显示*/
static const uint16_t GUI_DISP_TRIPA[5] = {676, 648, 629, 610, 591};
void Gui_Display_TRIPA(void)
{
uint16_t TRIPA_value = 0u;
TRIPA_value = Data_Read_Trip(EM_TRIP_A);//此处TRIPA_value的值应为仪表显示的值的10倍。
GUI_General_Display(TRIP_Sprite, CN_TRIP, GUI_BLENDMODE_SRC_OVER); //显示文字 “ TRIP ”
GUI_General_Display(TRIP_Sprite, CN_TRIP_A, GUI_BLENDMODE_SRC_OVER); //显示文字 “ A ”
GUI_General_Display(TRIP_Sprite, CN_TRIP_danwei, GUI_BLENDMODE_SRC_OVER); //显示文字 “ km ”
GUI_Translate_Display(TRIP_Sprite, Nb_19_dian, 668u, 410u, GUI_BLENDMODE_SRC_OVER); /*显示 小数点*/
/*显示 TRIP A 的数值*/
GUI_General_Digit_Display(TRIP_Sprite, TRIPA_value, Nb_19_0, 5u, 3u, GUI_DISP_TRIPA, 389, GUI_BLENDMODE_SRC_OVER);
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_TRIPA_H
#define GUI_VC66_TRIPA_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_TRIPA(void);
/*:ZH*/
#endif
#include "GUI_VC66_Time.h"
#include "RTE_TIME.h"
/*ZH:*/
/*时间显示*/
static const uint16_t GUI_DISP_Hours[2] = {370, 349};
static const uint16_t GUI_DISP_Minutes[2] = {428, 406};
void Gui_Display_Time(void)
{
uint8_t Hours = 0u;
uint8_t Minutes = 0u;
//uint8_t Month = 0u;
//uint8_t Date = 0u;
//uint8_t Year = 0u;
Hours = Get_RTC_HOUR();
Minutes = Get_RTC_MINUTE();
if ((Hours <= 24u) && (Minutes < 60u))
{
GUI_Translate_Display(Time_Sprite, Nb_21_maohao, 396u, 45u, GUI_BLENDMODE_SRC_OVER); /*显示冒号*/
GUI_General_Digit_Display(Time_Sprite, Hours , Nb_21_0, 2u, 1u, GUI_DISP_Hours , 37, GUI_BLENDMODE_SRC_OVER);/*显示小时*/
GUI_General_Digit_Display(Time_Sprite, Minutes, Nb_21_0, 2u, 0u, GUI_DISP_Minutes, 37, GUI_BLENDMODE_SRC_OVER);/*显示分钟*/
}
else
{
GUI_Translate_Display(Time_Sprite, SpriteSize, 396u, 45u, GUI_BLENDMODE_SRC_OVER);/*不显示*/
}
}
/*:ZH*/
\ No newline at end of file
#ifndef GUI_VC66_TIME_H
#define GUI_VC66_TIME_H
#include "GUI_VC66_General.h"
/*ZH:*/
void Gui_Display_Time(void);
/*:ZH*/
#endif
#include "GUI_VC66_Usually.h"
#include "GUI_VC66_General.h"
#include "Data_Voltmeter.h"
#include "CAN_Communication_Matrix.h"
#include "Individual_ECU_Comm.h"
#include "RTE_TIME.h"
//---------------------------------------------------------
//wangboyu 2021年8月3日15:26:38
//---------------------------------------------------------
//344 - 3.3多目的性显示区域
//---------------------------------------------------------
//平均油耗==平均车速==电压计==时段表/计时表==DPD
//---------------------------------------------------------
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_AvrFuelCons
* Description : 平均油耗显示
* Input : 0 - TRIPA 平均油耗 1 - TRIPB 平均油耗
* Output : None
* Return : None
* onther : 3.3.2.1平均油耗/平均车速显示画面
--------------------------------------------------------------------------*/
static const uint16_t AVR_FUEL_CONS_TITLE[4u] = //平均油耗标题
{
CN_Fty_Menu2_04pingjunyouhao ,
CN_Fty_Menu2_04pingjunyouhao ,
CN_Fty_Menu2_04pingjunyouhao ,
CN_Fty_Menu2_04pingjunyouhao ,
};
static const uint16_t GUI_AXISX_AvrFuelCons[4u] = {665,643,610,588};
void GUI_Display_Usually_AvrFuelCons(uint8_t Type)
{
uint32_t Value = 0 ;
GUI_General_Display(MultiPurpose_Sprite, AVR_FUEL_CONS_TITLE[0], GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, CN_Fty_Menu2_04pingjunyouhao_danwei, GUI_BLENDMODE_SRC_OVER);
if(Type == 0)
{
Value = Get_ECU_Data(ID_TripA_AvrFuelCost) ;
}
else
{
Value = Get_ECU_Data(ID_TripB_AvrFuelCost) ;
}
if (CAN_MSG_Status(ID_CanMsg18EF1718_Msg_Count) == CAN_SIG_LOST)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
if(Value > 999)
{
/*小数点显示*/
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_dian,633,248,GUI_BLENDMODE_SRC_OVER);
//'-'
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrFuelCons[0],248,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrFuelCons[1],248,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrFuelCons[2],248,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrFuelCons[3],248,GUI_BLENDMODE_SRC_OVER);
}
else
{
/*小数点显示*/
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_dian,633,248,GUI_BLENDMODE_SRC_OVER);
/*数值显示*/
GUI_General_Digit_Display(MultiPurpose_Sprite, Value, Nb_20_0, 4u, 0u, GUI_AXISX_AvrFuelCons, 228u, GUI_BLENDMODE_SRC_OVER);
}
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_AvrSpeed
* Description : 平均车速显示
* Input : 0 - TRIPA 平均车速 1 - TRIPB 平均车速
* Output : None
* Return : None
* onther : 3.3.2.1平均油耗/平均车速显示画面
--------------------------------------------------------------------------*/
static const uint16_t AVR_SPEED_TITLE[4u] = //平均车速标题
{
CN_Fty_Menu2_04pingjunchesu ,
CN_Fty_Menu2_04pingjunchesu ,
CN_Fty_Menu2_04pingjunchesu ,
CN_Fty_Menu2_04pingjunchesu ,
};
static const uint16_t GUI_AXISX_AvrSpeed[4u] = {665,643,610,588};
void GUI_Display_Usually_AvrSpeed(uint8_t Type)
{
uint32_t Value = 0 ;
GUI_General_Display(MultiPurpose_Sprite, AVR_SPEED_TITLE[0], GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, CN_Fty_Menu2_04pingjunchesu_danwei, GUI_BLENDMODE_SRC_OVER);
if(Type == 0)
{
Value = Get_ECU_Data(ID_TripA_AvrSpeed) ;
}
else
{
Value = Get_ECU_Data(ID_TripB_AvrSpeed) ;
}
if (CAN_MSG_Status(ID_CanMsg18EF1718_Msg_Count) == CAN_SIG_LOST)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
if(Value > 240)
{
/*小数点显示*/
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_dian,633,302,GUI_BLENDMODE_SRC_OVER);
//'-'
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrSpeed[0],302,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrSpeed[1],302,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrSpeed[2],302,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,GUI_AXISX_AvrSpeed[3],302,GUI_BLENDMODE_SRC_OVER);
}
else
{
/*小数点显示*/
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_dian,633,302,GUI_BLENDMODE_SRC_OVER);
/*数值显示*/
GUI_General_Digit_Display(MultiPurpose_Sprite, Value, Nb_20_0, 4u, 0u, GUI_AXISX_AvrSpeed, 282, GUI_BLENDMODE_SRC_OVER);
}
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_VoltMeter
* Description : 电压计显示
* Input : None
* Output : None
* Return : None
* onther : 3.3.2.2电压计显示画面
--------------------------------------------------------------------------*/
static const uint16_t GUI_AXISX_VoltMeter[13u] = {536,553,570,588,605,623,640,657,675,692,710,727,745};
void GUI_Display_Usually_VoltMeter(void)
{
uint8_t i = 0 ;
GUI_General_Display(MultiPurpose_Sprite, CN_dianyaji_H, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, CN_dianyaji_kedu, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, CN_dianyaji_L, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, CN_dianyaji_tubiao, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
if(Get_Voltmeter_Valid())
{
for(i = Gui_Get_Voltmeter_DisplayMode() ; i > 0 ;i --)
{
GUI_Translate_Display(MultiPurpose_Sprite,CN_dianyaji_zouge1,GUI_AXISX_VoltMeter[i - 1],276,GUI_BLENDMODE_SRC_OVER);
}
if(Gui_Get_Voltmeter_DisplayMode() < 13u)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
}
else
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_TimeTable
* Description : 时段表显示
* Input : None
* Output : None
* Return : None
* onther : 3.3.2.4时段表
--------------------------------------------------------------------------*/
static const uint16_t USUALLY_TimeTable_TITLE[4u] = //时段表标题
{
CN_Time_wenzi ,
CN_Time_wenzi ,
CN_Time_wenzi ,
CN_Time_wenzi ,
};
static const uint16_t GUI_AXISX_TimeTable[13u] = {729,697,676,655,634,613,592};
void GUI_Display_Usually_TimeTable(void)
{
uint32_t Value = 0 ;
Value = Get_ID_18FEE518_Sig_Total_Engine_Hours();
GUI_General_Display(MultiPurpose_Sprite, USUALLY_TimeTable_TITLE[0], GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, CN_Time_danwei, GUI_BLENDMODE_SRC_OVER);
if (CAN_MSG_Status(ID_CanMsg18FEE518_Msg_Count) == CAN_SIG_LOST)
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
else
{
if(Value > 0xFAFFFFFF)
{//范围外
//' - '
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,588,232,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,609,232,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,630,232,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,652,232,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,673,232,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_heng,694,232,GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_dian,728,232,GUI_BLENDMODE_SRC_OVER);
}
else
{
Value /= 2 ;//放大10倍
if(Value > 9999999)
{
Value = 9999999 ;
}
/*小数点显示*/
GUI_Translate_Display(MultiPurpose_Sprite, Nb_20_dian,719,241,GUI_BLENDMODE_SRC_OVER);
/*数值显示*/
GUI_General_Digit_Display(MultiPurpose_Sprite, Value, Nb_20_0, 7u, 5u, GUI_AXISX_TimeTable, 221, GUI_BLENDMODE_SRC_OVER);
}
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_Usually_Calendar
* Description : 日历显示
* Input : None
* Output : None
* Return : None
* onther : 3.3.2.5日期/时钟显示的画面
--------------------------------------------------------------------------*/
#define GUI_AXISY_CALENDAR 243
#define GUI_AXISY_TIME 279
#define GUI_AXISX_TIME_COLON 592
#define GUI_AXISY_TIME_COLON 282
static const uint16_t USUALLY_CALENDAR_YEAR[4u] = //年
{
CN_nian ,
CN_nian ,
CN_nian ,
CN_nian ,
};
static const uint16_t GUI_AXISX_YEAR[4u] = {495,477,459,441};
static const uint16_t USUALLY_CALENDAR_MONTH[4u] = //月
{
CN_yue ,
CN_yue ,
CN_yue ,
CN_yue ,
};
static const uint16_t GUI_AXISX_MONTH[2u] = {572,554};
static const uint16_t USUALLY_CALENDAR_DAY[4u] = //日
{
CN_ri ,
CN_ri ,
CN_ri ,
CN_ri ,
};
static const uint16_t GUI_AXISX_DAY[2u] = {648,630};
static const uint16_t GUI_AXISX_HOUR[2u] = {578,560};
static const uint16_t GUI_AXISX_MINUTE[2u] = {623,605};
static const uint16_t USUALLY_CALENDAR_WEEK[7u] = //星期
{
CN_Mon ,
CN_Tue ,
CN_Wed ,
CN_Thu ,
CN_Fri ,
CN_Sat ,
CN_Sun ,
};
void GUI_Display_Usually_Calendar(void)
{
uint8_t Type = 0 ;
uint8_t Valid = 0 ;
uint16_t Year = 0 ;
uint16_t Month = 0 ;
uint16_t Day = 0 ;
uint16_t Hour = 0 ;
uint16_t Minute = 0 ;
uint16_t Week = 0 ;
Year = 2000+ Get_RTC_YEAR() ;
Month = Get_RTC_MONTH() ;
Day = Get_RTC_DATE();
Hour = Get_RTC_HOUR();
Minute = Get_RTC_MINUTE() ;
Week = Get_RTC_WEEK();
if( (Month >= 1)&&(Month <= 12)&&(Day >= 1)&&(Day <= 31)&&(Hour <= 24)&&(Minute <= 60)&&(Week >= 1)&&(Week <= 7) )
{
Valid = 1 ;
}
else
{
Valid = 0 ;
}
if(Valid)
{
if(Type)
{
GUI_General_Display(MultiPurpose_Sprite, CN_AM, GUI_BLENDMODE_SRC_OVER);//AM
}
else
{
GUI_General_Display(MultiPurpose_Sprite, CN_PM, GUI_BLENDMODE_SRC_OVER);//PM
}
GUI_General_Digit_Display(MultiPurpose_Sprite, Year, Nb_17_0, 4u, 0u, GUI_AXISX_YEAR, GUI_AXISY_CALENDAR, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, USUALLY_CALENDAR_YEAR[0], GUI_BLENDMODE_SRC_OVER);//'年'
GUI_General_Digit_Display(MultiPurpose_Sprite, Month, Nb_17_0, 2u, 0u, GUI_AXISX_MONTH, GUI_AXISY_CALENDAR, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, USUALLY_CALENDAR_MONTH[0], GUI_BLENDMODE_SRC_OVER);//'月'
GUI_General_Digit_Display(MultiPurpose_Sprite, Day, Nb_17_0, 2u, 0u, GUI_AXISX_DAY, GUI_AXISY_CALENDAR, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(MultiPurpose_Sprite, USUALLY_CALENDAR_DAY[0], GUI_BLENDMODE_SRC_OVER);//'日'
GUI_General_Display(MultiPurpose_Sprite, CN_kuohao, GUI_BLENDMODE_SRC_OVER);//'()'
GUI_General_Display(MultiPurpose_Sprite, USUALLY_CALENDAR_WEEK[Week - 1], GUI_BLENDMODE_SRC_OVER);
//小时
GUI_General_Digit_Display(MultiPurpose_Sprite, Hour, Nb_17_0, 2u, 0u, GUI_AXISX_HOUR, GUI_AXISY_TIME, GUI_BLENDMODE_SRC_OVER);
//':'
GUI_Translate_Display(MultiPurpose_Sprite, Nb_17_maohao,GUI_AXISX_TIME_COLON,GUI_AXISY_TIME_COLON,GUI_BLENDMODE_SRC_OVER);
//分钟
GUI_General_Digit_Display(MultiPurpose_Sprite, Minute, Nb_17_0, 2u, 0u, GUI_AXISX_MINUTE, GUI_AXISY_TIME, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_DPD
* Description : DPD显示
* Input : 0 - 堆积量 1 - 再生进度
* Output : None
* Return : None
* onther : 3.3.2.3DPD堆积量/再生进度显示画面
--------------------------------------------------------------------------*/
static const uint16_t USUALLY_DPD_GRID[5u] =
{
CN_DPD_zouge1,
CN_DPD_zouge2,
CN_DPD_zouge3,
CN_DPD_zouge4,
CN_DPD_zouge5,
};
void GUI_Display_Usually_DPD(uint8_t Type)
{
uint8_t i = 0 ;
if(Type == 0)
{
GUI_General_Display(MultiPurpose_Sprite, CN_DPD_duijiliang, GUI_BLENDMODE_SRC_OVER);//DPD堆积量
}
else
{
GUI_General_Display(MultiPurpose_Sprite, CN_DPD_zaishengjindu, GUI_BLENDMODE_SRC_OVER);//DPD再生进度
}
GUI_General_Display(MultiPurpose_Sprite, CN_DPD_H, GUI_BLENDMODE_SRC_OVER);//'H'
GUI_General_Display(MultiPurpose_Sprite, CN_DPD_L, GUI_BLENDMODE_SRC_OVER);//'L'
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//清图
for(i = 0 ;i < 5 ;i ++)
{
GUI_General_Display(MultiPurpose_Sprite, USUALLY_DPD_GRID[i], GUI_BLENDMODE_SRC_OVER);
}
}
#ifndef GUI_VC66_USUALLY_H
#define GUI_VC66_USUALLY_H
#include "TYW_stdint.h"
extern void GUI_Display_Usually_AvrFuelCons(uint8_t Type) ;
extern void GUI_Display_Usually_AvrSpeed(uint8_t Type) ;
extern void GUI_Display_Usually_VoltMeter(void) ;
extern void GUI_Display_Usually_TimeTable(void);
extern void GUI_Display_Usually_Calendar(void) ;
extern void GUI_Display_Usually_DPD(uint8_t Type);
#endif
......@@ -211,7 +211,7 @@ void Level1Menu_1Enter(void)
}
void Level1Menu_1Do(void)
{
GUI_Display_OftenShow_Group();
GUI_OftenShow_Display();
}
void Level1Menu_1Exit(void)
{}
......
......@@ -8,7 +8,6 @@
#include "GUI.h"
#include "Services_ODO_User.h" /*清空总计里程函数*/
#include "Menu.h"
#include "GUI_VC66_INCLUDE.h"
uint32_t EnterTimer [ 10 ];
uint8_t UE_EN [ Display_MAX ];
......
......@@ -16,6 +16,7 @@
#include "Emulated_EEPROM.h"
#include "Watchdog.h"
#include "UDS_Common.h"
/*修饰变量static*/
......@@ -317,8 +318,16 @@ int32_t SEGGER_RTT_printf(uint16_t BufferIndex, const char *sFormat, ...)
return 0;
}
/*EOL诊断配置数据转换为仪表配置数据*/
void ReadDTCEOLValue_Meter_K_LINE(void)
{
/*获取所有存储数据*/
ReadDFlashData(EEPROM_BLOCK_EOL_K_LINE, (uint32_t *)&K_Line_Set.Flag, (sizeof(K_Line_Set) / 4u), K_LINE_EOL_InitVal);
}
void K_LINE_EOL_InitVal(void)
{
K_Line_Set.Flag = 0x7AA7A55Au;
K_Line_Set.K_Line_LID20 = 0x00u; /* 00 应对ECE R13 //0:非应对、1:应对 */
K_Line_Set.K_Line_LID21 = 0x00u; /* 00 EBS/ABS //0:无、1:EBS、2:ABS(CAN应对) 3:ABS (CAN非应对) */
K_Line_Set.K_Line_LID22 = 0x00u; /* 00 EVSC //0:无、1:有 */
......@@ -327,7 +336,7 @@ void K_LINE_EOL_InitVal(void)
K_Line_Set.K_Line_LID25 = 0x00u; /* 00 AEBS //0:无、1:有 */
K_Line_Set.K_Line_LID26 = 0x00u; /* 00 ACC //0:无、1:有 */
K_Line_Set.K_Line_LID27 = 0x00u; /* 00 LDWS //0:无、1:有 */
K_Line_Set.K_Line_LID28 = 0x00u; /* 00 车辆间报警 //0:无、1:有 */
K_Line_Set.K_Line_LID28 = 0x01u; /* 01 车辆间报警 //0:无、1:有 */
K_Line_Set.K_Line_LID29 = 0x01u; /* 01 有无巡航 //0:无、1:有 /*初值1*/
K_Line_Set.K_Line_LID2A = 0x00u; /* 00 气悬 //0:Reef、1:Rear air、2:Full air */
K_Line_Set.K_Line_LID2B = 0x00u; /* 00 ISS //0:无、1: eco stop、 2:Idle Stop */
......@@ -352,7 +361,7 @@ void K_LINE_EOL_InitVal(void)
K_Line_Set.K_Line_LID3E = 0x01u; /* 01 预留 //0:胎压功能未匹配 1:匹配 */
K_Line_Set.K_Line_LID3F = 0x00u; /* -- 预留 */
K_Line_Set.K_Line_LID40 = 0x00u; /* 00 发动机种类 */
K_Line_Set.K_Line_LID41 = 0x10u; /* 10 变速器种类&控制 /*初值50*/
K_Line_Set.K_Line_LID41 = 0x13u; /* 50 变速器种类&控制 /*初值50*/
K_Line_Set.K_Line_LID42 = 0x00u; /* 00 驻车管道 /*初值 0*/
K_Line_Set.K_Line_LID43 = 0x82u; /* 82 车型 /*初值44*/
K_Line_Set.K_Line_LID44 = 0xFFu; /* FF 速度警报 /*初值FF*/
......
......@@ -8,6 +8,7 @@ K-LINE下线配置
******************************************************************************/
typedef struct
{
uint32_t Flag ; /*初始化标记位*/
// HEX
uint8_t K_Line_LID20; /* 00 应对ECE R13 //0:非应对、1:应对 */
uint8_t K_Line_LID21; /* 00 EBS/ABS //0:无、1:EBS、2:ABS(CAN应对) 3:ABS (CAN非应对) */
......@@ -125,4 +126,7 @@ void Set_Can18FF5510_FirstRecv_Event(void);
void Set_Can18FF2300_FirstRecv_Event(void);
uint8_t Get_CanFirstRecv_Event(uint8_t ID);
void ReadDTCEOLValue_Meter_K_LINE(void);
void K_LINE_EOL_InitVal(void);
#endif
......@@ -6,7 +6,7 @@
volatile uint8_t g_RTCLeapYear; /*1:LeapYear , 0:Not a leap year*/
volatile RTC_Information_st_t g_stRTCInformation;
static uint8_t Cal_RTC_Week(uint16_t Year,uint8_t Month,uint8_t Day);
static uint8_t Cal_RTC_Week(uint16_t Year, uint8_t Month, uint8_t Day);
/* BCD Convert decimalism*/
/*The valid range of parameters is not judged*/
......@@ -140,9 +140,9 @@ void RTC_Timing_Service(void)
g_stRTCInformation.u8RTCSecond = RTC_BCD_To_Dec(RTCA0SEC);
Week = Cal_RTC_Week(g_stRTCInformation.u8RTCYear,g_stRTCInformation.u8RTCMonth,g_stRTCInformation.u8RTCDayOfMonth);
Week = Cal_RTC_Week(g_stRTCInformation.u8RTCYear, g_stRTCInformation.u8RTCMonth, g_stRTCInformation.u8RTCDayOfMonth);
if(Week)
if (Week)
{
g_stRTCInformation.u8RTCWeek = Week ;
}
......@@ -164,7 +164,7 @@ void RTC_Init(void)
/*计算 星期几*/
static uint8_t Cal_RTC_Week(uint16_t Year,uint8_t Month,uint8_t Day)
static uint8_t Cal_RTC_Week(uint16_t Year, uint8_t Month, uint8_t Day)
{
static uint8_t DefaultWeek = 6 ; //2000.1.1
static uint16_t OldYear = 0 ;
......@@ -175,7 +175,7 @@ static uint8_t Cal_RTC_Week(uint16_t Year,uint8_t Month,uint8_t Day)
uint16_t DiffYear = 0 ;
uint16_t DiffMouth = 0 ;
if((Year != OldYear)||(Month != OldMonth)||(Day != OldDay))
if ((Year != OldYear) || (Month != OldMonth) || (Day != OldDay))
{
OldYear = Year ;
OldMonth = Month ;
......@@ -184,9 +184,9 @@ static uint8_t Cal_RTC_Week(uint16_t Year,uint8_t Month,uint8_t Day)
DiffYear = Year - 0 ;
DiffMouth = Month - 1 ;
while(DiffYear)
while (DiffYear)
{
if(RTC_Determine_Leap_Year((DiffYear - 1)))
if (RTC_Determine_Leap_Year((DiffYear - 1)))
{
DiffDay += 366 ;
}
......@@ -198,9 +198,9 @@ static uint8_t Cal_RTC_Week(uint16_t Year,uint8_t Month,uint8_t Day)
DiffYear -- ;
}
while(DiffMouth)
while (DiffMouth)
{
switch(DiffMouth + 1)
switch (DiffMouth + 1)
{
case 1 :
case 3 :
......@@ -218,7 +218,7 @@ static uint8_t Cal_RTC_Week(uint16_t Year,uint8_t Month,uint8_t Day)
DiffDay += 30 ;
break ;
case 2 :
if(RTC_Determine_Leap_Year(Year))
if (RTC_Determine_Leap_Year(Year))
{
DiffDay += 29 ;
}
......@@ -238,7 +238,7 @@ static uint8_t Cal_RTC_Week(uint16_t Year,uint8_t Month,uint8_t Day)
DiffDay += DefaultWeek ;
if(DiffDay > 7)
if (DiffDay > 7)
{
DiffDay -= 7 ;
}
......
......@@ -10,7 +10,7 @@
/* RTC default time setting */
#ifndef RTC_DEFAULT_TIME
#define RTC_DEFAULT_TIME 1U
#define RTC_DEFAULT_YEAR 13U
#define RTC_DEFAULT_YEAR 21U
#define RTC_DEFAULT_MONTH 1U
#define RTC_DEFAULT_DATE 1U
#define RTC_DEFAULT_HOUR 0U
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -29,6 +29,8 @@ typedef struct
enum SpriteName
{
ditu = 0u,
ditu_1,
ditu_2,
Nb_12_0,
Nb_12_1,
Nb_12_2,
......@@ -74,6 +76,9 @@ enum SpriteName
Nb_15_7,
Nb_15_8,
Nb_15_9,
Nb_15_douhao,
Nb_15_fuhao,
Nb_15_maohao,
Nb_17_0,
Nb_17_1,
Nb_17_2,
......@@ -121,6 +126,18 @@ enum SpriteName
Nb_21_9,
Nb_21_hengxian,
Nb_21_maohao,
CN_Nb_28_0,
CN_Nb_28_1,
CN_Nb_28_2,
CN_Nb_28_3,
CN_Nb_28_4,
CN_Nb_28_5,
CN_Nb_28_6,
CN_Nb_28_7,
CN_Nb_28_8,
CN_Nb_28_9,
CN_Nb_28_dian,
CN_Nb_28_heng,
CN_qiya,
CN_qiyafuhaodeng,
CN_qiyazouge_01,
......@@ -147,18 +164,18 @@ enum SpriteName
CN_tianlanyezouge_03,
CN_tianlanyezouge_04,
CN_tianlanyezouge_05,
CN_dangwei_1,
CN_dangwei_01,
CN_dangwei_02,
CN_dangwei_03,
CN_dangwei_04,
CN_dangwei_05,
CN_dangwei_06,
CN_dangwei_07,
CN_dangwei_08,
CN_dangwei_09,
CN_dangwei_10,
CN_dangwei_11,
CN_dangwei_12,
CN_dangwei_2,
CN_dangwei_3,
CN_dangwei_4,
CN_dangwei_5,
CN_dangwei_6,
CN_dangwei_7,
CN_dangwei_8,
CN_dangwei_9,
CN_dangwei_buming,
CN_dangwei_DM,
CN_dangwei_E,
......@@ -169,6 +186,7 @@ enum SpriteName
CN_dangwei_R2,
CN_dangwei_RM,
CN_MANUAL,
CN_Alarm_01,
CN_ODO,
CN_ODO_danwei,
CN_TRIP,
......@@ -377,386 +395,520 @@ enum SpriteName
CN_dianyaji_zouge7,
CN_dianyaji_zouge8,
CN_dianyaji_zouge9,
CN_DLR_Menu1_01,
CN_DLR_Menu1_01black,
CN_DLR_Menu1_02,
CN_DLR_Menu1_02black,
CN_DLR_Menu1_03,
CN_DLR_Menu1_03black,
CN_DLR_Menu1_04,
CN_DLR_Menu1_04black,
CN_DLR_Menu1_05,
CN_DLR_Menu1_05black,
CN_DLR_Menu1_06,
CN_DLR_Menu1_06black,
CN_DLR_Menu1_07,
CN_DLR_Menu1_07black,
CN_DLR_Menu1_08,
CN_DLR_Menu1_08black,
CN_DLR_Menu1_09,
CN_DLR_Menu1_09black,
CN_DLR_Menu1_10,
CN_DLR_Menu1_10black,
CN_DLR_Menu1_wenzi,
CN_DLR_Menu2_01_01wenzi,
CN_DLR_Menu2_01_02wenzi,
CN_DLR_Menu2_01_03wenzi,
CN_DLR_Menu2_01_04wenzi,
CN_DLR_Menu2_01_wenzi,
CN_DLR_Menu2_02_01wenzi,
CN_DLR_Menu2_02_02wenzi,
CN_DLR_Menu2_02_wenzi,
CN_DLR_Menu2_03wenzi,
CN_DLR_Menu2_03_01wenzi,
CN_DLR_Menu2_03_02wenzi,
CN_DLR_Menu2_03_03wenzi,
CN_DLR_Menu2_04pingjunchesu_danwei,
CN_DLR_Menu2_04pingjunchesu_wenzi,
CN_DLR_Menu2_04pingjunyouhao,
CN_DLR_Menu2_04pingjunyouhao_danwei,
CN_DLR_Menu2_04wenzi,
CN_DLR_Menu2_04_02wenzi,
CN_DLR_Menu2_05wenzi,
CN_DLR_Menu2_05_01wenzi,
CN_DLR_Menu2_06wenzi,
CN_DLR_Menu2_06_01wenzi,
CN_DLR_Menu2_06_02wenzi,
CN_DLR_Menu2_07_01black_1,
CN_DLR_Menu2_07_01black_2,
CN_DLR_Menu2_07_01white_1,
CN_DLR_Menu2_07_01white_2,
CN_DLR_Menu2_07_02wenzi,
CN_DLR_Menu2_07_03wenzi,
CN_DLR_Menu2_07_04wenzi,
CN_DLR_Menu2_07_05wenzi,
CN_DLR_Menu2_07_06wenzi,
CN_DLR_Menu2_07_wenzi,
CN_DLR_Menu2_08_wenzi,
fengexian,
CN_Fty_Menu1_01_wenzi,
CN_Fty_Menu1_02_01_1_wenzi,
CN_Fty_Menu1_02_01_wenzi,
CN_Fty_Menu1_02_02_1_wenzi,
CN_Fty_Menu1_02_02_wenzi,
CN_Fty_Menu1_02_03_1_wenzi,
CN_Fty_Menu1_02_03_wenzi,
CN_Fty_Menu1_02_04_1_wenzi,
CN_Fty_Menu1_02_04_wenzi,
CN_Fty_Menu1_02_05_1_wenzi,
CN_Fty_Menu1_02_05_wenzi,
CN_Fty_Menu1_02_06_1_wenzi,
CN_Fty_Menu1_02_06_wenzi,
CN_Fty_Menu1_02_07_1_wenzi,
CN_Fty_Menu1_02_07_wenzi,
CN_Fty_Menu1_02_08_1_wenzi,
CN_Fty_Menu1_02_08_wenzi,
CN_Fty_Menu1_02_09_1_wenzi,
CN_Fty_Menu1_02_09_wenzi,
CN_Fty_Menu2_01_01wenzi,
CN_Fty_Menu2_01_02_wenzi,
CN_Fty_Menu2_01_03_wenzi,
CN_Fty_Menu2_01_04_wenzi,
CN_ENTER_danjieshu,
CN_ENTER_Gray,
CN_ENTER_jieshu,
CN_ENTER_White,
CN_RETURN_Gray,
CN_RETURN_quxiao,
CN_RETURN_White,
CN_shiwaiwendu,
CN_wendudanwei,
CN_xiaotianqi,
CN_xingqier,
CN_xingqiliu,
CN_xingqiri,
CN_xingqisan,
CN_xingqisi,
CN_xingqiwu,
CN_xingqiyi,
CN_dingsuxunhang,
CN_dingsuxunhangdanwei,
CN_dingsuxunhang_1,
CN_dingsuxunhang_2,
CN_dingsuxunhang_3,
CN_dingsuxunhang_SET,
CN_dingsuxunhang_STANDBY,
CN_ADAS_wenzi,
CN_che,
CN_che_shanshuo,
CN_jiao1,
CN_jiao2,
CN_jiao3,
CN_jiao4,
CN_LeftRoad,
CN_LeftRoad_shanshuo,
CN_RightRoad,
CN_RightRoad_shanshuo,
CN_Road1,
CN_Road1_shanshuo,
CN_Road2,
CN_Road2_shanshuo,
CN_Road3,
CN_Road3_shanshuo,
CN_Road4,
CN_Road4_shanshuo,
CN_tanhao1,
CN_tanhao2,
CN_fengexian,
CN_gundongtiao,
CN_Fty_Menu1_01black,
CN_Fty_Menu1_01grey,
CN_Fty_Menu1_01White,
CN_Fty_Menu1_02black,
CN_Fty_Menu1_02grey,
CN_Fty_Menu1_02White,
CN_Fty_Menu1_03black,
CN_Fty_Menu1_03grey,
CN_Fty_Menu1_03White,
CN_Fty_Menu1_04black,
CN_Fty_Menu1_04grey,
CN_Fty_Menu1_04White,
CN_Fty_Menu1_05black,
CN_Fty_Menu1_05grey,
CN_Fty_Menu1_05White,
CN_Fty_Menu1_06black,
CN_Fty_Menu1_06grey,
CN_Fty_Menu1_06White,
CN_Fty_Menu1_07black,
CN_Fty_Menu1_07grey,
CN_Fty_Menu1_07White,
CN_Fty_Menu1_08black,
CN_Fty_Menu1_08grey,
CN_Fty_Menu1_08White,
CN_Fty_Menu1_09black,
CN_Fty_Menu1_09grey,
CN_Fty_Menu1_09White,
CN_Fty_Menu1_wenzi,
CN_Fty_Menu2_01_1black,
CN_Fty_Menu2_01_1grey,
CN_Fty_Menu2_01_1white,
CN_Fty_Menu2_01_2black,
CN_Fty_Menu2_01_2grey,
CN_Fty_Menu2_01_2white,
CN_Fty_Menu2_01_3black,
CN_Fty_Menu2_01_3grey,
CN_Fty_Menu2_01_3white,
CN_Fty_Menu2_01_4black,
CN_Fty_Menu2_01_4grey,
CN_Fty_Menu2_01_4white,
CN_Fty_Menu2_01_wenzi,
CN_Fty_Menu2_02_01_wenzi,
CN_Fty_Menu2_02_02_wenzi,
CN_Fty_Menu2_02_1,
CN_Fty_Menu2_02_2,
CN_Fty_Menu2_02_3,
CN_Fty_Menu2_02_4,
CN_Fty_Menu2_02_wenzi,
CN_Fty_Menu2_03_01_wenzi,
CN_Fty_Menu2_03_02_wenzi,
CN_Fty_Menu2_03_03_wenzi,
CN_Fty_Menu2_03_1black,
CN_Fty_Menu2_03_1grey,
CN_Fty_Menu2_03_1white,
CN_Fty_Menu2_03_2black,
CN_Fty_Menu2_03_2grey,
CN_Fty_Menu2_03_2white,
CN_Fty_Menu2_03_3,
CN_Fty_Menu2_03_4,
CN_Fty_Menu2_03_5,
CN_Fty_Menu2_03_6,
CN_Fty_Menu2_03_7,
CN_Fty_Menu2_03_wenzi,
CN_Fty_Menu2_04pingjunchesu,
CN_Fty_Menu2_04pingjunchesu_danwei,
CN_Fty_Menu2_04pingjunyouhao,
CN_Fty_Menu2_04pingjunyouhao_danwei,
CN_Fty_Menu2_04_01_wenzi,
CN_Fty_Menu2_04_1,
CN_Fty_Menu2_04_2,
CN_Fty_Menu2_04_wenzi,
CN_Fty_Menu2_05_01_wenzi,
CN_Fty_Menu2_05_1,
CN_Fty_Menu2_05_2,
CN_Fty_Menu2_05_3,
CN_Fty_Menu2_05_wenzi,
CN_Fty_Menu2_06_01_black1,
CN_Fty_Menu2_06_01_black2,
CN_Fty_Menu2_06_01_white1,
CN_Fty_Menu2_06_01_white2,
CN_Fty_Menu2_06_02_wenzi,
CN_Fty_Menu2_06_03_wenzi,
CN_Fty_Menu2_06_04_wenzi,
CN_Fty_Menu2_06_05_wenzi,
CN_Fty_Menu2_06_06_wenzi,
CN_Fty_Menu2_06_wenzi,
CN_Fty_Menu2_06_1black,
CN_Fty_Menu2_06_1grey,
CN_Fty_Menu2_06_1white,
CN_Fty_Menu2_06_chesu,
CN_Fty_Menu2_06_chesudanwei,
CN_Fty_Menu2_06_MENU,
CN_Fty_Menu2_06_youhao,
CN_Fty_Menu2_06_youhaodanwei,
CN_Fty_Menu2_07_1,
CN_Fty_Menu2_07_wenzi,
gundongtiao,
CN_Fty_Menu2_08_00,
CN_Fty_Menu2_08_01,
CN_Fty_Menu2_08_A,
CN_Fty_Menu2_08_B,
CN_Fty_Menu2_08_biaoge,
CN_Fty_Menu2_08_C,
CN_Fty_Menu2_08_D,
CN_Fty_Menu2_08_E,
CN_Fty_Menu2_08_F,
CN_Fty_Menu2_08_FF,
CN_Fty_Menu2_08_H,
CN_Fty_Menu2_08_L,
CN_Fty_Menu2_08_wenzi,
CN_grey_no,
CN_grey_yes,
CN_white_fuwei,
CN_white_jieshu,
CN_white_jieshu_1,
CN_white_no,
CN_white_queding,
CN_white_quxiao,
CN_white_yes,
CN_User_Menu1_01black,
CN_User_Menu1_01grey,
CN_User_Menu1_01white,
CN_User_Menu1_02black,
CN_User_Menu1_02grey,
CN_User_Menu1_02white,
CN_User_Menu1_03black,
CN_User_Menu1_03grey,
CN_User_Menu1_03white,
CN_User_Menu1_04black,
CN_User_Menu1_04grey,
CN_User_Menu1_04white,
CN_User_Menu1_05black,
CN_User_Menu1_05grey,
CN_User_Menu1_05white,
CN_User_Menu1_06black,
CN_User_Menu1_06grey,
CN_User_Menu1_06white,
CN_User_Menu1_wenzi,
CN_User_Menu2_01daisu,
CN_User_Menu2_01jiansu,
CN_User_Menu2_01jiasu,
CN_User_Menu2_01wenzi,
CN_User_Menu2_01xunhang,
CN_User_Menu2_01zonghe,
CN_User_Menu2_01_fengexian,
CN_User_Menu2_01_fenshuxian,
CN_User_Menu2_01_Green,
CN_User_Menu2_01_Red,
CN_User_Menu2_01_xiaGreenge_08,
CN_User_Menu2_01_xiaGreenge_09,
CN_User_Menu2_01_xiaGreenge_10,
CN_User_Menu2_01_xiaRedge_01,
CN_User_Menu2_01_xiaRedge_02,
CN_User_Menu2_01_xiaRedge_03,
CN_User_Menu2_01_xiaYellowge_04,
CN_User_Menu2_01_xiaYellowge_05,
CN_User_Menu2_01_xiaYellowge_06,
CN_User_Menu2_01_xiaYellowge_07,
CN_User_Menu2_01_Yellow,
CN_User_Menu2_02_01black,
CN_User_Menu2_02_01white,
CN_User_Menu2_02_02black,
CN_User_Menu2_02_02white,
CN_User_Menu2_02_03black,
CN_User_Menu2_02_03white,
CN_User_Menu2_02_04black,
CN_User_Menu2_02_04white,
CN_User_Menu2_02_05black,
CN_User_Menu2_02_05white,
CN_User_Menu2_02_06black,
CN_User_Menu2_02_06white,
CN_User_Menu2_02_07black,
CN_User_Menu2_02_07white,
CN_User_Menu2_02_08black,
CN_User_Menu2_02_08white,
CN_User_Menu2_02_09black,
CN_User_Menu2_02_09white,
CN_User_Menu2_01_1black,
CN_User_Menu2_01_1grey,
CN_User_Menu2_01_1white,
CN_User_Menu2_01_2black,
CN_User_Menu2_01_2grey,
CN_User_Menu2_01_2white,
CN_User_Menu2_01_3black,
CN_User_Menu2_01_3grey,
CN_User_Menu2_01_3white,
CN_User_Menu2_01_4black,
CN_User_Menu2_01_4grey,
CN_User_Menu2_01_4white,
CN_User_Menu2_01_5black,
CN_User_Menu2_01_5grey,
CN_User_Menu2_01_5white,
CN_User_Menu2_01_6black,
CN_User_Menu2_01_6grey,
CN_User_Menu2_01_6white,
CN_User_Menu2_01_wenzi,
CN_User_Menu2_02_1black,
CN_User_Menu2_02_1grey,
CN_User_Menu2_02_1white,
CN_User_Menu2_02_2black,
CN_User_Menu2_02_2grey,
CN_User_Menu2_02_2white,
CN_User_Menu2_02_3black,
CN_User_Menu2_02_3grey,
CN_User_Menu2_02_3white,
CN_User_Menu2_02_4black,
CN_User_Menu2_02_4grey,
CN_User_Menu2_02_4white,
CN_User_Menu2_02_5black,
CN_User_Menu2_02_5grey,
CN_User_Menu2_02_5white,
CN_User_Menu2_02_6black,
CN_User_Menu2_02_6grey,
CN_User_Menu2_02_6white,
CN_User_Menu2_02_7black,
CN_User_Menu2_02_7grey,
CN_User_Menu2_02_7white,
CN_User_Menu2_02_8black,
CN_User_Menu2_02_8grey,
CN_User_Menu2_02_8white,
CN_User_Menu2_02_wenzi,
CN_User_Menu2_03wenzi,
CN_User_Menu2_03_01black,
CN_User_Menu2_03_01grey,
CN_User_Menu2_03_01white,
CN_User_Menu2_03_02black,
CN_User_Menu2_03_02grey,
CN_User_Menu2_03_02white,
CN_User_Menu2_03_03black,
CN_User_Menu2_03_03grey,
CN_User_Menu2_03_03white,
CN_User_Menu2_03_04black,
CN_User_Menu2_03_04grey,
CN_User_Menu2_03_04white,
CN_User_Menu2_03_05black,
CN_User_Menu2_03_05grey,
CN_User_Menu2_03_05white,
CN_User_Menu2_03_06black,
CN_User_Menu2_03_06grey,
CN_User_Menu2_03_06white,
CN_User_Menu2_03_07black,
CN_User_Menu2_03_07grey,
CN_User_Menu2_03_07white,
CN_User_Menu2_03_08black,
CN_User_Menu2_03_08grey,
CN_User_Menu2_03_08white,
CN_User_Menu2_03_09black,
CN_User_Menu2_03_09white,
CN_User_Menu2_04wenzi,
CN_User_Menu2_04_01black,
CN_User_Menu2_04_01white,
CN_User_Menu2_04_02black,
CN_User_Menu2_04_02white,
CN_User_Menu2_04_03black,
CN_User_Menu2_04_03white,
CN_User_Menu2_04_04black,
CN_User_Menu2_04_04white,
CN_User_Menu2_04_05black,
CN_User_Menu2_04_05white,
CN_User_Menu2_05wenzi,
CN_User_Menu2_05_01black,
CN_User_Menu2_05_01white,
CN_User_Menu2_05_02black,
CN_User_Menu2_05_02white,
CN_User_Menu2_05_03black,
CN_User_Menu2_05_03white,
CN_User_Menu2_05_04black,
CN_User_Menu2_05_04white,
CN_User_Menu2_05_05black,
CN_User_Menu2_05_05white,
CN_User_Menu2_05_06black,
CN_User_Menu2_05_06white,
CN_User_Menu2_05_07black,
CN_User_Menu2_05_07white,
CN_User_Menu2_05_08black,
CN_User_Menu2_05_08white,
CN_User_Menu2_05_09black,
CN_User_Menu2_05_09white,
CN_User_Menu3_01_01wenzi,
CN_User_Menu3_01_02wenzi,
CN_User_Menu3_01_03wenzi,
CN_User_Menu3_01_04wenzi,
CN_User_Menu3_01_05wenzi,
CN_User_Menu3_01_06wenzi,
CN_User_Menu3_01_07wenzi,
CN_User_Menu3_01_08wenzi,
CN_User_Menu3_01_09wenzi,
CN_User_Menu3_01_10wenzi,
CN_User_Menu3_01_11wenzi,
CN_User_Menu3_01_12wenzi,
CN_User_Menu3_01_13wenzi,
CN_User_Menu3_01_14wenzi,
CN_User_Menu3_01_15wenzi,
CN_User_Menu3_01_16wenzi,
CN_User_Menu3_01_17wenzi,
CN_User_Menu3_01_18wenzi,
CN_User_Menu3_01_19wenzi,
CN_User_Menu3_01_20wenzi,
CN_User_Menu3_01_21wenzi,
CN_User_Menu3_01_22wenzi,
CN_User_Menu3_01_23wenzi,
CN_User_Menu3_01_24wenzi,
CN_User_Menu3_01_ENTER,
CN_User_Menu2_03_wenzi,
CN_User_Menu2_04_10black,
CN_User_Menu2_04_10grey,
CN_User_Menu2_04_10white,
CN_User_Menu2_04_11black,
CN_User_Menu2_04_11grey,
CN_User_Menu2_04_11white,
CN_User_Menu2_04_1black,
CN_User_Menu2_04_1grey,
CN_User_Menu2_04_1white,
CN_User_Menu2_04_2black,
CN_User_Menu2_04_2grey,
CN_User_Menu2_04_2white,
CN_User_Menu2_04_3black,
CN_User_Menu2_04_3grey,
CN_User_Menu2_04_3white,
CN_User_Menu2_04_4black,
CN_User_Menu2_04_4grey,
CN_User_Menu2_04_4white,
CN_User_Menu2_04_5black,
CN_User_Menu2_04_5grey,
CN_User_Menu2_04_5white,
CN_User_Menu2_04_6black,
CN_User_Menu2_04_6grey,
CN_User_Menu2_04_6white,
CN_User_Menu2_04_7black,
CN_User_Menu2_04_7grey,
CN_User_Menu2_04_7white,
CN_User_Menu2_04_8black,
CN_User_Menu2_04_8grey,
CN_User_Menu2_04_8white,
CN_User_Menu2_04_9black,
CN_User_Menu2_04_9grey,
CN_User_Menu2_04_9white,
CN_User_Menu2_04_wenzi,
CN_User_Menu2_05_1black,
CN_User_Menu2_05_1grey,
CN_User_Menu2_05_1white,
CN_User_Menu2_05_2black,
CN_User_Menu2_05_2grey,
CN_User_Menu2_05_2white,
CN_User_Menu2_05_3black,
CN_User_Menu2_05_3grey,
CN_User_Menu2_05_3white,
CN_User_Menu2_05_4black,
CN_User_Menu2_05_4grey,
CN_User_Menu2_05_4white,
CN_User_Menu2_05_wenzi,
CN_User_Menu2_06_1black,
CN_User_Menu2_06_1grey,
CN_User_Menu2_06_1white,
CN_User_Menu2_06_2black,
CN_User_Menu2_06_2grey,
CN_User_Menu2_06_2white,
CN_User_Menu2_06_wenzi,
CN_User_Menu3_01_1,
CN_User_Menu3_01_10,
CN_User_Menu3_01_11,
CN_User_Menu3_01_12,
CN_User_Menu3_01_13,
CN_User_Menu3_01_14,
CN_User_Menu3_01_15,
CN_User_Menu3_01_16,
CN_User_Menu3_01_17,
CN_User_Menu3_01_18,
CN_User_Menu3_01_19,
CN_User_Menu3_01_2,
CN_User_Menu3_01_20,
CN_User_Menu3_01_21,
CN_User_Menu3_01_22,
CN_User_Menu3_01_23,
CN_User_Menu3_01_24,
CN_User_Menu3_01_3,
CN_User_Menu3_01_4,
CN_User_Menu3_01_5,
CN_User_Menu3_01_6,
CN_User_Menu3_01_7,
CN_User_Menu3_01_8,
CN_User_Menu3_01_9,
CN_User_Menu3_01_ERROR,
CN_User_Menu3_01_km,
CN_User_Menu3_01_wenzi,
CN_User_Menu3_02_01wenzi,
CN_User_Menu3_02_02wenzi,
CN_User_Menu3_02_03wenzi,
CN_User_Menu3_02_04wenzi,
CN_User_Menu3_02_05wenzi,
CN_User_Menu3_02_06wenzi,
CN_User_Menu3_02_07wenzi,
CN_User_Menu3_02_08wenzi,
CN_User_Menu3_02_09wenzi,
CN_User_Menu3_02_09wenzi_1,
CN_User_Menu3_02_09wenzi_2,
CN_User_Menu3_02_ENTER,
CN_User_Menu3_02_1,
CN_User_Menu3_02_10,
CN_User_Menu3_02_11,
CN_User_Menu3_02_2,
CN_User_Menu3_02_3,
CN_User_Menu3_02_4,
CN_User_Menu3_02_5,
CN_User_Menu3_02_6,
CN_User_Menu3_02_7,
CN_User_Menu3_02_8,
CN_User_Menu3_02_9,
CN_User_Menu3_02_km,
CN_User_Menu3_02_kuang,
CN_User_Menu3_02_wenzi,
CN_User_Menu3_03_01black1,
CN_User_Menu3_03_01black2,
CN_User_Menu3_03_01white1,
CN_User_Menu3_03_01white2,
CN_User_Menu3_03_02wenzi,
CN_User_Menu3_03_02_fangkuai01,
CN_User_Menu3_03_02_fangkuai02,
CN_User_Menu3_03_02_fangkuai03,
CN_User_Menu3_03_02_fangkuai04,
CN_User_Menu3_03_02_fangkuai05,
CN_User_Menu3_03_02_fangkuai06,
CN_User_Menu3_03_02_fangkuai07,
CN_User_Menu3_03_02_fangkuai08,
CN_User_Menu3_03_02_fangkuai09,
CN_User_Menu3_03_02_fangkuai10,
CN_User_Menu3_03_02_fangkuai11,
CN_User_Menu3_03_02_hengkuaiman,
CN_User_Menu3_03_02_shukuaiman,
CN_User_Menu3_03_03_wenzi,
CN_User_Menu3_03_04_wenzi,
CN_User_Menu3_03_05_fangkuai1,
CN_User_Menu3_03_05_fangkuai2,
CN_User_Menu3_03_05_fangkuai3,
CN_User_Menu3_03_05_fangkuai4,
CN_User_Menu3_03_05_jiantou,
CN_User_Menu3_03_05_wenzi,
CN_User_Menu3_03_05_wenzi_1,
CN_User_Menu3_03_05_wenzi_2,
CN_User_Menu3_03_05_wenzi_3,
CN_User_Menu3_03_05_wenzi_4,
CN_User_Menu3_03_06_kuang1,
CN_User_Menu3_03_06_kuang2,
CN_User_Menu3_03_06_kuang3,
CN_User_Menu3_03_06_nian,
CN_User_Menu3_03_06_ri,
CN_User_Menu3_03_06_yue,
CN_User_Menu3_03_07_01black,
CN_User_Menu3_03_07_01white,
CN_User_Menu3_03_07_02black,
CN_User_Menu3_03_07_02white,
CN_User_Menu3_03_07_03black,
CN_User_Menu3_03_07_03white,
CN_User_Menu3_03_07_04black,
CN_User_Menu3_03_07_04white,
CN_User_Menu3_03_07_05black,
CN_User_Menu3_03_07_05white,
CN_User_Menu3_03_08_wenzi,
CN_User_Menu3_03_09_wenzi,
CN_User_Menu3_03_10_wenzi,
CN_User_Menu3_03_11_01wenzi,
CN_User_Menu3_03_11_02wenzi,
CN_User_Menu3_03_11_wenzi,
CN_User_Menu3_03_12_01wenzi,
CN_User_Menu3_03_12_02wenzi,
CN_User_Menu3_03_12_wenzi,
CN_User_Menu3_03_13_AM,
CN_User_Menu3_03_13_huangkuang,
CN_User_Menu3_03_13_huikuang,
CN_User_Menu3_03_13_maohao,
CN_User_Menu3_03_14_01black,
CN_User_Menu3_03_14_01white,
CN_User_Menu3_03_14_02black,
CN_User_Menu3_03_14_02white,
CN_User_Menu3_03_15_01black,
CN_User_Menu3_03_15_01white,
CN_User_Menu3_03_15_02black,
CN_User_Menu3_03_15_02white,
CN_User_Menu3_03_ENTER,
CN_User_Menu3_03_km_h,
CN_User_Menu3_03_10black,
CN_User_Menu3_03_10white,
CN_User_Menu3_03_11black,
CN_User_Menu3_03_11white,
CN_User_Menu3_03_12,
CN_User_Menu3_03_13,
CN_User_Menu3_03_14,
CN_User_Menu3_03_15,
CN_User_Menu3_03_16,
CN_User_Menu3_03_17black,
CN_User_Menu3_03_17white,
CN_User_Menu3_03_18black,
CN_User_Menu3_03_18white,
CN_User_Menu3_03_19black,
CN_User_Menu3_03_19white,
CN_User_Menu3_03_1black,
CN_User_Menu3_03_1white,
CN_User_Menu3_03_20black,
CN_User_Menu3_03_20white,
CN_User_Menu3_03_21,
CN_User_Menu3_03_22,
CN_User_Menu3_03_23black,
CN_User_Menu3_03_23white,
CN_User_Menu3_03_24black,
CN_User_Menu3_03_24white,
CN_User_Menu3_03_25,
CN_User_Menu3_03_26,
CN_User_Menu3_03_2black,
CN_User_Menu3_03_2white,
CN_User_Menu3_03_3,
CN_User_Menu3_03_4,
CN_User_Menu3_03_5,
CN_User_Menu3_03_6,
CN_User_Menu3_03_7black,
CN_User_Menu3_03_7white,
CN_User_Menu3_03_8black,
CN_User_Menu3_03_8white,
CN_User_Menu3_03_9black,
CN_User_Menu3_03_9white,
CN_User_Menu3_03_AM,
CN_User_Menu3_03_da,
CN_User_Menu3_03_greenkuai,
CN_User_Menu3_03_greykuang,
CN_User_Menu3_03_greykuang_time,
CN_User_Menu3_03_jiantou1,
CN_User_Menu3_03_jiantoushang,
CN_User_Menu3_03_jiantouxia,
CN_User_Menu3_03_kmh,
CN_User_Menu3_03_kuai,
CN_User_Menu3_03_kuang,
CN_User_Menu3_03_rpmm,
CN_User_Menu3_03_man,
CN_User_Menu3_03_nian,
CN_User_Menu3_03_redge,
CN_User_Menu3_03_ri,
CN_User_Menu3_03_rpm,
CN_User_Menu3_03_wenzi,
CN_User_Menu3_04_01km,
CN_User_Menu3_04_01wenzi,
CN_User_Menu3_04_02H,
CN_User_Menu3_04_02wenzi,
CN_User_Menu3_04_03H,
CN_User_Menu3_04_03wenzi,
CN_User_Menu3_04_04L,
CN_User_Menu3_04_04wenzi,
CN_User_Menu3_04_05kmL,
CN_User_Menu3_04_05wenzi,
CN_User_Menu3_04_06kmh,
CN_User_Menu3_04_06wenzi,
CN_User_Menu3_04_wenzi,
CN_ENTER_danjieshu,
CN_ENTER_Gray,
CN_ENTER_jieshu,
CN_ENTER_White,
CN_RETURN_Gray,
CN_RETURN_quxiao,
CN_RETURN_White,
CN_shiwaiwendu,
CN_wendudanwei,
CN_xiaotianqi,
CN_xingqier,
CN_xingqiliu,
CN_xingqiri,
CN_xingqisan,
CN_xingqisi,
CN_xingqiwu,
CN_xingqiyi,
CN_dingsuxunhang,
CN_dingsuxunhangdanwei,
CN_dingsuxunhang_1,
CN_dingsuxunhang_SET,
CN_dingsuxunhang_STANDBY,
CN_ADAS_wenzi,
CN_che,
CN_che_shanshuo,
CN_jiao1,
CN_jiao2,
CN_jiao3,
CN_jiao4,
CN_LeftRoad,
CN_LeftRoad_shanshuo,
CN_RightRoad,
CN_RightRoad_shanshuo,
CN_Road1,
CN_Road1_shanshuo,
CN_Road2,
CN_Road2_shanshuo,
CN_Road3,
CN_Road3_shanshuo,
CN_Road4,
CN_Road4_shanshuo,
CN_tanhao1,
CN_tanhao2,
CN_User_Menu3_03_whitege,
CN_User_Menu3_03_whitekuai,
CN_User_Menu3_03_xiao,
CN_User_Menu3_03_xiao1,
CN_User_Menu3_03_yellowkuang,
CN_User_Menu3_03_yellowkuang_time,
CN_User_Menu3_03_yue,
CN_User_Menu3_03_zhong,
CN_User_Menu3_03_0x12,
CN_User_Menu3_03_0x13,
CN_User_Menu3_03_0x22,
CN_User_Menu3_03_0x23,
CN_User_Menu3_03_0x31,
CN_User_Menu3_03_0x32,
CN_User_Menu3_03_0x33,
CN_User_Menu3_03_0x34,
CN_User_Menu3_03_0x41,
CN_User_Menu3_03_0x42,
CN_User_Menu3_03_0x43,
CN_User_Menu3_03_0x44,
CN_User_Menu3_03_che,
CN_User_Menu3_03_luntai1,
CN_User_Menu3_03_luntai2,
CN_User_Menu3_03_luntai3,
CN_User_Menu3_03_luntai4,
CN_User_Menu3_04_che,
CN_User_Menu3_04_jiantou1,
CN_User_Menu3_04_jiantou2,
CN_User_Menu3_04_kpa,
CN_User_Menu3_04_luntai,
CN_User_Menu3_04_luntai2,
CN_User_Menu3_04_qiya1,
CN_User_Menu3_04_qiya2,
CN_User_Menu3_04_wendu,
CN_User_Menu3_04_wendu1,
CN_User_Menu3_04_wendu2,
CN_DLR_Menu1_01black,
CN_DLR_Menu1_01grey,
CN_DLR_Menu1_01White,
CN_DLR_Menu1_02black,
CN_DLR_Menu1_02grey,
CN_DLR_Menu1_02White,
CN_DLR_Menu1_03black,
CN_DLR_Menu1_03grey,
CN_DLR_Menu1_03White,
CN_DLR_Menu1_04black,
CN_DLR_Menu1_04grey,
CN_DLR_Menu1_04White,
CN_DLR_Menu1_05black,
CN_DLR_Menu1_05grey,
CN_DLR_Menu1_05White,
CN_DLR_Menu1_06black,
CN_DLR_Menu1_06grey,
CN_DLR_Menu1_06White,
CN_DLR_Menu1_07black,
CN_DLR_Menu1_07grey,
CN_DLR_Menu1_07White,
CN_DLR_Menu1_08black,
CN_DLR_Menu1_08grey,
CN_DLR_Menu1_08White,
CN_DLR_Menu1_09black,
CN_DLR_Menu1_09grey,
CN_DLR_Menu1_09White,
CN_DLR_Menu1_10black,
CN_DLR_Menu1_10grey,
CN_DLR_Menu1_10White,
CN_DLR_Menu1_wenzi,
CN_DLR_Menu2_01_1black,
CN_DLR_Menu2_01_1grey,
CN_DLR_Menu2_01_1white,
CN_DLR_Menu2_01_2black,
CN_DLR_Menu2_01_2grey,
CN_DLR_Menu2_01_2white,
CN_DLR_Menu2_01_3black,
CN_DLR_Menu2_01_3grey,
CN_DLR_Menu2_01_3white,
CN_DLR_Menu2_01_4black,
CN_DLR_Menu2_01_4grey,
CN_DLR_Menu2_01_4white,
CN_DLR_Menu2_01_wenzi,
CN_DLR_Menu2_02_1,
CN_DLR_Menu2_02_2,
CN_DLR_Menu2_02_3,
CN_DLR_Menu2_02_4,
CN_DLR_Menu2_02_wenzi,
CN_DLR_Menu2_03_1black,
CN_DLR_Menu2_03_1grey,
CN_DLR_Menu2_03_1white,
CN_DLR_Menu2_03_2black,
CN_DLR_Menu2_03_2grey,
CN_DLR_Menu2_03_2white,
CN_DLR_Menu2_03_3,
CN_DLR_Menu2_03_4,
CN_DLR_Menu2_03_5,
CN_DLR_Menu2_03_6,
CN_DLR_Menu2_03_7,
CN_DLR_Menu2_03_wenzi,
CN_DLR_Menu2_04_1,
CN_DLR_Menu2_04_2,
CN_DLR_Menu2_04_wenzi,
CN_DLR_Menu2_05_1,
CN_DLR_Menu2_05_2,
CN_DLR_Menu2_05_3,
CN_DLR_Menu2_05_wenzi,
CN_DLR_Menu2_06_1,
CN_DLR_Menu2_06_2,
CN_DLR_Menu2_06_wenzi,
CN_DLR_Menu2_07_1black,
CN_DLR_Menu2_07_1grey,
CN_DLR_Menu2_07_1white,
CN_DLR_Menu2_07_chesu,
CN_DLR_Menu2_07_chesudanwei,
CN_DLR_Menu2_07_MENU,
CN_DLR_Menu2_07_youhao,
CN_DLR_Menu2_07_youhaodanwei,
CN_DLR_Menu2_08_1,
CN_DLR_Menu2_08_wenzi,
CN_DLR_Menu2_09_00,
CN_DLR_Menu2_09_01,
CN_DLR_Menu2_09_A,
CN_DLR_Menu2_09_B,
CN_DLR_Menu2_09_biaoge,
CN_DLR_Menu2_09_C,
CN_DLR_Menu2_09_D,
CN_DLR_Menu2_09_E,
CN_DLR_Menu2_09_F,
CN_DLR_Menu2_09_FF,
CN_DLR_Menu2_09_H,
CN_DLR_Menu2_09_L,
CN_DLR_Menu2_09_wenzi,
ziku_0,
SpriteSize
};
......
......@@ -34,7 +34,6 @@ typedef enum
WarningLight_Sprite,//区域3 - 警告灯显示
ADAS_Sprite, //区域4 - ADAS显示
MultiPurpose_Sprite,//区域5 - 多目的性显示区域
SetSpeed_Sprite, //区域6 - 设定车速显示
Cruise_Sprite, //区域6 - 巡航显示
Gear_Sprite, //区域7 - 档位显示
Temp_Sprite, //区域8 - 温度显示
......
......@@ -68,16 +68,8 @@ uint8_t MultiPurposeUpdate = 0u;
uint8_t MultiPurposeEn = 0u;
LogicLayerAttr_t MultiPurposeLogicLayerAttr[MAX_MULTIPURPOSE_SUP_LAYER];
/*区域6 定速巡航车速*/
#define MAX_SETSPEED_SUP_LAYER 5
MultiBufferSprite_t SetSpeedSpriteBuf;
uint8_t SetSpeedIndex = 0u;
uint8_t SetSpeedUpdate = 0u;
uint8_t SetSpeedEn = 0u;
LogicLayerAttr_t SetSpeedLogicLayerAttr[MAX_SETSPEED_SUP_LAYER];
/*区域6 定速巡航图标*/
#define MAX_CRUISE_SUP_LAYER 3
#define MAX_CRUISE_SUP_LAYER 6
MultiBufferSprite_t CruiseSpriteBuf;
uint8_t CruiseIndex = 0u;
uint8_t CruiseUpdate = 0u;
......@@ -125,8 +117,7 @@ static const SpritesHandler_t SpriteHandler[Max_Sprite] =
{WarningLight_Sprite, { 8, 88, 82, 264, 1}, TARGET_SDRAM, &WarningLightSpriteBuf, &WarningLightIndex, WarningLightLogicLayerAttr, MAX_WARNINGLIGHT_SUP_LAYER, &WarningLightUpdate, &WarningLightEn, R_NULL},
{ADAS_Sprite, {112, 94, 254, 260, 1}, TARGET_SDRAM, &ADASSpriteBuf, &ADASIndex, ADASLogicLayerAttr, MAX_ADAS_SUP_LAYER , &ADASUpdate, &ADASEn, R_NULL},
{MultiPurpose_Sprite, {382, 182, 410, 170, 1}, TARGET_SDRAM, &MultiPurposeSpriteBuf, &MultiPurposeIndex, MultiPurposeLogicLayerAttr, MAX_MULTIPURPOSE_SUP_LAYER, &MultiPurposeUpdate , &MultiPurposeEn, R_NULL},
{SetSpeed_Sprite, {414, 92, 112, 82, 1}, TARGET_SDRAM, &SetSpeedSpriteBuf, &SetSpeedIndex, SetSpeedLogicLayerAttr, MAX_SETSPEED_SUP_LAYER , &SetSpeedUpdate, &SetSpeedEn, R_NULL},
{Cruise_Sprite, {520, 90, 90, 87, 1}, TARGET_SDRAM, &CruiseSpriteBuf, &CruiseIndex, CruiseLogicLayerAttr, MAX_CRUISE_SUP_LAYER , &CruiseUpdate, &CruiseEn, R_NULL},
{Cruise_Sprite, {382, 84, 230, 92, 1}, TARGET_SDRAM, &CruiseSpriteBuf, &CruiseIndex, CruiseLogicLayerAttr, MAX_CRUISE_SUP_LAYER , &CruiseUpdate, &CruiseEn, R_NULL},
{Gear_Sprite, {622, 86, 170, 94, 1}, TARGET_SDRAM, &GearSpriteBuf, &GearIndex, GearLogicLayerAttr, MAX_GEAR_SUP_LAYER , &GearUpdate, &GearEn, R_NULL},
{Temp_Sprite, { 26, 12, 258, 70, 1}, TARGET_SDRAM, &TempSpriteBuf, &TempIndex, TempLogicLayerAttr, MAX_TEMP_SUP_LAYER , &TempUpdate, &TempEn, R_NULL},
{Time_Sprite, {330, 14, 140, 66, 1}, TARGET_SDRAM, &TimeSpriteBuf, &TimeIndex, TimeLogicLayerAttr, MAX_TIME_SUP_LAYER , &TimeUpdate, &TimeEn, R_NULL},
......@@ -139,7 +130,7 @@ static const r_screen_attr_t ScreenAttr =
800, 480, 896, /* JEPG Window*/
800, 480, 896, /* Loc Window*/
5, /* 刷新时间,50ms*/
13, /* 主屏幕Sprite数量*/
12, /* 主屏幕Sprite数量*/
Max_Sprite, /* 全部Sprite数量*/
SpriteSize /* 最大的图片数量*/
};
......
......@@ -51,7 +51,9 @@ agreement.
#include "write.h"
#include "r_config_d1x.h"
#include "main.h"
#include "images.h"
#include "han00002ce20.h"
#include <stdint.h>
//#include "han5c009f00.h"
//#include "han34009fff.h"
/***********************************************************
......@@ -216,6 +218,308 @@ static const FontPos_t FontPos[] = {
{ 841, 6}, /*  */
};
typedef struct
{
unsigned short StartAddr;
unsigned short EndAddr;
unsigned short Offset;
}s_FontBlock;
#define FONT_BLOCK_MAX 220
static s_FontBlock FontBlock[FONT_BLOCK_MAX] =
{
{0, 126, 0 },
{160, 259, 33 },
{272, 275, 45 },
{282, 283, 51 },
{296, 299, 63 },
{323, 324, 86 },
{327, 328, 88 },
{332, 335, 91 },
{338, 339, 93 },
{360, 365, 113 },
{402, 402, 149 },
{416, 417, 162 },
{431, 432, 175 },
{461, 476, 203 },
{504, 505, 230 },
{593, 593, 317 },
{609, 609, 332 },
{711, 711, 433 },
{713, 715, 434 },
{729, 729, 447 },
{913, 929, 630 },
{931, 937, 631 },
{945, 961, 638 },
{963, 969, 639 },
{1025, 1025, 694 },
{1040, 1103, 708 },
{1105, 1105, 709 },
{7742, 7743, 7345 },
{7840, 7929, 7441 },
{8194, 8195, 7705 },
{8208, 8214, 7717 },
{8216, 8218, 7718 },
{8220, 8222, 7719 },
{8224, 8226, 7720 },
{8229, 8231, 7722 },
{8240, 8240, 7730 },
{8242, 8243, 7731 },
{8245, 8245, 7732 },
{8249, 8252, 7735 },
{8258, 8258, 7740 },
{8263, 8265, 7744 },
{8273, 8273, 7751 },
{8361, 8361, 7838 },
{8364, 8364, 7840 },
{8413, 8414, 7888 },
{8448, 8448, 7921 },
{8451, 8451, 7923 },
{8453, 8453, 7924 },
{8457, 8458, 7927 },
{8463, 8463, 7931 },
{8467, 8467, 7934 },
{8470, 8470, 7936 },
{8481, 8482, 7946 },
{8486, 8487, 7949 },
{8491, 8491, 7952 },
{8494, 8494, 7954 },
{8501, 8501, 7960 },
{8507, 8507, 7965 },
{8544, 8555, 8001 },
{8560, 8571, 8005 },
{8592, 8601, 8025 },
{8632, 8633, 8055 },
{8644, 8646, 8065 },
{8651, 8652, 8069 },
{8656, 8656, 8072 },
{8658, 8658, 8073 },
{8660, 8660, 8074 },
{8678, 8681, 8091 },
{8693, 8693, 8102 },
{8704, 8704, 8112 },
{8706, 8707, 8113 },
{8709, 8715, 8114 },
{8719, 8719, 8117 },
{8721, 8723, 8118 },
{8725, 8725, 8119 },
{8730, 8730, 8123 },
{8733, 8736, 8125 },
{8739, 8739, 8127 },
{8741, 8750, 8128 },
{8756, 8759, 8133 },
{8765, 8765, 8138 },
{8771, 8771, 8143 },
{8773, 8773, 8144 },
{8776, 8776, 8146 },
{8780, 8780, 8149 },
{8786, 8786, 8154 },
{8800, 8802, 8167 },
{8804, 8807, 8168 },
{8810, 8811, 8170 },
{8814, 8815, 8172 },
{8818, 8819, 8174 },
{8822, 8823, 8176 },
{8834, 8839, 8186 },
{8842, 8843, 8188 },
{8853, 8857, 8197 },
{8864, 8864, 8203 },
{8869, 8869, 8207 },
{8895, 8895, 8232 },
{8922, 8923, 8258 },
{8965, 8967, 8299 },
{8978, 8978, 8309 },
{8984, 8984, 8314 },
{9001, 9002, 8330 },
{9136, 9137, 8463 },
{9150, 9164, 8475 },
{9166, 9166, 8476 },
{9178, 9179, 8487 },
{9251, 9251, 8558 },
{9312, 9643, 8618 },
{9649, 9651, 8623 },
{9654, 9655, 8625 },
{9660, 9661, 8629 },
{9664, 9665, 8631 },
{9670, 9676, 8635 },
{9678, 9683, 8636 },
{9698, 9702, 8650 },
{9711, 9711, 8658 },
{9728, 9731, 8674 },
{9733, 9734, 8675 },
{9737, 9737, 8677 },
{9742, 9743, 8681 },
{9750, 9751, 8687 },
{9756, 9759, 8691 },
{9775, 9775, 8706 },
{9792, 9794, 8722 },
{9824, 9839, 8751 },
{9842, 9853, 8753 },
{9888, 9888, 8787 },
{9917, 9918, 8815 },
{9986, 9986, 8882 },
{10003, 10003, 8898 },
{10010, 10010, 8904 },
{10045, 10045, 8938 },
{10047, 10048, 8939 },
{10070, 10070, 8960 },
{10102, 10111, 8991 },
{10145, 10145, 9024 },
{10548, 10549, 9426 },
{10687, 10687, 9563 },
{10746, 10747, 9621 },
{11013, 11015, 9886 },
{11034, 11034, 9904 },
{11834, 11835, 10703},
{11904, 11929, 10771},
{11931, 12019, 10772},
{12032, 12245, 10784},
{12272, 12283, 10810},
{12288, 12351, 10814},
{12353, 12438, 10815},
{12441, 12543, 10817},
{12549, 12589, 10822},
{12593, 12643, 10825},
{12645, 12686, 10826},
{12688, 12730, 10827},
{12736, 12771, 10832},
{12784, 12830, 10844},
{12832, 13054, 10845},
{13056, 13099, 10846},
{13101, 19893, 10847},
{19968, 40912, 10921},
{63744, 63747, 33752},
{63749, 63750, 33753},
{63755, 63756, 33757},
{63768, 63768, 33768},
{63777, 63777, 33776},
{63789, 63789, 33787},
{63791, 63791, 33788},
{63793, 63797, 33789},
{63799, 63802, 33790},
{63811, 63811, 33798},
{63815, 63816, 33801},
{63818, 63818, 33802},
{63822, 63822, 33805},
{63826, 63827, 33808},
{63838, 63838, 33818},
{63842, 63847, 33821},
{63854, 63854, 33827},
{63858, 63858, 33830},
{63860, 63860, 33831},
{63866, 63867, 33836},
{63870, 63872, 33838},
{63876, 63877, 33841},
{63882, 63884, 33845},
{63886, 63886, 33846},
{63891, 63891, 33850},
{63893, 63893, 33851},
{63896, 63896, 33853},
{63918, 63918, 33874},
{63923, 63923, 33878},
{63927, 63927, 33881},
{63931, 63931, 33884},
{63933, 63934, 33885},
{63936, 63936, 33886},
{63941, 63942, 33890},
{63952, 63952, 33899},
{63960, 63961, 33906},
{63966, 63968, 33910},
{63970, 63972, 33911},
{63977, 63977, 33915},
{63988, 63989, 33925},
{63994, 63994, 33929},
{63997, 63997, 33931},
{64002, 64002, 33935},
{64005, 64008, 33937},
{64010, 64010, 33938},
{64012, 64013, 33939},
{64073, 64073, 33998},
{64093, 64094, 34017},
{64256, 64260, 34178},
{65040, 65049, 34957},
{65072, 65106, 34979},
{65108, 65126, 34980},
{65128, 65131, 34981},
{65281, 65470, 35130},
{65474, 65479, 35133},
{65482, 65487, 35135},
{65490, 65495, 35137},
{65498, 65500, 35139},
{65504, 65510, 35142},
{65512, 65518, 35143},
};
static unsigned short GetWordIndex(unsigned short unicodeID)
{
unsigned short StartIndex = 0;
unsigned short MiddleIndex = FONT_BLOCK_MAX / 2;
unsigned short EndIndex = FONT_BLOCK_MAX;
unsigned short i;
unsigned short ret = 0xFFFF;
unsigned char OverFlag = 0;
for (i = 0; i < 10; i++)
{
switch (EndIndex - StartIndex)
{
case 0:
{
if ((unicodeID <= FontBlock[StartIndex].EndAddr) && (unicodeID >= FontBlock[StartIndex].StartAddr))
{
//ret = Hansans00002ce20[unicodeID - FontBlock[StartIndex].Offset].FontID;
ret = unicodeID - FontBlock[StartIndex].Offset;
}
else
{
ret = 0xFFFF;
}
OverFlag = 1;
}break;
case 1:
{
if ((unicodeID <= FontBlock[StartIndex].EndAddr) && (unicodeID >= FontBlock[StartIndex].StartAddr))
{
//ret = Hansans00002ce20[unicodeID - FontBlock[StartIndex].Offset].FontID;
ret = unicodeID - FontBlock[StartIndex].Offset;
}
else if ((unicodeID <= FontBlock[EndIndex].EndAddr) && (unicodeID >= FontBlock[EndIndex].StartAddr))
{
//ret = Hansans00002ce20[unicodeID - FontBlock[EndIndex].Offset].FontID;
ret = unicodeID - FontBlock[EndIndex].Offset;
}
else
{
ret = 0xFFFF;
}
OverFlag = 1;
}break;
default:
break;
}
if (OverFlag)
{
break;
}
if ((unicodeID < FontBlock[MiddleIndex].StartAddr) && (unicodeID >= FontBlock[StartIndex].StartAddr))
{
//StartIndex = StartIndex;
EndIndex = MiddleIndex;
MiddleIndex = (EndIndex + StartIndex) / 2;
}
else
{
StartIndex = MiddleIndex;
MiddleIndex = (EndIndex + StartIndex) / 2;
}
}
return ret;
}
static void locWriteChar(r_drw2d_Device_t Dev, int PosX, int PosY, unsigned char Character)
{
int xsrc;
......@@ -336,11 +640,12 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
i = 0;
j = 0;
counta = 0;
tex1.Buffer.Data = 0x119ACCC0u; /*字库地址*/
tex1.Buffer.Pitch = 3300;
/*字库地址*/
tex1.Buffer.Data = get_Pic_Attribute(ziku_0).u32Pic_Addr;
tex1.Buffer.Pitch = 4000;
tex1.Buffer.PixelFormat = R_DRW2D_PIXELFORMAT_AL8;
tex1.Buffer.Size.Height = 2400;
tex1.Buffer.Size.Width = 3400;
tex1.Buffer.Size.Height = 3900;
tex1.Buffer.Size.Width = 4000;
tex1.Flags = R_DRW2D_TEX_BILINEAR;
tex1.Handle = 0;
......@@ -368,16 +673,39 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
PosX = startx;
for (int i = 0; i < count; i++)
{
counta = a[i];
if ((counta >= 0x0020) && (counta < 0x007f)) //CJK latin zihao 20,15*15.
//counta = a[i];
counta = GetWordIndex(a[i]);
if(counta < 0xFFFF)
{
xsrc = Hansans00002ce20[counta].Xpos; //
ysrc = Hansans00002ce20[counta].Ypos;
wsrc = Hansans00002ce20[counta].Width;
hsrc = Hansans00002ce20[counta].Height;
rect.Pos.X = R_DRW2D_2X(PosX);
rect.Pos.Y = R_DRW2D_2X(PosY);
rect.Size.Width = R_DRW2D_2X(wsrc);
rect.Size.Height = R_DRW2D_2X(hsrc);
src_rect.Pos.X = R_DRW2D_2X(xsrc);
src_rect.Pos.Y = R_DRW2D_2X(ysrc);
src_rect.Size.Width = R_DRW2D_2X(wsrc);
src_rect.Size.Height = R_DRW2D_2X(hsrc);
R_DRW2D_TextureBlit(Dev, &src_rect, &rect);
PosX += wsrc;
}
else
{
counta = 0x293A;
xsrc = Hansans00002ce20[counta].Xpos; //
ysrc = Hansans00002ce20[counta].Ypos;
wsrc = Hansans00002ce20[counta].Width;
hsrc = Hansans00002ce20[counta].Height;
rect.Pos.X = R_DRW2D_2X(PosX);
rect.Pos.Y = R_DRW2D_2X(PosY + (16 - hsrc) / 2);
rect.Pos.Y = R_DRW2D_2X(PosY);
rect.Size.Width = R_DRW2D_2X(wsrc);
rect.Size.Height = R_DRW2D_2X(hsrc);
......@@ -388,9 +716,29 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
R_DRW2D_TextureBlit(Dev, &src_rect, &rect);
PosX += 16;
PosX += wsrc;
}
/*if ((counta >= 0x0020) && (counta < 0x007f)) //CJK latin zihao 20,15*15.
{
xsrc = Hansans00002ce20[counta].Xpos; //
ysrc = Hansans00002ce20[counta].Ypos;
wsrc = Hansans00002ce20[counta].Width;
hsrc = Hansans00002ce20[counta].Height;
rect.Pos.X = R_DRW2D_2X(PosX);
rect.Pos.Y = R_DRW2D_2X(PosY);
rect.Size.Width = R_DRW2D_2X(wsrc);
rect.Size.Height = R_DRW2D_2X(hsrc);
src_rect.Pos.X = R_DRW2D_2X(xsrc);
src_rect.Pos.Y = R_DRW2D_2X(ysrc);
src_rect.Size.Width = R_DRW2D_2X(wsrc);
src_rect.Size.Height = R_DRW2D_2X(hsrc);
R_DRW2D_TextureBlit(Dev, &src_rect, &rect);
PosX += wsrc;
}
else if ((counta >= 0x33ff) && (counta < 0x4db6)) //CJK siyuanheiti zihao 20,15*15.
{
counta -= 0x2a5f;
......@@ -400,7 +748,7 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
hsrc = Hansans00002ce20[counta].Height;
rect.Pos.X = R_DRW2D_2X(PosX);
rect.Pos.Y = R_DRW2D_2X(PosY + (16 - hsrc) / 2);
rect.Pos.Y = R_DRW2D_2X(PosY);
rect.Size.Width = R_DRW2D_2X(wsrc);
rect.Size.Height = R_DRW2D_2X(hsrc);
......@@ -411,7 +759,7 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
R_DRW2D_TextureBlit(Dev, &src_rect, &rect);
PosX += 16;
PosX += wsrc;
}
else if ((counta >= 0x4e00) && (counta < 0xa000)) //CJK siyuanheiti zihao 20,15*15.
{
......@@ -424,7 +772,7 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
hsrc = Hansans00002ce20[counta].Height;
rect.Pos.X = R_DRW2D_2X(PosX);
rect.Pos.Y = R_DRW2D_2X(PosY + (16 - hsrc) / 2);
rect.Pos.Y = R_DRW2D_2X(PosY);
rect.Size.Width = R_DRW2D_2X(wsrc);
rect.Size.Height = R_DRW2D_2X(hsrc);
......@@ -435,12 +783,12 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
R_DRW2D_TextureBlit(Dev, &src_rect, &rect);
PosX += 16;
PosX += wsrc;
}
//unclude in font
else
{
counta = 0x09a1;
counta = 0x293A; //0x53e3; //0x09a1;
xsrc = Hansans00002ce20[counta].Xpos; //
ysrc = Hansans00002ce20[counta].Ypos;
......@@ -448,7 +796,7 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
hsrc = Hansans00002ce20[counta].Height;
rect.Pos.X = R_DRW2D_2X(PosX);
rect.Pos.Y = R_DRW2D_2X(PosY + (16 - hsrc) / 2);
rect.Pos.Y = R_DRW2D_2X(PosY);
rect.Size.Width = R_DRW2D_2X(wsrc);
rect.Size.Height = R_DRW2D_2X(hsrc);
......@@ -459,10 +807,11 @@ void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color
R_DRW2D_TextureBlit(Dev, &src_rect, &rect);
PosX += 16;
}
PosX += wsrc;
}*/
}
R_DRW2D_CtxEffectsDelete(Dev);
}
......@@ -527,3 +876,44 @@ void Write_String(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Colo
}
unsigned int CheckHansans00002ce20List(unsigned int Unicode_16t)
{
unsigned int ret = 0u;;
/*if ((Unicode_16t >= 0x0020) && (Unicode_16t < 0x007f)) //CJK latin zihao 20,15*15.
{
ret = Unicode_16t;
}
else if ((Unicode_16t >= 0x33ff) && (Unicode_16t < 0x4db6)) //CJK siyuanheiti zihao 20,15*15.
{
ret = Unicode_16t - 0x2a5f;
}
else if ((Unicode_16t >= 0x4e00) && (Unicode_16t < 0xa000)) //CJK siyuanheiti zihao 20,15*15.
{
ret = Unicode_16t - 0x2aa9;
}
//unclude in font
else
{
ret = 0x53e3; //0x09a1;
}*/
ret = GetWordIndex(Unicode_16t);
if(ret >= 0xFFFF)
{
ret = 0x293A;
}
return ret;
}
unsigned int Get_Unicode_Words_Width(unsigned int Unicode_16t)
{
unsigned int ret = 0u;
unsigned int Index = CheckHansans00002ce20List(Unicode_16t);
ret = Hansans00002ce20[Index].Width;
//ret = R_DRW2D_2X(ret) + 4;
//ret = ret + 2;
return ret;
}
......@@ -173,6 +173,8 @@ void Write(
void Write_String(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color, char *Text);
void Write_Hanzi(r_drw2d_Device_t Dev,int PosX, int PosY, r_drw2d_Color_t Color, uint16_t a[],uint16_t count);
unsigned int Get_Unicode_Words_Width(unsigned int Unicode_16t);
#ifdef __cplusplus
}
#endif
......
......@@ -99,7 +99,7 @@ void Sys_Startup_Init(void)
RTC_Init();
Sys_Tick_Timer_Start();
/*COM_CAN_Init(); 原CAN初始化位置*/
/*COM_CAN_Init(); Ô­CAN³õʼ»¯Î»ÖÃ*/
RTE_ADC_Init();
......@@ -109,14 +109,19 @@ void Sys_Startup_Init(void)
EEPROM_Init();
BU98R10_Init();
/*EOL诊断 配置数据读取 DFLASH*/
ReadAllDFlashData();
/*读取K-LINE*/
ReadDTCEOLValue_Meter_K_LINE();
d_printf("Init complete!\n");
InitSeriFlashExternReadMode();
/*30电数据初始化*/
/*30电数据初始化*/
APP_Startup_Init(Clock_Get_Startup_Mode());
/*外发要用到EEP数据,位置移动*/
/*外发要用到EEP数据,位置移动*/
COM_CAN_Init();
Gfx_Sys_Start();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment