Commit d8fbf34c authored by hu's avatar hu

调整菜单显示

parent 7c419289
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
.\common\devassert.h .\common\devassert.h
.\common\TYW_Config.h .\common\TYW_Config.h
.\common\TYW_stdint.h .\common\TYW_stdint.h
.\Graphic\UE\DispSch.h
.\Graphic\UE\UE_Lib.a
.\UDS\APP\Common\libhello.h .\UDS\APP\Common\libhello.h
.\UDS\APP\Common\libhello.a .\UDS\APP\Common\libhello.a
.\Graphic\GUI_VC66\GUI_VC66_General.c .\Graphic\GUI_VC66\GUI_VC66_General.c
...@@ -46,8 +44,6 @@ ...@@ -46,8 +44,6 @@
.\Graphic\GUI\GUI.h .\Graphic\GUI\GUI.h
.\Graphic\GUI\GUI_Interface.c .\Graphic\GUI\GUI_Interface.c
.\Graphic\GUI\GUI_Interface.h .\Graphic\GUI\GUI_Interface.h
.\Graphic\GUI\GUI_Menu_Energy.c
.\Graphic\GUI\GUI_Menu_Energy.h
.\Alarm\AlarmGeneralFilie.c .\Alarm\AlarmGeneralFilie.c
.\Alarm\AlarmGeneralFilie.h .\Alarm\AlarmGeneralFilie.h
.\Alarm\Door.c .\Alarm\Door.c
...@@ -172,13 +168,12 @@ ...@@ -172,13 +168,12 @@
.\APP\Telltales\Telltales.h .\APP\Telltales\Telltales.h
.\APP\Telltales\Telltales_user.c .\APP\Telltales\Telltales_user.c
.\APP\Telltales\Telltales_user.h .\APP\Telltales\Telltales_user.h
.\Graphic\Menu\Menu_V2.4.a
.\Graphic\Menu\Menu.h .\Graphic\Menu\Menu.h
.\Graphic\Menu\Menu_Interface.c
.\Graphic\Menu\Menu_user.c .\Graphic\Menu\Menu_user.c
.\Graphic\UE\DisplaySch.c .\Graphic\UE\UE_Lib.a
.\Graphic\UE\DisplaySch.h .\Graphic\UE\DispSch.h
.\Graphic\UE\DisplaySch_user.c .\Graphic\UE\DisplaySch_user.c
.\Graphic\UE\DisplaySch_user.h
.\RTE\Common_Interface.c .\RTE\Common_Interface.c
.\RTE\Common_Interface.h .\RTE\Common_Interface.h
.\RTE\RTE_ADC.c .\RTE\RTE_ADC.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 .intvect 1536
project .text 297884 project .text 291052
project .rodata 412311 project .rodata 406279
project .secinfo 120 project .secinfo 120
project .syscall 6 project .syscall 6
project .romdata 7765 project .romdata 7717
project .ROM.ramfunc 208 project .ROM.ramfunc 208
project .ramfunc 208 project .ramfunc 208
#include "BackLight_APP.h" #include "BackLight_APP.h"
#include "RTE_PWM_OUT.h" #include "RTE_PWM_OUT.h"
#include "Common_Interface.h" #include "Common_Interface.h"
#include "DisplaySch.h"
#include "Popup_List.h" #include "Popup_List.h"
#include "Popup_Scheduler.h" #include "Popup_Scheduler.h"
#include "GPIO.h" #include "GPIO.h"
......
...@@ -48,7 +48,7 @@ const Line_In_Attribute_st_t g_stLineInAttribute[LINE_IN_MAX] = ...@@ -48,7 +48,7 @@ const Line_In_Attribute_st_t g_stLineInAttribute[LINE_IN_MAX] =
{ LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_HI_BEAM,}, /*A25 HI BEAM*/ { LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_HI_BEAM,}, /*A25 HI BEAM*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_BRAKE_AIR_EBS,}, /*A28 BRAKE AIR/EBS*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_BRAKE_AIR_EBS,}, /*A28 BRAKE AIR/EBS*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_SEAT_BELT,}, /*A30 SEAT BELT*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_SEAT_BELT,}, /*A30 SEAT BELT*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_MIL,}, /*A31 MIL*/ { LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_MIL,}, /*A31 MIL*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_ENG_OIL,}, /*A32 ENG OIL*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_ENG_OIL,}, /*A32 ENG OIL*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_CHARGE,}, /*A34 CHARGE*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_CHARGE,}, /*A34 CHARGE*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_TRAILER_ABS_INFO,}, /*B03 TRAILER ABS INFO*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_TRAILER_ABS_INFO,}, /*B03 TRAILER ABS INFO*/
...@@ -56,7 +56,7 @@ const Line_In_Attribute_st_t g_stLineInAttribute[LINE_IN_MAX] = ...@@ -56,7 +56,7 @@ const Line_In_Attribute_st_t g_stLineInAttribute[LINE_IN_MAX] =
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_ACC_AIR,}, /*B15 ACC AIR*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_ACC_AIR,}, /*B15 ACC AIR*/
{ LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_AIR_SUS,}, /*B30 AIR SUS*/ { LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_AIR_SUS,}, /*B30 AIR SUS*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_TRAILER_BRAKE,}, /*B31 TRAILER BRAKE*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_TRAILER_BRAKE,}, /*B31 TRAILER BRAKE*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_TRAILER_ABS,}, /*B33 TRAILER ABS*/ { LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_TRAILER_ABS,}, /*B33 TRAILER ABS*/
{ LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_RR_DIFF_LOCK,}, /*B36 RR DIFF LOCK*/ { LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_RR_DIFF_LOCK,}, /*B36 RR DIFF LOCK*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_WEAR_IND,}, /*B38 WEAR IND*/ { LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_WEAR_IND,}, /*B38 WEAR IND*/
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "Service_OFF_Time.h" #include "Service_OFF_Time.h"
#include "RTE_CAN_NM.h" #include "RTE_CAN_NM.h"
#include "Telltales.h" #include "Telltales.h"
#include "DisplaySch.h"
#include "Line_in.h" #include "Line_in.h"
#include "Seg_Ref.h" #include "Seg_Ref.h"
#include "Seatbelt.h" #include "Seatbelt.h"
...@@ -57,8 +56,6 @@ static uint8_t PowerGetNMStatus(void); ...@@ -57,8 +56,6 @@ static uint8_t PowerGetNMStatus(void);
Power_Status_t Power_KL30_Init ( void ) Power_Status_t Power_KL30_Init ( void )
{ {
Power_Status_t u8PowerSts; Power_Status_t u8PowerSts;
Menu_Init_st_t pstMenuInit;
/*电源 指示灯 硬线 通用信息部分 赵建智 维护开始*/ /*电源 指示灯 硬线 通用信息部分 赵建智 维护开始*/
ClearNoInitArea(); ClearNoInitArea();
Common_DataInit(); Common_DataInit();
...@@ -96,13 +93,6 @@ Power_Status_t Power_KL30_Init ( void ) ...@@ -96,13 +93,6 @@ Power_Status_t Power_KL30_Init ( void )
/*按键部分 杨真东维护开始*/ /*按键部分 杨真东维护开始*/
Key_Init(); Key_Init();
pstMenuInit.enMenuItemLen = MENU_ITEM_MAX ;
pstMenuInit.enMenuInterfaceLen = MENU_INTERFACE_MAX ;
pstMenuInit.enMenuBranchLen = MENU_BRANCH_MAX ;
pstMenuInit.u32MenuConfig = 0u ;
Menu_Init(u8MenuRamData, stMenuItemAttribute, &pstMenuInit);
VCC12V0_OUT_EN = 1U; /*12V 电源使能*/ VCC12V0_OUT_EN = 1U; /*12V 电源使能*/
VCC05V0_OUT_EN = 1U; /*外设5V 电源使能*/ VCC05V0_OUT_EN = 1U; /*外设5V 电源使能*/
D1530_EN_MCU_OUT = 1U; /*1530 使能*/ D1530_EN_MCU_OUT = 1U; /*1530 使能*/
...@@ -162,15 +152,6 @@ void Power_Sleep_Init(void) ...@@ -162,15 +152,6 @@ void Power_Sleep_Init(void)
Power_Status_t Power_Wakeup_Init ( void ) Power_Status_t Power_Wakeup_Init ( void )
{ {
Power_Status_t u8PowerSts; Power_Status_t u8PowerSts;
Menu_Init_st_t pstMenuInit;
pstMenuInit.enMenuItemLen = MENU_ITEM_MAX ;
pstMenuInit.enMenuInterfaceLen = MENU_INTERFACE_MAX ;
pstMenuInit.enMenuBranchLen = MENU_BRANCH_MAX ;
pstMenuInit.u32MenuConfig = 0u ;
Menu_Wake_Up_Init(u8MenuRamData, stMenuItemAttribute, &pstMenuInit);
/*电源 指示灯 硬线 通用信息部分 赵建智 维护开始*/ /*电源 指示灯 硬线 通用信息部分 赵建智 维护开始*/
Common_DataInit(); Common_DataInit();
Sys_WakeUp_Init(); Sys_WakeUp_Init();
......
...@@ -317,9 +317,10 @@ uint8_t LED_EXH_BRAKE_T_Judgement(void) ...@@ -317,9 +317,10 @@ uint8_t LED_EXH_BRAKE_T_Judgement(void)
{ {
uint8_t u8Result = 0u; uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u; uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Get_ID_18FF2300_Sig_Exh_Lamp(); m_Condition1 = (uint8_t)Get_ID_18FF2300_Sig_Exh_Lamp();
if (m_Condition1 == 0u) if (m_Condition1 == 0x01u)
{ {
u8Result = 1u; u8Result = 1u;
} }
...@@ -489,11 +490,11 @@ uint8_t LED_MIL_T_Judgement(void) ...@@ -489,11 +490,11 @@ uint8_t LED_MIL_T_Judgement(void)
if (m_Condition1 == 1u) if (m_Condition1 == 1u)
{ {
u8Result = 0u; u8Result = 1u;
} }
else else
{ {
u8Result = 1u; u8Result = 0u;
} }
return u8Result; return u8Result;
...@@ -627,6 +628,8 @@ uint8_t LED_RETARDER_T_Judgement(void) ...@@ -627,6 +628,8 @@ uint8_t LED_RETARDER_T_Judgement(void)
m_Condition1 = (uint8_t)Get_ID_18FF5510_Sig_Intarder_Pilot_Lamp_State(); m_Condition1 = (uint8_t)Get_ID_18FF5510_Sig_Intarder_Pilot_Lamp_State();
if (K_Line_Set.K_Line_LID41 == 0x13u)
{
if (m_Condition1 == 1u) if (m_Condition1 == 1u)
{ {
u8Result = 1u; u8Result = 1u;
...@@ -642,6 +645,7 @@ uint8_t LED_RETARDER_T_Judgement(void) ...@@ -642,6 +645,7 @@ uint8_t LED_RETARDER_T_Judgement(void)
u8Result = 0u; u8Result = 0u;
} }
} }
}
else else
{ {
u8Result = 0u; u8Result = 0u;
...@@ -827,6 +831,8 @@ uint8_t LED_AEBS_OFF_L_Judgement(void) ...@@ -827,6 +831,8 @@ uint8_t LED_AEBS_OFF_L_Judgement(void)
m_Condition2 = (uint8_t)Get_ID_CF02FA1_Sig_Advanced_Emerg_Braking_Sys_Sta(); m_Condition2 = (uint8_t)Get_ID_CF02FA1_Sig_Advanced_Emerg_Braking_Sys_Sta();
m_Condition3 = (uint8_t)Get_ID_CF02FA0_Sig_Advanced_Emerg_Braking_Sys_Sta(); m_Condition3 = (uint8_t)Get_ID_CF02FA0_Sig_Advanced_Emerg_Braking_Sys_Sta();
if (K_Line_Set.K_Line_LID28 == 0x01u)
{
if ((m_Condition1 == 2u) || (m_Condition2 == 2u) || (m_Condition3 == 2u)) if ((m_Condition1 == 2u) || (m_Condition2 == 2u) || (m_Condition3 == 2u))
{ {
u8Result = 1u; u8Result = 1u;
...@@ -835,6 +841,7 @@ uint8_t LED_AEBS_OFF_L_Judgement(void) ...@@ -835,6 +841,7 @@ uint8_t LED_AEBS_OFF_L_Judgement(void)
{ {
u8Result = FLASH_SYNC_1Hz; u8Result = FLASH_SYNC_1Hz;
} }
}
else else
{ {
u8Result = 0u; u8Result = 0u;
...@@ -874,18 +881,31 @@ uint8_t LED_LDWS_L_Judgement(void) ...@@ -874,18 +881,31 @@ uint8_t LED_LDWS_L_Judgement(void)
uint8_t u8Result = 0u; uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u; uint8_t m_Condition1 = 0u;
uint8_t m_Condition2 = 0u; uint8_t m_Condition2 = 0u;
uint8_t CanStatus1 = 0u;
uint8_t CanStatus2 = 0u;
m_Condition1 = (uint8_t)Get_ID_18FE5BE8_Sig_Lane_Departure_Warning_Sys_Sta(); m_Condition1 = (uint8_t)Get_ID_18FE5BE8_Sig_Lane_Departure_Warning_Sys_Sta();
m_Condition2 = (uint8_t)Get_ID_18FECAE8_Sig_Amber_Warning_Lamp_Status(); m_Condition2 = (uint8_t)Get_ID_18FECAE8_Sig_Amber_Warning_Lamp_Status();
if ((m_Condition1 == 2u) || (m_Condition2 == 1u)) CanStatus1 = CAN_MSG_Status(ID_CanMsg18FE5BE8_Msg_Count);
CanStatus2 = CAN_MSG_Status(ID_CanMsg18FECAE8_Msg_Count);
if (K_Line_Set.K_Line_LID27 == 0x01u)
{
/*LDWS与FCW同时掉线闪烁*/
if ((CanStatus1 == CAN_SIG_LOST) && (CanStatus2 == CAN_SIG_LOST))
{
u8Result = FLASH_SYNC_1Hz;
}
else if ((m_Condition1 == 0x02u) || (m_Condition2 == 0x01u))
{ {
u8Result = 1u; u8Result = 1u;
} }
else if ((m_Condition1 == 5u) || (m_Condition1 == 14u) || (m_Condition1 == 0u)) else if ((m_Condition1 == 0x00u) || (m_Condition1 == 0x05u) || (m_Condition1 == 0x0Eu))
{ {
u8Result = FLASH_SYNC_1Hz; u8Result = FLASH_SYNC_1Hz;
} }
}
else else
{ {
u8Result = 0u; u8Result = 0u;
...@@ -1886,7 +1906,7 @@ uint8_t LED_TRAILER_ABS_INFO_U_Judgement(void) ...@@ -1886,7 +1906,7 @@ uint8_t LED_TRAILER_ABS_INFO_U_Judgement(void)
uint8_t m_Condition1 = 0u; uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_TRAILER_ABS_INFO); m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_TRAILER_ABS_INFO);
if (m_Condition1 == 1u) if (m_Condition1 == 0x01u)
{ {
u8Result = 1u; u8Result = 1u;
} }
......
#include "GUI.h" #include "GUI.h"
#include "r_typedefs.h" #include "r_typedefs.h"
//#include "r_ddb_api.h"
//#include "r_cdi_api.h"
//#include "r_wm_api.h"
//#include "davehd_driver.h"
//#include "main.h"
//#include "Graphic.h"
//#include "r_drw2d_os.h"
//#include "r_drw2d_api.h"
//#include "r_config_drw2d.h"
//#include "r_drw2d_ctx_dhd.h"
//#include "r_jcua_api.h"
//#include "r_gpio_api.h"
//#include "r_dev_pin_types.h"
//#include "r_dev_api.h"
////#include "sflash.h"
#include "loc_graphics.h" #include "loc_graphics.h"
//#include "write.h"
#include "images.h" #include "images.h"
#include "jcua.h" #include "jcua.h"
#include "Watchdog.h" #include "Watchdog.h"
#include "Menu.h" #include "Menu.h"
#include "GUI_Interface.h" #include "GUI_Interface.h"
#include "CAN_Communication_Matrix.h" #include "CAN_Communication_Matrix.h"
#include "Services_Mileage.h" #include "Services_Mileage.h"
#include "RTE_ADC.h" #include "RTE_ADC.h"
#include "GaugesInterface.h" #include "GaugesInterface.h"
#include "Service_TPMS.h" #include "Service_TPMS.h"
#include "DisplaySch_user.h" #include "DisplaySch_user.h"
#include "CD4051.h" #include "CD4051.h"
#include "Data_Gear.h" #include "Data_Gear.h"
#include "Maintenance.h" #include "Maintenance.h"
#include "Data_FuelConsump.h" #include "Data_FuelConsump.h"
#include "Common_Interface.h" #include "Common_Interface.h"
#include "System_Monitor.h" #include "System_Monitor.h"
#include "Flash_synchronizer.h" #include "Flash_synchronizer.h"
#include "GUI_VC66_Include.h" #include "GUI_VC66_Include.h"
#include "Popups.h" #include "Popups.h"
#include "Data_Fuel_User.h" #include "Data_Fuel_User.h"
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
...@@ -112,6 +84,7 @@ void GUI_Display_OftenShow_Group(void) ...@@ -112,6 +84,7 @@ void GUI_Display_OftenShow_Group(void)
Gui_Display_Time(); Gui_Display_Time();
Gui_Display_TRIPA(); Gui_Display_TRIPA();
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : GUI_Display_UsuallyConv * Function Name : GUI_Display_UsuallyConv
* Description : 通常显示选择 * Description : 通常显示选择
...@@ -120,110 +93,3 @@ void GUI_Display_OftenShow_Group(void) ...@@ -120,110 +93,3 @@ void GUI_Display_OftenShow_Group(void)
* Return : None * Return : None
* onther : None * onther : None
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
\ No newline at end of file
void GUI_Display_UsuallyConv(en_USUALLY_GROUP Type)
{
switch(Type)
{
case USUALLY_NULL:
break ;
case USUALLY_BLANK:
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
break ;
case USUALLY_TRIPA:
GUI_Display_Usually_AvrFuelCons(0);
GUI_Display_Usually_AvrSpeed(0);
break ;
case USUALLY_TRIPB:
GUI_Display_Usually_AvrFuelCons(1);
GUI_Display_Usually_AvrSpeed(1);
break ;
case USUALLY_VOLTMETER:
GUI_Display_Usually_VoltMeter();
break ;
case USUALLY_CALENDAR:
GUI_Display_Usually_Calendar();
break ;
case USUALLY_TIME_TABLE:
GUI_Display_Usually_TimeTable();
break ;
case USUALLY_DPD_ACCUMULATION:
GUI_Display_Usually_DPD(0);
break ;
case USUALLY_DPD_REGENERATION:
GUI_Display_Usually_DPD(1);
break ;
default:
break ;
}
}
/*-------------------------------------------------------------------------
* Function Name : GUI_wby_test_Display
* Description : 测试
* Input : None
* Output : None
* Return : None
* onther : None
--------------------------------------------------------------------------*/
uint8_t wbyTestflag = 0 ;
uint16_t TestUnicode[4u] = {0x5ba4,0x5916,0x6e29,0x5ea6};
void GUI_wby_test_Display(void)
{
//GUI_Unicode_Display(Temp_Sprite, 106, 45, TestUnicode, 4, 0xFFFFFFFF);
GUI_Display_OftenShow_Group();
switch(wbyTestflag)
{
case 0 :
GUI_Display_UsuallyConv(USUALLY_BLANK);
break ;
case 1 :
GUI_Display_UsuallyConv(USUALLY_TRIPA);
break ;
case 2 :
GUI_Display_UsuallyConv(USUALLY_TRIPB);
break ;
case 3 :
GUI_Display_UsuallyConv(USUALLY_VOLTMETER);
break ;
case 4 :
GUI_Display_UsuallyConv(USUALLY_CALENDAR);
break ;
case 5 :
GUI_Display_UsuallyConv(USUALLY_TIME_TABLE);
break ;
case 6 :
GUI_Display_UsuallyConv(USUALLY_DPD_ACCUMULATION);
break ;
case 7 :
GUI_Display_UsuallyConv(USUALLY_DPD_REGENERATION);
break ;
case 8 :
GUI_General_Popup();
break ;
case 9 :
break ;
case 10 :
break ;
case 11 :
break ;
case 12 :
break ;
case 13 :
break ;
}
//测试用
uint16_t xx[4] = {75,60,45,30} ;
//GUI_General_Digit_Display(WarningLight_Sprite, Fuel_Get_Res(), Nb_12_0, 4u, 3u, xx, 150, GUI_BLENDMODE_SRC_OVER);
//GUI_General_Digit_Display(WarningLight_Sprite, Fuel_Get_Step(), Nb_12_0, 3u, 2u, xx, 200, GUI_BLENDMODE_SRC_OVER);
GUI_General_Display(WarningLight_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
\ No newline at end of file
...@@ -8,26 +8,10 @@ ...@@ -8,26 +8,10 @@
#include "images.h" #include "images.h"
#include "TYW_stdint.h" #include "TYW_stdint.h"
typedef enum
{
USUALLY_NULL = 0 ,//无动作
USUALLY_BLANK ,//清图
USUALLY_TRIPA ,//TRIPA 平均油耗/平均车速显示画面
USUALLY_TRIPB ,//TRIPB 平均油耗/平均车速显示画面
USUALLY_VOLTMETER ,//电压计显示画面
USUALLY_CALENDAR ,//日期/时钟显示画面
USUALLY_TIME_TABLE ,//计时表/油温计显示画面
USUALLY_DPD_ACCUMULATION,//DPD堆积量显示画面
USUALLY_DPD_REGENERATION,//DPD再生进度显示画面
USUALLY_MAX_NUM ,
}en_USUALLY_GROUP ;
extern void GUI_Display_KL15_ON_Init(void); extern void GUI_Display_KL15_ON_Init(void);
extern void GUI_Display_KL15_OFF_Init(void); extern void GUI_Display_KL15_OFF_Init(void);
extern void GUI_Display_background(void); extern void GUI_Display_background(void);
extern void GUI_Display_OftenShow_Group(void); extern void GUI_Display_OftenShow_Group(void);
extern void GUI_Display_UsuallyConv(en_USUALLY_GROUP Type) ;
extern void GUI_wby_test_Display(void) ; extern void GUI_wby_test_Display(void) ;
#endif #endif
......
#ifndef _GUI_MENU_ENERGY_H_
#define _GUI_MENU_ENERGY_H_
#include "GUI_Interface.h"
#endif
//*********************************************************************************************************************
//ZH修改2021年8月26日15:26:44
//*********************************************************************************************************************
#include "GUI_VC66_Menu_User.h"
#include "GUI_VC66_General.h"
#include "Menu.h"
typedef struct
{
uint16_t selected;
uint16_t unselected;
}menu_item_selected_and_unselected;
//************************************************************************************************************************************************
const menu_item_selected_and_unselected Menu_item_picture[MENU_ITEM_MAX][2] = //[菜单项图片枚举][语言]
{
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//TRIPA 平均油耗/平均车速显示画面
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//TRIPB 平均油耗/平均车速显示画面
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一电压计显示画面
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//一一一一一一一日期/时钟显示画面
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//一一一一一计时表/油温计显示画面
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//一一一一一一一DPD堆积量显示画面
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//一一一一一一DPD再生进度显示画面
//*******************************
//*******************************
{ {CN_User_Menu1_01black , CN_User_Menu1_01white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一故障代码
{ {CN_User_Menu1_02black , CN_User_Menu1_02white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一维修通知
{ {CN_User_Menu1_03black , CN_User_Menu1_03white }, {SpriteSize, SpriteSize} },//-一一一一一一一一维修通知的设定
{ {CN_User_Menu1_04black , CN_User_Menu1_04white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一用户设定
{ {CN_User_Menu1_06black , CN_User_Menu1_06white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一系统演示模式
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一轮胎状态显示
{ {CN_User_Menu2_02_01black , CN_User_Menu2_02_01white }, {SpriteSize, SpriteSize} },//-一一一一一一发动机机油和滤清器
{ {CN_User_Menu2_02_02black , CN_User_Menu2_02_02white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一燃油滤清器
{ {CN_User_Menu2_02_03black , CN_User_Menu2_02_03white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一变速箱油
{ {CN_User_Menu2_02_04black , CN_User_Menu2_02_04white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一差速器油
{ {CN_User_Menu2_02_06black , CN_User_Menu2_02_06white }, {SpriteSize, SpriteSize} },//-一一一一一一一空气干燥器干燥剂
{ {CN_User_Menu2_02_07black , CN_User_Menu2_02_07white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一动力转向液
{ {CN_User_Menu2_02_08black , CN_User_Menu2_02_08white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一一一轮胎
{ {CN_User_Menu2_02_09black , CN_User_Menu2_02_09white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一一起动机
{ {CN_User_Menu2_03_01black , CN_User_Menu2_03_01white }, {SpriteSize, SpriteSize} },//-一一一一更换发动机机油和滤清器
{ {CN_User_Menu2_03_02black , CN_User_Menu2_03_02white }, {SpriteSize, SpriteSize} },//-一一一一一一一一更换燃油滤清器
{ {CN_User_Menu2_03_03black , CN_User_Menu2_03_03white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一更换变速箱油
{ {CN_User_Menu2_03_04black , CN_User_Menu2_03_04white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一更换差速器油
{ {CN_User_Menu2_03_05black , CN_User_Menu2_03_05white }, {SpriteSize, SpriteSize} },//一一一一一一一一SMOOTHER离合器油
{ {CN_User_Menu2_03_07black , CN_User_Menu2_03_07white }, {SpriteSize, SpriteSize} },//-一一一一一一一一更换动力转向液
{ {CN_User_Menu2_03_08black , CN_User_Menu2_03_08white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一更换轮胎
{ {CN_User_Menu2_03_09black , CN_User_Menu2_03_09white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一更换起动机
{ {CN_User_Menu2_05_01black , CN_User_Menu2_05_01white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一设定日期
{ {CN_User_Menu2_05_02black , CN_User_Menu2_05_02white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一设定时间
{ {CN_User_Menu2_05_03black , CN_User_Menu2_05_03white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一设定显示
{ {CN_User_Menu2_05_04black , CN_User_Menu2_05_04white }, {SpriteSize, SpriteSize} },//-一一一一一一一设定节油驾驶建议
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一设定车间距报警音量
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一仪表设定
{ {CN_User_Menu2_04_01black , CN_User_Menu2_04_01white }, {SpriteSize, SpriteSize} },//一一一一一一一一一LDWS 警报演示
{ {CN_User_Menu2_04_02black , CN_User_Menu2_04_02white }, {SpriteSize, SpriteSize} },//一一一一一一一一AEBS第1警报演示
{ {CN_User_Menu2_04_03black , CN_User_Menu2_04_03white }, {SpriteSize, SpriteSize} },//一一一一一一一一AEBS第2警报演示
{ {CN_User_Menu2_04_04black , CN_User_Menu2_04_04white }, {SpriteSize, SpriteSize} },//一一一一一一AEBS全力制动警报演示
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一轮胎气压
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一轮胎温度
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一一设定年
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一一设定月
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一一设定日
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一设定小时
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一设定分钟
{ {CN_User_Menu3_03_14_02black , CN_User_Menu3_03_14_02white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一一一时间
{ {CN_User_Menu3_03_14_01black , CN_User_Menu3_03_14_01white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一一一一日期
{ {CN_User_Menu3_03_07_01black , CN_User_Menu3_03_07_01white }, {SpriteSize, SpriteSize} },//-一一一一一一一速度设定-高速路
{ {CN_User_Menu3_03_07_02black , CN_User_Menu3_03_07_02white }, {SpriteSize, SpriteSize} },//-一一一一一一一速度设定-一般路
{ {CN_User_Menu3_03_07_03black , CN_User_Menu3_03_07_03white }, {SpriteSize, SpriteSize} },//-一一一一一一一一发动机转速设定
{ {CN_User_Menu3_03_07_04black , CN_User_Menu3_03_07_04white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一急加速设定
{ {CN_User_Menu3_03_07_05black , CN_User_Menu3_03_07_05white }, {SpriteSize, SpriteSize} },//-一一一一一一一一一一急减速设定
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一一长时间怠速设定
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-一一一一一一一辅助驻车解除设定
{ {SpriteSize , SpriteSize }, {SpriteSize, SpriteSize} },//-设定车间距报警音量(图形界面)
};
//************************************************************************************************************************************************
const uint16_t Menu_title_picture[MENU_INTERFACE_MAX][2] =
{
{SpriteSize, SpriteSize},/*入口*/
{SpriteSize, SpriteSize},/*行车信息 通常显示*/
//*************************************************************************************
{CN_User_Menu1_wenzi , SpriteSize},//一级菜单
{CN_User_Menu2_02_wenzi , SpriteSize},//二级菜单---维修通知(保养通知)
{CN_User_Menu2_03wenzi , SpriteSize},//二级菜单---维修通知的设定(保养通知的设定)
{CN_User_Menu2_05wenzi , SpriteSize},//二级菜单---用户设定
{CN_User_Menu2_04wenzi , SpriteSize},//二级菜单---系统演示模式
{SpriteSize , SpriteSize},//二级菜单---轮胎状态显示
{CN_User_Menu2_05wenzi , SpriteSize},//三级菜单---设定日期(年)
{CN_User_Menu2_05wenzi , SpriteSize},//四级菜单---设定日期(月)
{CN_User_Menu2_05wenzi , SpriteSize},//五级菜单---设定日期(日)
{CN_User_Menu2_05wenzi , SpriteSize},//三级菜单---设定时间(小时)
{CN_User_Menu2_05wenzi , SpriteSize},//四级菜单---设定时间(分钟)
{CN_User_Menu2_05wenzi , SpriteSize},//三级菜单---设定显示
{CN_User_Menu2_05wenzi , SpriteSize},//三级菜单---设定节油驾驶建议
{SpriteSize , SpriteSize},//三级菜单---设定车间距报警音量
};
//*************************************************************************************************************************************
//ZH:
uint16_t the_first_item_in_each_Interface[MENU_INTERFACE_MAX]={0};//各个菜单界面里的第一个菜单项
//**************************************************************************************************************************************
//**************************************************************************************************************************************
void find_the_first_item_in_each_Interface(void);
Menu_Interface_en_t menu_interface(Menu_Item_en_t menu_item);
//---------------------------------------------------------
//菜单项刷图
//---------------------------------------------------------
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_Menu_Item
* Description : 显示菜单
* Input : Cursor - 当前光标 Language - 语言
* Output : None
* Return : None
* other : None
--------------------------------------------------------------------------*/
static int size1;
void GUI_Display_Menu_Item(uint8_t Cursor, uint8_t Language)
{
size1 = sizeof(Menu_item_picture);
uint16_t current_interface = 0u;//当前界面
uint16_t current_interface_first_item = 0u;//当前界面首行 的菜单项
uint16_t current_screen_first_item = 0u;//当前屏幕首行 的菜单项
find_the_first_item_in_each_Interface();
current_interface = menu_interface(Cursor);//当前界面
current_interface_first_item = the_first_item_in_each_Interface[current_interface];//当前界面首行 的菜单项
current_screen_first_item = current_interface_first_item;//当前屏幕首行 的菜单项
//******************************************************************************
//确定当前屏幕首行
if (Cursor <= current_interface_first_item + 3u)
{
current_screen_first_item = current_interface_first_item;
}
else
{
current_screen_first_item = Cursor-3u;
}
//*******************************************************************************
//*******************************************************************************
//屏幕 第 1 行
if (menu_interface(current_screen_first_item) == current_interface)
{
if (current_screen_first_item == Cursor)
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item][Language].selected, 423u,221u, GUI_BLENDMODE_SRC_OVER); //;
}
else
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item][Language].unselected, 423u,221u, GUI_BLENDMODE_SRC_OVER); //
}
}
else
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//
}
//*******************************************************************************
//屏幕 第 2 行
if (menu_interface(current_screen_first_item + 1u) == current_interface)
{
if (current_screen_first_item + 1u == Cursor)
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item + 1u][Language].selected, 423u,256u, GUI_BLENDMODE_SRC_OVER); //
}
else
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item + 1u][Language].unselected, 423u,256u, GUI_BLENDMODE_SRC_OVER); //
}
}
else
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//
}
//*******************************************************************************
//屏幕 第 3 行
if (menu_interface(current_screen_first_item + 2u) == current_interface)
{
if (current_screen_first_item + 2u == Cursor)
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item + 2u][Language].selected, 423u,292u, GUI_BLENDMODE_SRC_OVER); //
}
else
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item + 2u][Language].unselected, 423u,292u, GUI_BLENDMODE_SRC_OVER); //
}
}
else
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//
}
//*******************************************************************************
//屏幕 第 4 行
if (menu_interface(current_screen_first_item + 3u) == current_interface)
{
if (current_screen_first_item + 3u == Cursor)
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item + 3u][Language].selected, 423u,327u, GUI_BLENDMODE_SRC_OVER); //
}
else
{
GUI_Translate_Display(MultiPurpose_Sprite, Menu_item_picture[current_screen_first_item + 3u][Language].unselected, 423u,327u, GUI_BLENDMODE_SRC_OVER); //
}
}
else
{
GUI_General_Display(MultiPurpose_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);//
}
//*******************************************************************************
//显示菜单标题:
GUI_General_Display(MultiPurpose_Sprite, Menu_title_picture[current_interface][Language], GUI_BLENDMODE_SRC_OVER);//
if (Menu_title_picture[current_interface][Language] == SpriteSize)
{
;
}
else
{
GUI_General_Display(MultiPurpose_Sprite, fengexian, GUI_BLENDMODE_SRC_OVER);//刷菜单界面标题分割线。
GUI_General_Display(MultiPurpose_Sprite, gundongtiao, GUI_BLENDMODE_SRC_OVER);//刷菜单界面滚动条。
}
}
//************************************************************************************************
//************************************************************************************************
//ZH:
void find_the_first_item_in_each_Interface(void)//此函数运行一次会自动填写一个数组,数组的下标为“菜单界面”枚举,数组元素 为 相应的菜单界面 的 首行菜单项 的枚举。(本函数仅在单片机复位后执行一次,之后即使调用也不会执行)
{
static uint8_t Execute_only_once = 0u;//此变量为0时,下面的for循环才执行。
Menu_Item_en_t i = 0u;//for循环 使用的变量。
if (Execute_only_once == 0u)
{
Execute_only_once = 1u;
for (i = MENU_ITEM_MAX; i > 0u; i--)
{
if (menu_interface(i - 1u) < MENU_INTERFACE_MAX)
{
the_first_item_in_each_Interface[ menu_interface(i - 1u) ] = (i - 1u);
}
else
{
;
}
}
}
else
{
;
}
}
Menu_Interface_en_t menu_interface(Menu_Item_en_t menu_item)//本函数 查表返回 一个菜单界面。用于获知一个 菜单项 属于哪一 菜单界面。
{
Menu_Interface_en_t menu_interface = 0u;
menu_interface = stMenuItemAttribute[menu_item].enMenuLocateInterface;
return menu_interface;
}
...@@ -3,531 +3,185 @@ ...@@ -3,531 +3,185 @@
#include "TYW_stdint.h" #include "TYW_stdint.h"
//typedef signed char int8_t; #ifdef GLOBALS_MEU_PROCESS
//typedef unsigned char uint8_t; #define EXTERN_MEU_PROCESS
//typedef unsigned char INT8U; #else
//typedef int int16_t; #define EXTERN_MEU_PROCESS extern
//typedef unsigned int uint16_t; #endif
//typedef unsigned int INT16U;
//typedef long int32_t;
//typedef unsigned long uint32_t;
//typedef unsigned long INT32U;
//typedef long long int64_t;
//typedef unsigned long long uint64_t;
/*
使用注意事项:
1、当光标在某个分枝时,不可以把该分枝最顶层菜单界面的选项都设置成条件取消的状态。
都取消了,光标往哪跳!!!
2、考虑上述问题,建议那些一个分枝就一个菜单项的那种,不要设置条件取消。
不需要的时候不跳转到那个分枝就好。
3、所有函数请在主循环内调用,不要在中断内调用。
*/
//*********************************************************************************************************
//*********************************************************************************************************
/*所有 [菜单项] 的枚举
即使某些菜单项在显示上相同,但因隶属不同菜单界面,所以要用不同枚举区分
*/
typedef enum
{
//行车信息
MENU_ITEM_DRIVE_INFOR_TRIPA = 0 ,/*00 TRIPA 平均油耗/平均车速显示画面 */
MENU_ITEM_DRIVE_INFOR_TRIPB ,/*01 TRIPB 平均油耗/平均车速显示画面 */
MENU_ITEM_DRIVE_INFOR_VOLTMETER ,/*02 电压计显示画面 */
MENU_ITEM_DRIVE_INFOR_CALENDAR ,/*03 日期/时钟显示画面 */
MENU_ITEM_DRIVE_INFOR_TIME_TABLE ,/*04 计时表/油温计显示画面 */
MENU_ITEM_DRIVE_INFOR_DPD_ACCUMULATION ,/*05 DPD堆积量显示画面 */
MENU_ITEM_DRIVE_INFOR_DPD_REGENERATION ,/*06 DPD再生进度显示画面 */
/*-----------------以下为菜单-----------------*/
/********************************************************************************************************
用户模式
*********************************************************************************************************/
//一级菜单
//MENU
MENU_ITEM_LEVEL_1_DTC ,/*07 故障代码 */
MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE ,/*08 维修通知 */
MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET ,/*09 维修通知的设定 */
MENU_ITEM_LEVEL_1_USER_SET ,/*10 用户设定 */
MENU_ITEM_LEVEL_1_SYS_DISPLAY_MODE ,/*12 系统演示模式 */
MENU_ITEM_LEVEL_1_TIRE_STATUS_DISPLAY ,//轮胎状态显示
//*******************************************************************************************************
//二级菜单---维修通知(保养通知)
//MAINTENANCE_NOTICE
MENU_ITEM_LEVEL_2_ENGINE_OIL_AND_FILTER ,//发动机机油和滤清器
MENU_ITEM_LEVEL_2_FUEL_FILTER ,//燃油滤清器
MENU_ITEM_LEVEL_2_TRANSMISSION_OIL ,//变速箱油
MENU_ITEM_LEVEL_2_DIFFERENTIAL_OIL ,//差速器油
MENU_ITEM_LEVEL_2_AIR_DRYER_DESICCANT ,//空气干燥器干燥剂
MENU_ITEM_LEVEL_2_POWER_STEERING_FLUID ,//动力转向液
MENU_ITEM_LEVEL_2_TIRE ,//轮胎
MENU_ITEM_LEVEL_2_STARTER ,//起动机
//二级菜单---维修通知的设定(保养通知的设定)
//MAINTENANCE_NOTICE_SET
MENU_ITEM_LEVEL_2_REPLACE_ENGINE_OIL_AND_FILTER ,//更换发动机机油和滤清器
MENU_ITEM_LEVEL_2_REPLACE_FUEL_FILTER_REPLACE ,//更换燃油滤清器
MENU_ITEM_LEVEL_2_REPLACE_TRANSMISSION_OIL ,//更换变速箱油
MENU_ITEM_LEVEL_2_REPLACE_DIFFERENTIAL_OIL ,//更换差速器油
MENU_ITEM_LEVEL_2_SMOOTHER_CLUTCH_OIL ,//SMOOTHER离合器油
MENU_ITEM_LEVEL_2_REPLACE_POWER_STEERING_FLUID ,//更换动力转向液
MENU_ITEM_LEVEL_2_REPLACE_TIRE ,//更换轮胎
MENU_ITEM_LEVEL_2_REPLACE_STARTER ,//更换起动机
//二级菜单---用户设定
//USER_SET
MENU_ITEM_LEVEL_2_SET_DATE ,//设定日期
MENU_ITEM_LEVEL_2_SET_TIME ,//设定时间
MENU_ITEM_LEVEL_2_SET_DISPLAY ,//设定显示
MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION ,//设定节油驾驶建议
MENU_ITEM_LEVEL_2_SET_VEHICLE_SPACING_ALARM_VOLUME ,//设定车间距报警音量
MENU_ITEM_LEVEL_2_METER_SET ,//仪表设定
//二级菜单---系统演示模式
//SYS_DISPLAY_MODE
MENU_ITEM_LEVEL_2_LDWS_ALERT_DEMO ,//LDWS 警报演示
MENU_ITEM_LEVEL_2_AEBS_FIRST_ALERT_DEMO ,//AEBS第1警报演示
MENU_ITEM_LEVEL_2_AEBS_SECOND_ALERT_DEMO ,//AEBS第2警报演示
MENU_ITEM_LEVEL_2_AEBS_FULL_BRAKING_ALERT_DEMO ,//AEBS全力制动警报演示
//二级菜单---轮胎状态显示
//TIRE_STATUS_DISPLAY
MENU_ITEM_LEVEL_2_TIRE_PRESSURE ,//轮胎气压
MENU_ITEM_LEVEL_2_TIRE_TEMP ,//轮胎温度
//*************************************************************
//三级菜单---设定日期(年)
//SET_DATE_YEAR
MENU_ITEM_LEVEL_3_SET_DATE_YEAR,//设定年
//四级菜单---设定日期(月)
//SET_DATE_MONTH
MENU_ITEM_LEVEL_4_SET_DATE_MONTH,//设定月
//五级菜单---设定日期(日)
//SET_DATE_DATE
MENU_ITEM_LEVEL_5_SET_DATE_DATE,//设定日
//*************************************************************
//三级菜单---设定时间(小时)
//SET_TIME_HOUR
MENU_ITEM_LEVEL_3_SET_TIME_HOUR,//设定小时
//四级菜单---设定时间(分钟)
//SET_TIME_MINUTE
MENU_ITEM_LEVEL_4_SET_TIME_MINUTE,//设定分钟
//*************************************************************
//三级菜单---设定显示
//SET_DISPLAY
MENU_ITEM_LEVEL_3_TIME,//时间
MENU_ITEM_LEVEL_3_DATE,//日期
//三级菜单---设定节油驾驶建议
//SET_SAVE_FUEL_DRIVE_SUGGESTION
MENU_ITEM_LEVEL_3_SPEED_SETTING_HIGH_SPEED_ROAD ,//速度设定-高速路
MENU_ITEM_LEVEL_3_SPEED_SETTING_GENERAL_ROAD ,//速度设定-一般路
MENU_ITEM_LEVEL_3_ENGINE_SPEED_SETTING ,//发动机转速设定
MENU_ITEM_LEVEL_3_RAPID_ACCELERATION_SETTING ,//急加速设定
MENU_ITEM_LEVEL_3_RAPID_DECELERATION_SETTING ,//急减速设定
MENU_ITEM_LEVEL_3_LONG_IDLE_SETTING ,//长时间怠速设定
MENU_ITEM_LEVEL_3_AUXILIARY_PARKING_RELEASE_SETTING ,//辅助驻车解除设定
//三级菜单---设定车间距报警音量
//SET_VEHICLE_SPACING_ALARM_VOLUME
MENU_ITEM_LEVEL_3_SET_VEHICLE_SPACING_ALARM_VOLUME ,//设定车间距报警音量(图形界面)
MENU_ITEM_MAX,
} Menu_Item_en_t;
/*所有菜单 [界面] 的枚举*/
typedef enum
{
MENU_INTF_ENTRANCE = 0U ,/*入口*/
MENU_INTF_DRIVE_INFOR ,/*行车信息 通常显示*/
//================用户模式==============================
MENU_INTF_U_LEVEL_1_MENU ,//一级菜单
MENU_INTF_U_MAINTENANCE_NOTICE ,//二级菜单---维修通知(保养通知)
MENU_INTF_U_MAINTENANCE_NOTICE_SET ,//二级菜单---维修通知的设定(保养通知的设定)
MENU_INTF_U_USER_SET ,//二级菜单---用户设定
MENU_INTF_U_SYS_DISPLAY_MODE ,//二级菜单---系统演示模式
MENU_INTF_U_TIRE_STATUS_DISPLAY ,//二级菜单---轮胎状态显示
MENU_INTF_U_SET_DATE_YEAR ,//三级菜单---设定日期(年)
MENU_INTF_U_SET_DATE_MONTH ,//四级菜单---设定日期(月)
MENU_INTF_U_SET_DATE_DATE ,//五级菜单---设定日期(日)
MENU_INTF_U_SET_TIME_HOUR ,//三级菜单---设定时间(小时)
MENU_INTF_U_SET_TIME_MINUTE ,//四级菜单---设定时间(分钟)
MENU_INTF_U_SET_DISPLAY ,//三级菜单---设定显示
MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION ,//三级菜单---设定节油驾驶建议
MENU_INTF_U_SET_VEHICLE_SPACING_ALARM_VOLUME ,//三级菜单---设定车间距报警音量
MENU_INTERFACE_MAX,
} Menu_Interface_en_t;
/*所有菜单 [分支] */
typedef enum
{
//MENU_BRANCH_ANIMATION = 0U , /*开机动画*/
MENU_BRANCH_NORMAL_DISPLAY = 0U , /*通常显示(行车信息)*/
MENU_BRANCH_USER_MODE_MENU , /* 用户模式 菜单*/
MENU_BRANCH_FACTORY_MODE_MENU , /* 工厂模式 菜单*/
MENU_BRANCH_DEALER_MODE_MENU , /*经销商模式 菜单*/
MENU_BRANCH_MAX,
} Menu_Branch_en_t;
/*--------------------------Do not modify the following--------------------------------*/
/*--------------------------Do not modify the following--------------------------------*/
/*--------------------------Do not modify the following--------------------------------*/
#define MENU_FIXED_PART_LEN 20U
#define MENU_VARIABLE_PART_1_LEN 4U
#define MENU_VARIABLE_PART_2_LEN 4U
#define MENU_VARIABLE_PART_3_LEN 8U
#define MENU_RAM_DATA_LEN (MENU_VARIABLE_PART_1_LEN * MENU_BRANCH_MAX + MENU_VARIABLE_PART_2_LEN * MENU_INTERFACE_MAX + MENU_VARIABLE_PART_3_LEN * MENU_ITEM_MAX + MENU_FIXED_PART_LEN)
/*-------------------------配置字说明---------------
预留位必须填0,其他位根据需要自行选择。
0x0001位:是否可循环,顶端底端循环衔接与否 1:可循环,0:不可循环
0x0002位:预留
0x0004位:预留
0x0008位:预留
0x0010位:预留
0x0020位:预留
0x0040位:预留
0x0080位:预留
0x0100位:预留
0x0200位:预留
0x0400位:预留
0x0800位:预留
0x1000位:预留
0x2000位:预留
0x4000位:预留
0x8000位:预留
--------------------------------------------*/
/*----菜单支持的按键类型-----------*/
typedef enum
{
MENU_KEY_NONE = 0U,
/*6个按键的短按动作*/
MENU_KEY_UP_SHORT,
MENU_KEY_DOWN_SHORT,
MENU_KEY_LEFT_SHORT,
MENU_KEY_RIGHT_SHORT,
MENU_KEY_CANCEL_SHORT,
MENU_KEY_CONFIRM_SHORT,
/*仅针对菜单光标的特殊触发动作*/
MENU_KEY_TIMEOUT, /*超时动作触发*/
/*6个按键的长按动作*/
MENU_KEY_UP_LONG,
MENU_KEY_DOWN_LONG,
MENU_KEY_LEFT_LONG,
MENU_KEY_RIGHT_LONG,
MENU_KEY_CANCEL_LONG,
MENU_KEY_CONFIRM_LONG,
/*6个按键的超长按动作*/
MENU_KEY_UP_SUPER_LONG,
MENU_KEY_DOWN_SUPER_LONG,
MENU_KEY_LEFT_SUPER_LONG,
MENU_KEY_RIGHT_SUPER_LONG,
MENU_KEY_CANCEL_SUPER_LONG,
MENU_KEY_CONFIRM_SUPER_LONG,
/*针对具体功能的特殊操作按键*/
MENU_KEY_FUNCTION_1_SHORT,
MENU_KEY_FUNCTION_1_LONG,
MENU_KEY_FUNCTION_1_SUPER_LONG,
MENU_KEY_FUNCTION_2_SHORT,
MENU_KEY_FUNCTION_2_LONG,
MENU_KEY_FUNCTION_2_SUPER_LONG,
MENU_KEY_MAX,
} Menu_Key_en_t;
/*------菜单操作方向-------------------------------------------
--------默认纵向时,上下按键实现菜单项切换,左右按键实现翻页功能-----------
--------横向时,左右按键实现菜单项切换,上下按键实现翻页功能--------------
-------------------------------*/
typedef enum
{
MENU_DIRECTION_LONGITUDINAL = 0U, /*纵向*/
MENU_DIRECTION_TRANSVERSE, /*横向*/
MENU_DIRECTION_MAX,
} Menu_Direction_en_t;
/*------菜单跳转类型选择,菜单界面发生变化时,确定进入,按键返回,超时返回等-----------*/
typedef enum
{
/*跳转到首个位置*/
MENU_JUMP_FIRST = 0U,
/*跳转到末尾位置*/
MENU_JUMP_END,
/*跳转到已选择的菜单项上,如果有多个,选择位置靠前的*/
MENU_JUMP_SELECT,
/*跳转到上一次光标位置*/
MENU_JUMP_LAST_POSITION,
MENU_JUMP_MAX,
} Menu_Jump_Type_en_t;
/*当发生分枝切换时,对目标分枝光标的处理方式*/
typedef enum
{
/*修改光标位置到分枝的首个位置上*/
MENU_CHANGE_FIRST = 0U,
/*不修改光标位置,也就是记忆了光标位置。*/
MENU_CHANGE_HOLD,
/*修改光标位置到上一个菜单层级*/
MENU_CHANGE_PREVIOUS,
MENU_CHANGE_MAX, #define _MN_IDX_NULL 0xff
#define _MN_IDX_NULL0 0x00
#define _MN_OPR_NULL (void *)0
} Menu_Change_Type_en_t;
/*
错误检查结果
*/
typedef enum typedef enum
{ {
MENU_ERROR_NONE = 0U, /*主界面*/
MENU_ERROR_1, /*菜单项所隶属的菜单界面信息错误*/ _MN_DSP_LEVEL1MENU_1 = 0, // 0
MENU_ERROR_2, /*菜单项所隶属的菜单分支信息错误*/ _MN_DSP_LEVEL1MENU_2, // 1
MENU_ERROR_3, /*屏幕上每列可显示的行数需要小于等于菜单界面的总数 */ _MN_DSP_LEVEL1MENU_3, // 2
MENU_ERROR_4, _MN_DSP_LEVEL1MENU_4, // 3
MENU_ERROR_5, /*确认、返回、超时三个触发动作的跳转方式错误 */ _MN_DSP_LEVEL1MENU_5, // 4
MENU_ERROR_6, /*界面内所有菜单项是按照顺序填写的,*/ _MN_DSP_LEVEL1MENU_6, // 5
MENU_ERROR_7, /*同一个菜单界面内所填总数数值是一致的*/ _MN_DSP_LEVEL1MENU_7, // 6
MENU_ERROR_8, /*同一个菜单界面内所有菜单项的上级菜单项也是一致的。*/ _MN_DSP_LEVEPOPUP,
MENU_ERROR_9, /*同一个菜单界面内每列可显示的行数也是一致的。*/ /*一级菜单*/
MENU_ERROR_10, /*菜单界面内每个菜单项对应的总数与实际填写的菜单项项数量需要对应*/ _MN_DSP_LEVEL2MENU_1, // 6
MENU_ERROR_11, /*菜单界面枚举数量和实际填写的菜单界面数量能对应上*/ _MN_DSP_LEVEL2MENU_2, // 7
MENU_ERROR_12, /*分枝内菜单项序号不连续*/ _MN_DSP_LEVEL2MENU_3, // 8
MENU_ERROR_13, /*分枝内菜单项总数不一致*/ _MN_DSP_LEVEL2MENU_4, // 9
MENU_ERROR_14, /*分枝内菜单项的总数与实际填写的数量不对应*/ _MN_DSP_LEVEL2MENU_7, // 10
MENU_ERROR_15, /*菜单分枝枚举数量和实际填写的菜单分枝数量不对应*/ _MN_DSP_LEVEL2MENU_5, // 11
MENU_ERROR_16, /*菜单项所填方向信息错误*/ _MN_DSP_LEVEL2MENU_6, // 12
MENU_ERROR_17, /*不可以向上无限循环。enMenuBelongItem填写错误*/
MENU_ERROR_18, /*二级菜单*/
MENU_ERROR_19, /*菜单界内的菜单项必须连续,不可分散排列。*/ _MN_DSP_LEVEL2_1_MENU_1, // 13
MENU_ERROR_20, /*菜单分枝内所有的菜单项必须连续排列。不可分散排列。*/
MENU_ERROR_21, /*确认按键跳级或者多个菜单界面的上级菜单项共用了一个*/ _MN_DSP_LEVEL2_2_MENU_1, // 14
MENU_ERROR_22, /*确认按键不可以跨分枝跳转*/ _MN_DSP_LEVEL2_2_MENU_2, // 15
MENU_ERROR_23, _MN_DSP_LEVEL2_2_MENU_3, // 16
MENU_ERROR_24, _MN_DSP_LEVEL2_2_MENU_4, // 17
MENU_ERROR_25, //_MN_DSP_LEVEL2_2_MENU_5 , //21
_MN_DSP_LEVEL2_2_MENU_6, // 18
/*多对一。多个菜单项上按下确认后都跳到同一个菜单界面上。 _MN_DSP_LEVEL2_2_MENU_7, // 19
在能确保多对一中,“多”代表的所有菜单项存在条件永远成立时,可忽略本条。 _MN_DSP_LEVEL2_2_MENU_8, // 20
*/ _MN_DSP_LEVEL2_2_MENU_9, // 21
MENU_WARNING_1,
_MN_DSP_LEVEL2_3_MENU_1, // 22
MENU_ERROR_MAX, _MN_DSP_LEVEL2_3_MENU_2, // 23
_MN_DSP_LEVEL2_3_MENU_3, // 24
} Menu_Error_en_t; _MN_DSP_LEVEL2_3_MENU_4, // 25
//_MN_DSP_LEVEL2_3_MENU_5 , //30
/*菜单初始化类型*/ _MN_DSP_LEVEL2_3_MENU_6, // 26
typedef struct _MN_DSP_LEVEL2_3_MENU_7, // 27
{
Menu_Item_en_t enMenuItemLen; _MN_DSP_LEVEL2_4_MENU_1, // 28
Menu_Interface_en_t enMenuInterfaceLen; _MN_DSP_LEVEL2_4_MENU_2, // 29
Menu_Branch_en_t enMenuBranchLen; _MN_DSP_LEVEL2_4_MENU_3, // 30
_MN_DSP_LEVEL2_4_MENU_A, // 31 ̥ѹÉèÖýçÃæ
uint32_t u32MenuConfig; _MN_DSP_LEVEL2_4_MENU_4, // 32
_MN_DSP_LEVEL2_4_MENU_5, // 33
} Menu_Init_st_t; _MN_DSP_LEVEL2_4_MENU_6, // 34
_MN_DSP_LEVEL2_4_MENU_7, // 35
typedef void (*Logic_Operation)(Menu_Key_en_t enKeyType); _MN_DSP_LEVEL2_4_MENU_8, // 36
_MN_DSP_LEVEL2_4_MENU_9, // 37
/*每个菜单项的固定属性*/ _MN_DSP_LEVEL2_7_MENU_1, // 38 ̥ѹÏÔʾ½çÃæ
/*三级菜单*/
//_MN_DSP_LEVEL3_1_MENU_1 , //42
//_MN_DSP_LEVEL3_1_MENU_2 , //43
//_MN_DSP_LEVEL3_1_MENU_3 , //44
//_MN_DSP_LEVEL3_1_MENU_4 , //45
//_MN_DSP_LEVEL3_1_MENU_5 ,
_MN_DSP_LEVEL3_2_MENU_1, // 39
_MN_DSP_LEVEL3_2_MENU_2, // 40
_MN_DSP_LEVEL3_2_MENU_3, // 41
_MN_DSP_LEVEL3_2_MENU_4, // 42
//_MN_DSP_LEVEL3_2_MENU_5 , //50
_MN_DSP_LEVEL3_2_MENU_6, // 43
_MN_DSP_LEVEL3_2_MENU_7, // 44
_MN_DSP_LEVEL3_2_MENU_8, // 45
_MN_DSP_LEVEL3_2_MENU_9, // 46
_MN_DSP_LEVEL3_3_MENU_1, // 47
_MN_DSP_LEVEL3_3_MENU_2, // 48
_MN_DSP_LEVEL3_3_MENU_3, // 49
_MN_DSP_LEVEL3_3_MENU_4, // 50
//_MN_DSP_LEVEL3_3_MENU_5 , //59
_MN_DSP_LEVEL3_3_MENU_6, // 51
_MN_DSP_LEVEL3_3_MENU_7, // 52
_MN_DSP_LEVEL3_4_MENU_11, // 53
_MN_DSP_LEVEL3_4_MENU_12, // 54
_MN_DSP_LEVEL3_4_MENU_21, // 55
_MN_DSP_LEVEL3_4_MENU_22, // 56
_MN_DSP_LEVEL3_4_MENU_3, // 57
_MN_DSP_LEVEL3_4_MENU_41, // 58
_MN_DSP_LEVEL3_4_MENU_42, // 59
_MN_DSP_LEVEL3_4_MENU_43, // 60
_MN_DSP_LEVEL3_4_MENU_44, // 61
_MN_DSP_LEVEL3_4_MENU_45, // 62
_MN_DSP_LEVEL3_4_MENU_51, // 63
_MN_DSP_LEVEL3_4_MENU_52, // 64
_MN_DSP_LEVEL3_4_MENU_6, // 65
_MN_DSP_LEVEL3_4_MENU_7, // 66
_MN_DSP_LEVEL3_4_MENU_8, // 67
_MN_DSP_LEVEL3_4_MENU_9, // 68
_MN_DSP_LEVEL3_4_MENU_A, // 69
/*四级菜单*/
_MN_DSP_LEVEL4_1_MENU_1, // 70
_MN_DSP_LEVEL4_1_MENU_2, // 71
_MN_DSP_LEVEL4_2_MENU_1, // 72
_MN_DSP_LEVEL4_2_MENU_2, // 73
_MN_DSP_LEVEL4_4_MENU_1, // 74
_MN_DSP_LEVEL4_4_MENU_2, // 75
_MN_DSP_LEVEL4_4_MENU_3, // 76
_MN_DSP_LEVEL4_4_MENU_4, // 77
_MN_DSP_LEVEL4_4_MENU_5, // 78
_MN_DSP_LEVEL4_5_MENU_1, // 79
_MN_DSP_LEVEL4_5_MENU_2, // 80
/*特殊界面*/
_MN_DSP_HSAENTER_MENU, // 81
_MN_DSP_ENTER_MENU, // 82
_MN_DSP_RETURN_MENU, // 83
};
typedef uint8_t _MENU_IDX;
typedef struct typedef struct
{ {
_MENU_IDX VK_IDX_ENTER;
Menu_Branch_en_t enMenuLocateBranch;/*定位在哪个分枝上*/ _MENU_IDX VK_IDX_UP;
_MENU_IDX VK_IDX_DOWN;
Menu_Interface_en_t enMenuLocateInterface;/*定位在哪个菜单界面内*/ _MENU_IDX VK_IDX_EXIT;
Menu_Item_en_t enMenuBelongItem;/*归属哪个菜单项,上级菜单项。一般可以理解为在哪个菜单项上按确认按键进入的*/ void (*Enter)(void);
void (*Do)(void);
void (*Exit)(void);
} _MenuOptTab;
uint32_t u32MenuPositionInInterface;/*序号(该菜单项在其界面中的位置)-----------该菜单项所在界面的位置,一定顺序填写,从0开始*/
EXTERN_MEU_PROCESS uint8_t bMenuSwFlag;
uint32_t u32MenuItemTotalInInterface;// /*总数------该菜单项所在界面的所有项数*/-------------------|___(有些界面不止一列,可能每列行数不同) EXTERN_MEU_PROCESS uint8_t g_ClearWin1;
uint32_t u32MenuTransverseNum;// /*行数-------------屏幕内可显示的每一列最多有几个横向行*/---------| EXTERN_MEU_PROCESS uint8_t bNextMenuIDX; // the next index of menu .
EXTERN_MEU_PROCESS uint8_t bCurMenuIDX; // the current index of menu.
uint32_t u32MenuPositionInBranch;/*序号----------该菜单项所在分支的位置,一定顺序填写,从0开始。0表示首个位置*/ EXTERN_MEU_PROCESS uint8_t bMainMenuIDX; // the current index of menu.
EXTERN_MEU_PROCESS uint8_t bOldMenuIDX; // the Old index of menu.
uint32_t u32MenuItemTotalInBranch;/*总数---------该菜单项所在分支的所有项数*/
EXTERN_MEU_PROCESS const _MenuOptTab MenuOptTab[]; // add
EXTERN_MEU_PROCESS void NextMenu(_MENU_IDX idx);
EXTERN_MEU_PROCESS void MenuInit(void);
EXTERN_MEU_PROCESS void MenuManage(void);
Menu_Direction_en_t enMenuDirection;/*菜单方向*/
EXTERN_MEU_PROCESS void Level1Menu_1Enter(void);
uint32_t u32MenuKeyBit;/*本菜单项都支持哪些触发动作。待开发,暂定填0xFF即可*/ EXTERN_MEU_PROCESS void Level1Menu_1Do(void);
EXTERN_MEU_PROCESS void Level1Menu_1Exit(void);
Menu_Interface_en_t enMenuNextInterface;/*下一级菜单界面,也就是按下确认按键后需要跳转到的界面,如果没有下级菜单时填0xFFFF,不要填本身序号*/ EXTERN_MEU_PROCESS void Level1Menu_2Enter(void);
EXTERN_MEU_PROCESS void Level1Menu_2Do(void);
Menu_Jump_Type_en_t enMenuNextJumpPostion;/*按下确认按键,进入新菜单界面时,光标跳转类型*/ EXTERN_MEU_PROCESS void Level1Menu_2Exit(void);
Menu_Interface_en_t enMenuPreviousInterface;/*上一级菜单界面,也就是按下返回按键后需要跳转到的界面,如果没有上级菜单时填0xFFFF,不要填本身序号*/ EXTERN_MEU_PROCESS void Level1Menu_3Enter(void);
EXTERN_MEU_PROCESS void Level1Menu_3Do(void);
Menu_Jump_Type_en_t enMenuPreviousJumpPostion;/*按下返回按键,返回菜单界面时,光标跳转类型*/ EXTERN_MEU_PROCESS void Level1Menu_3Exit(void);
Menu_Interface_en_t enMenuTimeoutInterface; /*按键超时时需要返回到的菜单界面,如果不需要返回(返回到自身)时填0xFFFF不要填本身序号*/
EXTERN_MEU_PROCESS void Level1Menu_4Enter(void);
Menu_Jump_Type_en_t enMenuTimeoutJumpPostion; /*超时返回界面中光标跳转的类型*/ EXTERN_MEU_PROCESS void Level1Menu_4Do(void);
EXTERN_MEU_PROCESS void Level1Menu_4Exit(void);
/*----------------------------------------------------------*/ EXTERN_MEU_PROCESS void Level1Menu_5Enter(void);
Logic_Operation pfnLogicOperationCallBack; /* 具体功能逻辑的回调函数,按键操作类型,上下左右确认返回 */ EXTERN_MEU_PROCESS void Level1Menu_5Do(void);
EXTERN_MEU_PROCESS void Level1Menu_5Exit(void);
} Menu_Item_Attribute_st_t; EXTERN_MEU_PROCESS void Level1Menu_6Enter(void);
EXTERN_MEU_PROCESS void Level1Menu_6Do(void);
/*--------------------------------------------------------------------------------------------*/ EXTERN_MEU_PROCESS void Level1Menu_6Exit(void);
extern const Menu_Item_Attribute_st_t stMenuItemAttribute[MENU_ITEM_MAX];
/*------------------------------------------------------------------------------------*/ EXTERN_MEU_PROCESS void Level1Menu_7Enter(void);
/* EXTERN_MEU_PROCESS void Level1Menu_7Do(void);
调试开发阶段使用,检测所填属性表是否有错误. EXTERN_MEU_PROCESS void Level1Menu_7Exit(void);
返回值是MENU_ERROR_NONE时,才可调用后续其他函数。
注意每次修改属性表,都调用一下该函数,确定属性表填写无误。 EXTERN_MEU_PROCESS void LevelPopup_Enter(void);
已经确认属性表无误之后可屏蔽该函数。 EXTERN_MEU_PROCESS void LevelPopup_Do(void);
EXTERN_MEU_PROCESS void LevelPopup_Exit(void);
enItemMAX:最大菜单项数,也就是MENU_ITEM_MAX
enInterfaceMAX:最大菜单界面数,也就是MENU_INTERFACE_MAX
enBranchMAX:最大菜单分枝数,也就是MENU_BRANCH_MAX
*/
extern Menu_Error_en_t Menu_Attribute_Error_Check(uint8_t *pu8MenuRamData, const Menu_Item_Attribute_st_t *pstMenuAttribute, Menu_Init_st_t *pstMenuInit);
/*
首次上电调用一次即可,不必重复调用。
初始化默认所有菜单项有效,且没有被选中。
u32MenuItemLen:最大菜单项数,也就是MENU_ITEM_MAX
u32MenuInterfaceLen:最大菜单界面数,也就是MENU_INTERFACE_MAX
u32MenuBranchLen:最大菜单分枝数,也就是MENU_BRANCH_MAX
u32MenuConfig:配置字,根据实际需要填写。
*/
extern void Menu_Init(uint8_t *pu8MenuRamData, const Menu_Item_Attribute_st_t *pstMenuAttribute, Menu_Init_st_t *pstMenuInit);
/*
每次休眠后唤醒时调用一次。
*/
extern void Menu_Wake_Up_Init(uint8_t *pu8MenuRamData, const Menu_Item_Attribute_st_t *pstMenuAttribute, Menu_Init_st_t *pstMenuInit);
/*
菜单光标动作具体执行函数。
传入按键动作
主循环内调用!主循环内调用!主循环内调用!*/
extern void Menu_Cursor_Process(Menu_Key_en_t enMenuKey);
/*菜单逻辑回调函数的调用
具体菜单功能在此处调用执行*/
extern void Menu_Logic_Process(Menu_Key_en_t enMenuKey);
/*分枝切换
enMenuBranch:目标分枝
enMenuChangePostion:目标位置的类型
返回:实际切换到的菜单项
主循环内调用!主循环内调用!主循环内调用!
*/
extern Menu_Item_en_t Menu_Change_Branch(Menu_Branch_en_t enMenuBranch, Menu_Change_Type_en_t enMenuChangeType);
/*获取当前光标位置*/
extern Menu_Item_en_t Menu_Get_Current_Cursor_Information(void);
/*获取某个菜单界面内记忆的光标位置*/
extern Menu_Item_en_t Menu_Get_Cursor_In_Interface(Menu_Interface_en_t enMenuInterface);
/*获取某个分枝内记忆的光标位置*/
extern Menu_Item_en_t Menu_Get_Cursor_In_Branch(Menu_Branch_en_t enMenuBranch);
/*
某个菜单项存在条件的设置
0:不成立,菜单项不显示
1:成立,需要显示菜单项
主循环内调用!主循环内调用!主循环内调用!
*/
extern void Menu_Item_Exist_Condition_Set(Menu_Item_en_t enMenuItem, uint8_t u8ExistOrNot);
/*------获取某个菜单项的成立条件。0:不成立,1:成立-------*/
extern uint8_t Menu_Item_Exist_Condition_Get(Menu_Item_en_t enMenuItem);
/*
设置某个菜单项是否被选中
0:未选中,没有勾选
1:选中,被勾选了
*/
extern void Menu_Item_Select_Set(Menu_Item_en_t enMenuItem, uint8_t u8SelectOrNot);
/*
获取某个菜单项是否被选中
0:未选中,没有勾选
1:选中,被勾选了
*/
extern uint8_t Menu_Item_Select_Get(Menu_Item_en_t enMenuItem);
/*获取某个菜单项所属的界面*/
/*stMenuItemAttribute[某个菜单项].enMenuLocateInterface;*/
/*获取某个菜单项所属的分枝*/
/*stMenuItemAttribute[某个菜单项].enMenuLocateBranch;*/
/*-----------------------------------------------------------------------------------*/
extern uint8_t u8MenuRamData[MENU_RAM_DATA_LEN];
/*-----------------------------------------------------------------------------------*/
extern void Menu_Service(Menu_Key_en_t enMenuKey);
/*-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------*/
#endif #endif
#include "Menu.h"
/*-------------------------------------------------------*/
/*-----------------------------------------------------------------*/
/*-------------------Logic_Operation Call Back---------------------*/
/*---------------------------------------------------------------------------------------*/
//const Menu_Item_Attribute_st_t stMenuItemAttribute[MENU_ITEM_MAX] =
// {
// /*MENU_ITEM_ENTRANCE_FIX */ {0, 0, 0, 0U, 2U, 2U, 0U, 0, 0, 0XFFU, 0, 0, 0, 0, 0, 0, 0U},
//};
/*-------------------------------------------------------------------------------------------------*/
/*--------------------------The following usage is recommended, but not required--------------------------------*/
/*--------------------------The following usage is recommended, but not required--------------------------------*/
/*--------------------------The following usage is recommended, but not required--------------------------------*/
static void Menu_Cursor_Preprocess(Menu_Key_en_t enMenuKey);
static void Menu_Cursor_Postprocess(Menu_Key_en_t enMenuKey);
void Menu_Service(Menu_Key_en_t enMenuKey);
/*传入按键动作执行之前需要预先处理的动作*/
static void Menu_Cursor_Preprocess(Menu_Key_en_t enMenuKey)
{
/*预处理中执行过本次按键了,后续不必执行时调用一次*/
/*u8MenuKeyExecute = 0U;*/
}
/*传入按键动作执行之后需要后置处理的动作*/
static void Menu_Cursor_Postprocess(Menu_Key_en_t enMenuKey)
{
}
/*------------传入按键类型-----------------------*/
void Menu_Service(Menu_Key_en_t enMenuKey)
{
/*功能回调函数的调用*/
Menu_Logic_Process(enMenuKey);
/*--------------------------------------------------*/
/*按键动作对光标的处理*/
Menu_Cursor_Preprocess(enMenuKey);
Menu_Cursor_Process(enMenuKey);
Menu_Cursor_Postprocess(enMenuKey);
/*--------------------------------------------------*/
}
/*-------------------------------------*/
/*-------------------------------------*/
/*-------------------------------------*/
#pragma ghs section bss = ".myNonInitArea"
uint8_t u8MenuRamData[MENU_RAM_DATA_LEN];
#pragma ghs section bss = default
/*---------------------------------------*/
/*---------------------------------------*/
/*---------------------------------------*/
#define GLOBALS_MEU_PROCESS
#include "Menu.h" #include "Menu.h"
#include "GUI.h" #include "GUI.h"
#include "Services_Mileage.h" #include "Services_Mileage.h"
#include "Data_FuelConsump.h" #include "Data_FuelConsump.h"
#include "CAN_Communication_Matrix.h" #include "CAN_Communication_Matrix.h"
#include "Common_Interface.h" #include "Common_Interface.h"
/*-------------------------------------------------------*/
uint8_t u8MenuItemVariateData[MENU_ITEM_MAX];
uint8_t u8MenuItemVariateNum[MENU_ITEM_MAX];
/*---------------------------------------------------------------------------------------*/
#define MENU_TOTAL_NORMAL 49U
#define MENU_TOTAL_CONFIG 101U
const Menu_Item_Attribute_st_t stMenuItemAttribute[MENU_ITEM_MAX] =
{
/*------------------------------------------------------------------------------------------------(分枝)-----------------------------所在界面----------------------------------------上级菜单项---------------------------------------------序号-总数-行数-序号---(总数)-------------(方向)-----------------------(支持的按键)----确认按键跳转(界面)-----------------------------------(确认跳转后光标位置)------------返回按键跳转(界面)-----------------------------(返回跳转后光标位置)--------超时跳转(界面)-----------------------------------(超时跳转后光标位置)-----回调--------------------*/
//*******************************************************************************************
// 通常显示(行车信息)
//*******************************************************************************************
/*MENU_ITEM_DRIVE_INFOR_TRIPA-------------------一一一TRIPA 平均油耗/平均车速显示画面 */ {MENU_BRANCH_NORMAL_DISPLAY , MENU_INTF_DRIVE_INFOR , MENU_ITEM_MAX , 0U , 7U , 7U , 0U , 7U , MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_DRIVE_INFOR_TRIPB-------------------一一一TRIPB 平均油耗/平均车速显示画面 */ {MENU_BRANCH_NORMAL_DISPLAY , MENU_INTF_DRIVE_INFOR , MENU_ITEM_MAX , 1U , 7U , 7U , 1U , 7U , MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_DRIVE_INFOR_VOLTMETER----------------------一一一一一一一一电压计显示画面 */ {MENU_BRANCH_NORMAL_DISPLAY , MENU_INTF_DRIVE_INFOR , MENU_ITEM_MAX , 2U , 7U , 7U , 2U , 7U , MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_DRIVE_INFOR_CALENDAR----------------------一一一一一一一日期/时钟显示画面 */ {MENU_BRANCH_NORMAL_DISPLAY , MENU_INTF_DRIVE_INFOR , MENU_ITEM_MAX , 3U , 7U , 7U , 3U , 7U , MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_DRIVE_INFOR_TIME_TABLE--------------------一一一一一计时表/油温计显示画面 */ {MENU_BRANCH_NORMAL_DISPLAY , MENU_INTF_DRIVE_INFOR , MENU_ITEM_MAX , 4U , 7U , 7U , 4U , 7U , MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_DRIVE_INFOR_DPD_ACCUMULATION------------一一一一一一一一DPD堆积量显示画面 */ {MENU_BRANCH_NORMAL_DISPLAY , MENU_INTF_DRIVE_INFOR , MENU_ITEM_MAX , 5U , 7U , 7U , 5U , 7U , MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_DRIVE_INFOR_DPD_REGENERATION------------一一一一一一一DPD再生进度显示画面 */ {MENU_BRANCH_NORMAL_DISPLAY , MENU_INTF_DRIVE_INFOR , MENU_ITEM_MAX , 6U , 7U , 7U , 6U , 7U , MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
//*******************************************************************************************
// 用户模式
//*******************************************************************************************
//一级菜单
/*MENU_ITEM_LEVEL_1_DTC--------------------------------一一一一一一一一一一一故障代码 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_LEVEL_1_MENU , MENU_ITEM_MAX , 0U , 6U , 6U , 0U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE-----------------一一一一一一一一一一一维修通知 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_LEVEL_1_MENU , MENU_ITEM_MAX , 1U , 6U , 6U , 1U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET-------------一一一一一一一一维修通知的设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_LEVEL_1_MENU , MENU_ITEM_MAX , 2U , 6U , 6U , 2U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_LEVEL_1_USER_SET---------------------------一一一一一一一一一一一用户设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_LEVEL_1_MENU , MENU_ITEM_MAX , 3U , 6U , 6U , 3U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_USER_SET , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_LEVEL_1_SYS_DISPLAY_MODE-------------------一一一一一一一一一系统演示模式 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_LEVEL_1_MENU , MENU_ITEM_MAX , 4U , 6U , 6U , 4U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SYS_DISPLAY_MODE , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
/*MENU_ITEM_LEVEL_1_TIRE_STATUS_DISPLAY----------------一一一一一一一一一轮胎状态显示 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_LEVEL_1_MENU , MENU_ITEM_MAX , 5U , 6U , 6U , 5U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_TIRE_STATUS_DISPLAY , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , 0U },
//二级菜单---维修通知(保养通知)
/*MENU_ITEM_LEVEL_2_ENGINE_OIL_AND_FILTER--------------一一一一一一发动机机油和滤清器 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 0U , 8U , 8U , 6U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_FUEL_FILTER------------------------一一一一一一一一一一燃油滤清器 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 1U , 8U , 8U , 7U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_TRANSMISSION_OIL-------------------一一一一一一一一一一一变速箱油 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 2U , 8U , 8U , 8U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_DIFFERENTIAL_OIL-------------------一一一一一一一一一一一差速器油 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 3U , 8U , 8U , 9U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_AIR_DRYER_DESICCANT----------------一一一一一一一空气干燥器干燥剂 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 4U , 8U , 8U , 10U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_POWER_STEERING_FLUID---------------一一一一一一一一一一动力转向液 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 5U , 8U , 8U , 11U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_TIRE-------------------------------一一一一一一一一一一一一一轮胎 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 6U , 8U , 8U , 12U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_STARTER----------------------------一一一一一一一一一一一一起动机 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE , 7U , 8U , 8U , 13U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
//二级菜单---维修通知的设定(保养通知的设定)
/*MENU_ITEM_LEVEL_2_REPLACE_ENGINE_OIL_AND_FILTER------一一一一更换发动机机油和滤清器 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 0U , 8U , 8U , 14U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_REPLACE_FUEL_FILTER_REPLACE--------一一一一一一一一更换燃油滤清器 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 1U , 8U , 8U , 15U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_REPLACE_TRANSMISSION_OIL-----------一一一一一一一一一更换变速箱油 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 2U , 8U , 8U , 16U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_REPLACE_DIFFERENTIAL_OIL-----------一一一一一一一一一更换差速器油 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 3U , 8U , 8U , 17U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_SMOOTHER_CLUTCH_OIL--------一一一一一一一一一一一SMOOTHER离合器油 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 4U , 8U , 8U , 18U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_REPLACE_POWER_STEERING_FLUID-------一一一一一一一一更换动力转向液 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 5U , 8U , 8U , 19U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_REPLACE_TIRE-----------------------一一一一一一一一一一一更换轮胎 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 6U , 8U , 8U , 20U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_REPLACE_STARTER--------------------一一一一一一一一一一更换起动机 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_MAINTENANCE_NOTICE_SET , MENU_ITEM_LEVEL_1_MAINTENANCE_NOTICE_SET , 7U , 8U , 8U , 21U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
//二级菜单---用户设定
/*MENU_ITEM_LEVEL_2_SET_DATE---------------------------一一一一一一一一一一一设定日期 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_USER_SET , MENU_ITEM_LEVEL_1_USER_SET , 0U , 6U , 6U , 22U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_DATE_YEAR , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_SET_TIME---------------------------一一一一一一一一一一一设定时间 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_USER_SET , MENU_ITEM_LEVEL_1_USER_SET , 1U , 6U , 6U , 23U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_TIME_HOUR , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_SET_DISPLAY------------------------一一一一一一一一一一一设定显示 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_USER_SET , MENU_ITEM_LEVEL_1_USER_SET , 2U , 6U , 6U , 24U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_DISPLAY , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION-----一一一一一一一设定节油驾驶建议 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_USER_SET , MENU_ITEM_LEVEL_1_USER_SET , 3U , 6U , 6U , 25U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_SET_VEHICLE_SPACING_ALARM_VOLUME---一一一一一一设定车间距报警音量 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_USER_SET , MENU_ITEM_LEVEL_1_USER_SET , 4U , 6U , 6U , 26U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_VEHICLE_SPACING_ALARM_VOLUME , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_METER_SET--------------------------一一一一一一一一一一一仪表设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_USER_SET , MENU_ITEM_LEVEL_1_USER_SET , 5U , 6U , 6U , 27U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
//二级菜单---系统演示模式
/*MENU_ITEM_LEVEL_2_LDWS_ALERT_DEMO---------------一一一一一一一一一一一LDWS 警报演示 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SYS_DISPLAY_MODE , MENU_ITEM_LEVEL_1_SYS_DISPLAY_MODE , 0U , 4U , 4U , 28U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_AEBS_FIRST_ALERT_DEMO---------一一一一一一一一一一AEBS第1警报演示 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SYS_DISPLAY_MODE , MENU_ITEM_LEVEL_1_SYS_DISPLAY_MODE , 1U , 4U , 4U , 29U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_AEBS_SECOND_ALERT_DEMO--------一一一一一一一一一一AEBS第2警报演示 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SYS_DISPLAY_MODE , MENU_ITEM_LEVEL_1_SYS_DISPLAY_MODE , 2U , 4U , 4U , 30U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_AEBS_FULL_BRAKING_ALERT_DEMO---一一一一一一一AEBS全力制动警报演示 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SYS_DISPLAY_MODE , MENU_ITEM_LEVEL_1_SYS_DISPLAY_MODE , 3U , 4U , 4U , 31U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
//二级菜单---轮胎状态显示
/*MENU_ITEM_LEVEL_2_TIRE_PRESSURE----------------------一一一一一一一一一一一轮胎气压 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_TIRE_STATUS_DISPLAY , MENU_ITEM_LEVEL_1_TIRE_STATUS_DISPLAY , 0U , 2U , 2U , 32U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_2_TIRE_TEMP--------------------------一一一一一一一一一一一轮胎温度 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_TIRE_STATUS_DISPLAY , MENU_ITEM_LEVEL_1_TIRE_STATUS_DISPLAY , 1U , 2U , 2U , 33U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , MENU_INTF_U_LEVEL_1_MENU , MENU_JUMP_LAST_POSITION , 0U },
//三级菜单---设定日期(年)
/*MENU_ITEM_LEVEL_3_SET_DATE_YEAR----------------------一一一一一一一一一一一一设定年 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_DATE_YEAR , MENU_ITEM_LEVEL_2_SET_DATE , 0U , 1U , 1U , 34U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_DATE_MONTH , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_FIRST , 0U },
//四级菜单---设定日期(月)
/*MENU_ITEM_LEVEL_4_SET_DATE_MONTH---------------------一一一一一一一一一一一一设定月 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_DATE_MONTH , MENU_ITEM_LEVEL_3_SET_DATE_YEAR , 0U , 1U , 1U , 35U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_DATE_DATE , MENU_JUMP_FIRST , MENU_INTF_U_SET_DATE_YEAR , MENU_JUMP_FIRST , MENU_INTF_U_SET_DATE_YEAR , MENU_JUMP_FIRST , 0U },
//五级菜单---设定日期(日)
/*MENU_ITEM_LEVEL_5_SET_DATE_DATE----------------------一一一一一一一一一一一一设定日 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_DATE_DATE , MENU_ITEM_LEVEL_4_SET_DATE_MONTH , 0U , 1U , 1U , 36U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_USER_SET , MENU_JUMP_FIRST , MENU_INTF_U_SET_DATE_MONTH , MENU_JUMP_FIRST , MENU_INTF_U_SET_DATE_MONTH , MENU_JUMP_FIRST , 0U },
//三级菜单---设定时间(小时)
/*MENU_ITEM_LEVEL_3_SET_TIME_HOUR----------------------一一一一一一一一一一一设定小时 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_TIME_HOUR , MENU_ITEM_LEVEL_2_SET_TIME , 0U , 1U , 1U , 37U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_SET_TIME_MINUTE , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
//四级菜单---设定时间(分钟)
/*MENU_ITEM_LEVEL_4_SET_TIME_MINUTE--------------------一一一一一一一一一一一设定分钟 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_TIME_MINUTE , MENU_ITEM_LEVEL_3_SET_TIME_HOUR , 0U , 1U , 1U , 38U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_SET_TIME_HOUR , MENU_JUMP_FIRST , MENU_INTF_U_SET_TIME_HOUR , MENU_JUMP_FIRST , 0U },
//三级菜单---设定显示
/*MENU_ITEM_LEVEL_3_TIME-------------------------------一一一一一一一一一一一一一时间 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_DISPLAY , MENU_ITEM_LEVEL_2_SET_DISPLAY , 0U , 2U , 2U , 39U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_3_DATE-------------------------------一一一一一一一一一一一一一日期 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_DISPLAY , MENU_ITEM_LEVEL_2_SET_DISPLAY , 1U , 2U , 2U , 40U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
//三级菜单---设定节油驾驶建议
/*MENU_ITEM_LEVEL_3_SPEED_SETTING_HIGH_SPEED_ROAD------一一一一一一一速度设定-高速路 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION , 0U , 7U , 7U , 41U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_3_SPEED_SETTING_GENERAL_ROAD---------一一一一一一一速度设定-一般路 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION , 1U , 7U , 7U , 42U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_3_ENGINE_SPEED_SETTING---------------一一一一一一一一发动机转速设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION , 2U , 7U , 7U , 43U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_3_RAPID_ACCELERATION_SETTING---------一一一一一一一一一一急加速设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION , 3U , 7U , 7U , 44U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_3_RAPID_DECELERATION_SETTING---------一一一一一一一一一一急减速设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION , 4U , 7U , 7U , 45U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_3_LONG_IDLE_SETTING------------------一一一一一一一一长时间怠速设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION , 5U , 7U , 7U , 46U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
/*MENU_ITEM_LEVEL_3_AUXILIARY_PARKING_RELEASE_SETTING--一一一一一一一辅助驻车解除设定 */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_SAVE_FUEL_DRIVE_SUGGESTION , MENU_ITEM_LEVEL_2_SET_SAVE_FUEL_DRIVE_SUGGESTION , 6U , 7U , 7U , 47U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
//三级菜单---设定车间距报警音量
/*MENU_ITEM_LEVEL_3_SET_VEHICLE_SPACING_ALARM_VOLUME---设定车间距报警音量(图形界面) */ {MENU_BRANCH_USER_MODE_MENU , MENU_INTF_U_SET_VEHICLE_SPACING_ALARM_VOLUME , MENU_ITEM_LEVEL_2_SET_VEHICLE_SPACING_ALARM_VOLUME , 0U , 1U , 1U , 48U , MENU_TOTAL_NORMAL, MENU_DIRECTION_LONGITUDINAL, 0XFFU , MENU_INTERFACE_MAX , MENU_JUMP_FIRST , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , MENU_INTF_U_USER_SET , MENU_JUMP_LAST_POSITION , 0U },
uint8_t bMenuSwFlag;
uint8_t g_ClearWin1;
uint8_t bNextMenuIDX;
uint8_t bCurMenuIDX;
uint8_t bMainMenuIDX;
uint8_t bOldMenuIDX;
const _MenuOptTab MenuOptTab[] =
{
/*---------ENTER---------------------UP-----------------------DOWN----------------------EXIT------------------ENTER------------------DO-----------------EXIT------------*/
/*主循环界面*/
/* 0*/{ _MN_DSP_LEVEL2MENU_2, _MN_DSP_LEVEL1MENU_6, _MN_DSP_LEVEL1MENU_2, _MN_IDX_NULL, Level1Menu_1Enter, Level1Menu_1Do, Level1Menu_1Exit}, /* _MN_DSP_LEVEL1MENU_1 */
/* 1*/{ _MN_DSP_LEVEL2MENU_2, _MN_DSP_LEVEL1MENU_1, _MN_DSP_LEVEL1MENU_3, _MN_IDX_NULL, Level1Menu_2Enter, Level1Menu_2Do, Level1Menu_2Exit}, /* _MN_DSP_LEVEL1MENU_2 */
/* 2*/{ _MN_DSP_LEVEL2MENU_2, _MN_DSP_LEVEL1MENU_2, _MN_DSP_LEVEL1MENU_4, _MN_IDX_NULL, Level1Menu_3Enter, Level1Menu_3Do, Level1Menu_3Exit}, /* _MN_DSP_LEVEL1MENU_3 */
/* 3*/{ _MN_DSP_LEVEL2MENU_2, _MN_DSP_LEVEL1MENU_3, _MN_DSP_LEVEL1MENU_5, _MN_IDX_NULL, Level1Menu_4Enter, Level1Menu_4Do, Level1Menu_4Exit}, /* _MN_DSP_LEVEL1MENU_4 */
/* 4*/{ _MN_DSP_LEVEL2MENU_2, _MN_DSP_LEVEL1MENU_4, _MN_DSP_LEVEL1MENU_6, _MN_IDX_NULL, Level1Menu_5Enter, Level1Menu_5Do, Level1Menu_5Exit}, /* _MN_DSP_LEVEL1MENU_5 */
/* 5*/{ _MN_DSP_LEVEL2MENU_2, _MN_DSP_LEVEL1MENU_5, _MN_DSP_LEVEL1MENU_1, _MN_IDX_NULL, Level1Menu_6Enter, Level1Menu_6Do, Level1Menu_6Exit}, /* _MN_DSP_LEVEL1MENU_6 */
/* 6*/{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL0, Level1Menu_7Enter, Level1Menu_7Do, Level1Menu_7Exit}, /* _MN_DSP_LEVEL1MENU_7 */
/* 7*/{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, LevelPopup_Enter, LevelPopup_Do, LevelPopup_Exit }, /* _MN_DSP_LEVEPOPUP */
//
//Ò»¼¶²Ëµ¥
///* 6*/{ _MN_DSP_LEVEL2_1_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_2, _MN_IDX_NULL, Level2Menu_1Enter, Level2Menu_1Do, Level2Menu_1Exit}, // _MN_DSP_LEVEL2MENU_1
///* 7*/{ _MN_DSP_LEVEL2_2_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_3, _MN_IDX_NULL, Level2Menu_2Enter, Level2Menu_2Do, Level2Menu_2Exit}, // _MN_DSP_LEVEL2MENU_2
///* 8*/{ _MN_DSP_LEVEL2_3_MENU_1, _MN_DSP_LEVEL2MENU_2, _MN_DSP_LEVEL2MENU_4, _MN_IDX_NULL, Level2Menu_3Enter, Level2Menu_3Do, Level2Menu_3Exit}, // _MN_DSP_LEVEL2MENU_3
///* 9*/{ _MN_DSP_LEVEL2_4_MENU_1, _MN_DSP_LEVEL2MENU_3, _MN_DSP_LEVEL2MENU_7, _MN_IDX_NULL, Level2Menu_4Enter, Level2Menu_4Do, Level2Menu_4Exit}, // _MN_DSP_LEVEL2MENU_4
///*10*/{ _MN_DSP_LEVEL2_7_MENU_1, _MN_DSP_LEVEL2MENU_4, _MN_IDX_NULL, _MN_IDX_NULL, Level2Menu_7Enter, Level2Menu_7Do, Level2Menu_7Exit}, // _MN_DSP_LEVEL2MENU_7 //̥ѹÏÔʾ
///*11*/{ _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_7, _MN_IDX_NULL, _MN_IDX_NULL, Level2Menu_5Enter, Level2Menu_5Do, Level2Menu_5Exit}, // _MN_DSP_LEVEL2MENU_5
///*12*/{ _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_5, _MN_IDX_NULL, _MN_IDX_NULL, Level2Menu_6Enter, Level2Menu_6Do, Level2Menu_6Exit}, // _MN_DSP_LEVEL2MENU_6
//
//¶þ¼¶²Ëµ¥
///*13*/{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_1, Level2_1Menu_1Enter, Level2_1Menu_1Do, Level2_1Menu_1Exit}, // _MN_DSP_LEVEL2_1_MENU_1
/*14*///{ _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_1, _MN_DSP_LEVEL2_1_MENU_3, _MN_DSP_LEVEL2MENU_1, Level2_1Menu_2Enter, Level2_1Menu_2Do, Level2_1Menu_2Exit}, // _MN_DSP_LEVEL2_1_MENU_2
/*15*///{ _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_2, _MN_DSP_LEVEL2_1_MENU_4, _MN_DSP_LEVEL2MENU_1, Level2_1Menu_3Enter, Level2_1Menu_3Do, Level2_1Menu_3Exit}, // _MN_DSP_LEVEL2_1_MENU_3
/*16*///{ _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_3, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_1, Level2_1Menu_4Enter, Level2_1Menu_4Do, Level2_1Menu_4Exit}, // _MN_DSP_LEVEL2_1_MENU_4
/*16*///{ _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_4, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_1, Level2_1Menu_5Enter, Level2_1Menu_5Do, Level2_1Menu_5Exit}, // _MN_DSP_LEVEL2_1_MENU_5
//
///*14*/{ _MN_DSP_LEVEL3_2_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_2, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_1Enter, Level2_2Menu_1Do, Level2_2Menu_1Exit}, // _MN_DSP_LEVEL2_2_MENU_1
///*15*/{ _MN_DSP_LEVEL3_2_MENU_2, _MN_DSP_LEVEL2_2_MENU_1, _MN_DSP_LEVEL2_2_MENU_3, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_2Enter, Level2_2Menu_2Do, Level2_2Menu_2Exit}, // _MN_DSP_LEVEL2_2_MENU_2
///*16*/{ _MN_DSP_LEVEL3_2_MENU_3, _MN_DSP_LEVEL2_2_MENU_2, _MN_DSP_LEVEL2_2_MENU_4, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_3Enter, Level2_2Menu_3Do, Level2_2Menu_3Exit}, // _MN_DSP_LEVEL2_2_MENU_3
///*17*/{ _MN_DSP_LEVEL3_2_MENU_4, _MN_DSP_LEVEL2_2_MENU_3, _MN_DSP_LEVEL2_2_MENU_6, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_4Enter, Level2_2Menu_4Do, Level2_2Menu_4Exit}, // _MN_DSP_LEVEL2_2_MENU_4
///*21*///{ _MN_DSP_LEVEL3_2_MENU_5, _MN_DSP_LEVEL2_2_MENU_4, _MN_DSP_LEVEL2_2_MENU_6, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_5Enter, Level2_2Menu_5Do, Level2_2Menu_5Exit}, // _MN_DSP_LEVEL2_2_MENU_5
///*18*/{ _MN_DSP_LEVEL3_2_MENU_6, _MN_DSP_LEVEL2_2_MENU_4, _MN_DSP_LEVEL2_2_MENU_7, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_6Enter, Level2_2Menu_6Do, Level2_2Menu_6Exit}, // _MN_DSP_LEVEL2_2_MENU_6
///*19*/{ _MN_DSP_LEVEL3_2_MENU_7, _MN_DSP_LEVEL2_2_MENU_6, _MN_DSP_LEVEL2_2_MENU_8, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_7Enter, Level2_2Menu_7Do, Level2_2Menu_7Exit}, // _MN_DSP_LEVEL2_2_MENU_7
///*20*/{ _MN_DSP_LEVEL3_2_MENU_8, _MN_DSP_LEVEL2_2_MENU_7, _MN_DSP_LEVEL2_2_MENU_9, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_8Enter, Level2_2Menu_8Do, Level2_2Menu_8Exit}, // _MN_DSP_LEVEL2_2_MENU_8
///*21*/{ _MN_DSP_LEVEL3_2_MENU_9, _MN_DSP_LEVEL2_2_MENU_8, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_2, Level2_2Menu_9Enter, Level2_2Menu_9Do, Level2_2Menu_9Exit}, // _MN_DSP_LEVEL2_2_MENU_9
//
///*22*/{ _MN_DSP_LEVEL3_3_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_2, _MN_DSP_LEVEL2MENU_3, Level2_3Menu_1Enter, Level2_3Menu_1Do, Level2_3Menu_1Exit}, // _MN_DSP_LEVEL2_3_MENU_1
///*23*/{ _MN_DSP_LEVEL3_3_MENU_2, _MN_DSP_LEVEL2_3_MENU_1, _MN_DSP_LEVEL2_3_MENU_3, _MN_DSP_LEVEL2MENU_3, Level2_3Menu_2Enter, Level2_3Menu_2Do, Level2_3Menu_2Exit}, // _MN_DSP_LEVEL2_3_MENU_2
///*24*/{ _MN_DSP_LEVEL3_3_MENU_3, _MN_DSP_LEVEL2_3_MENU_2, _MN_DSP_LEVEL2_3_MENU_4, _MN_DSP_LEVEL2MENU_3, Level2_3Menu_3Enter, Level2_3Menu_3Do, Level2_3Menu_3Exit}, // _MN_DSP_LEVEL2_3_MENU_3
///*25*/{ _MN_DSP_LEVEL3_3_MENU_4, _MN_DSP_LEVEL2_3_MENU_3, _MN_DSP_LEVEL2_3_MENU_6, _MN_DSP_LEVEL2MENU_3, Level2_3Menu_4Enter, Level2_3Menu_4Do, Level2_3Menu_4Exit}, // _MN_DSP_LEVEL2_3_MENU_4
///*30*///{ _MN_DSP_LEVEL3_3_MENU_5, _MN_DSP_LEVEL2_3_MENU_4, _MN_DSP_LEVEL2_3_MENU_6, _MN_DSP_LEVEL2MENU_3, Level2_3Menu_5Enter, Level2_3Menu_5Do, Level2_3Menu_5Exit}, // _MN_DSP_LEVEL2_3_MENU_5
///*26*/{ _MN_DSP_LEVEL3_3_MENU_6, _MN_DSP_LEVEL2_3_MENU_4, _MN_DSP_LEVEL2_3_MENU_7, _MN_DSP_LEVEL2MENU_3, Level2_3Menu_6Enter, Level2_3Menu_6Do, Level2_3Menu_6Exit}, // _MN_DSP_LEVEL2_3_MENU_6
///*27*/{ _MN_DSP_LEVEL3_3_MENU_7, _MN_DSP_LEVEL2_3_MENU_6, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_3, Level2_3Menu_7Enter, Level2_3Menu_7Do, Level2_3Menu_7Exit}, // _MN_DSP_LEVEL2_3_MENU_7
//
///*28*/{ _MN_DSP_LEVEL3_4_MENU_11, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_2, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_1Enter, Level2_4Menu_1Do, Level2_4Menu_1Exit}, // _MN_DSP_LEVEL2_4_MENU_1
///*29*/{ _MN_DSP_LEVEL3_4_MENU_21, _MN_DSP_LEVEL2_4_MENU_1, _MN_DSP_LEVEL2_4_MENU_3, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_2Enter, Level2_4Menu_2Do, Level2_4Menu_2Exit}, // _MN_DSP_LEVEL2_4_MENU_2
///*30*/{ _MN_DSP_LEVEL3_4_MENU_3, _MN_DSP_LEVEL2_4_MENU_2, _MN_DSP_LEVEL2_4_MENU_A, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_3Enter, Level2_4Menu_3Do, Level2_4Menu_3Exit}, // _MN_DSP_LEVEL2_4_MENU_3
///*31*/{ _MN_DSP_LEVEL3_4_MENU_A, _MN_DSP_LEVEL2_4_MENU_3, _MN_DSP_LEVEL2_4_MENU_4, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_AEnter, Level2_4Menu_ADo, Level2_4Menu_AExit}, // _MN_DSP_LEVEL2_4_MENU_A //̥ѹÉèÖýçÃæ
///*32*/{ _MN_DSP_LEVEL3_4_MENU_41, _MN_DSP_LEVEL2_4_MENU_A, _MN_DSP_LEVEL2_4_MENU_5, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_4Enter, Level2_4Menu_4Do, Level2_4Menu_4Exit}, // _MN_DSP_LEVEL2_4_MENU_4
///*33*/{ _MN_DSP_LEVEL3_4_MENU_51, _MN_DSP_LEVEL2_4_MENU_4, _MN_DSP_LEVEL2_4_MENU_6, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_5Enter, Level2_4Menu_5Do, Level2_4Menu_5Exit}, // _MN_DSP_LEVEL2_4_MENU_5
///*34*/{ _MN_DSP_LEVEL3_4_MENU_6, _MN_DSP_LEVEL2_4_MENU_5, _MN_DSP_LEVEL2_4_MENU_7, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_6Enter, Level2_4Menu_6Do, Level2_4Menu_6Exit}, // _MN_DSP_LEVEL2_4_MENU_6
///*35*/{ _MN_DSP_LEVEL3_4_MENU_7, _MN_DSP_LEVEL2_4_MENU_6, _MN_DSP_LEVEL2_4_MENU_8, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_7Enter, Level2_4Menu_7Do, Level2_4Menu_7Exit}, // _MN_DSP_LEVEL2_4_MENU_7
///*36*/{ _MN_DSP_LEVEL3_4_MENU_8, _MN_DSP_LEVEL2_4_MENU_7, _MN_DSP_LEVEL2_4_MENU_9, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_8Enter, Level2_4Menu_8Do, Level2_4Menu_8Exit}, // _MN_DSP_LEVEL2_4_MENU_8
///*37*/{ _MN_DSP_LEVEL3_4_MENU_9, _MN_DSP_LEVEL2_4_MENU_8, _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_4, Level2_4Menu_9Enter, Level2_4Menu_9Do, Level2_4Menu_9Exit}, // _MN_DSP_LEVEL2_4_MENU_9
///*38*/{ _MN_IDX_NULL , _MN_IDX_NULL , _MN_IDX_NULL, _MN_DSP_LEVEL2MENU_7, Level2_7Menu_1Enter, Level2_7Menu_1Do, Level2_7Menu_1Exit}, // _MN_DSP_LEVEL2_7_MENU_1
//
//Èý¼¶²Ëµ¥
/*42*///{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_1, Level3_1Menu_1Enter, Level3_1Menu_1Do, Level3_1Menu_1Exit}, // _MN_DSP_LEVEL3_1_MENU_1
/*43*///{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_2, Level3_1Menu_2Enter, Level3_1Menu_2Do, Level3_1Menu_2Exit}, // _MN_DSP_LEVEL3_1_MENU_2
/*44*///{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_3, Level3_1Menu_3Enter, Level3_1Menu_3Do, Level3_1Menu_3Exit}, // _MN_DSP_LEVEL3_1_MENU_3
/*45*///{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_4, Level3_1Menu_4Enter, Level3_1Menu_4Do, Level3_1Menu_4Exit}, // _MN_DSP_LEVEL3_1_MENU_4
/*45*///{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_1_MENU_5, Level3_1Menu_5Enter, Level3_1Menu_5Do, Level3_1Menu_5Exit}, // _MN_DSP_LEVEL3_1_MENU_5
////
///*39*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_1, Level3_2Menu_1Enter, Level3_2Menu_1Do, Level3_2Menu_1Exit}, // _MN_DSP_LEVEL3_2_MENU_1
///*40*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_2, Level3_2Menu_2Enter, Level3_2Menu_2Do, Level3_2Menu_2Exit}, // _MN_DSP_LEVEL3_2_MENU_2
///*41*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_3, Level3_2Menu_3Enter, Level3_2Menu_3Do, Level3_2Menu_3Exit}, // _MN_DSP_LEVEL3_2_MENU_3
///*42*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_4, Level3_2Menu_4Enter, Level3_2Menu_4Do, Level3_2Menu_4Exit}, // _MN_DSP_LEVEL3_2_MENU_4
///*50*///{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_5, Level3_2Menu_5Enter, Level3_2Menu_5Do, Level3_2Menu_5Exit}, // _MN_DSP_LEVEL3_2_MENU_5
///*43*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_6, Level3_2Menu_6Enter, Level3_2Menu_6Do, Level3_2Menu_6Exit}, // _MN_DSP_LEVEL3_2_MENU_6
///*44*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_7, Level3_2Menu_7Enter, Level3_2Menu_7Do, Level3_2Menu_7Exit}, // _MN_DSP_LEVEL3_2_MENU_7
///*45*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_8, Level3_2Menu_8Enter, Level3_2Menu_8Do, Level3_2Menu_8Exit}, // _MN_DSP_LEVEL3_2_MENU_8
///*46*/{_MN_DSP_ENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_2_MENU_9, Level3_2Menu_9Enter, Level3_2Menu_9Do, Level3_2Menu_9Exit}, // _MN_DSP_LEVEL3_2_MENU_9
//
///*47*/{ _MN_DSP_LEVEL2_3_MENU_1, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_1, Level3_3Menu_1Enter, Level3_3Menu_1Do, Level3_3Menu_1Exit}, // _MN_DSP_LEVEL3_3_MENU_1
///*48*/{ _MN_DSP_LEVEL2_3_MENU_2, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_2, Level3_3Menu_2Enter, Level3_3Menu_2Do, Level3_3Menu_2Exit}, // _MN_DSP_LEVEL3_3_MENU_2
///*49*/{ _MN_DSP_LEVEL2_3_MENU_3, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_3, Level3_3Menu_3Enter, Level3_3Menu_3Do, Level3_3Menu_3Exit}, // _MN_DSP_LEVEL3_3_MENU_3
///*50*/{ _MN_DSP_LEVEL2_3_MENU_4, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_4, Level3_3Menu_4Enter, Level3_3Menu_4Do, Level3_3Menu_4Exit}, // _MN_DSP_LEVEL3_3_MENU_4
///*59*///{ _MN_DSP_LEVEL2_3_MENU_5, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_5, Level3_3Menu_5Enter, Level3_3Menu_5Do, Level3_3Menu_5Exit}, // _MN_DSP_LEVEL3_3_MENU_5
///*51*/{ _MN_DSP_LEVEL2_3_MENU_6, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_6, Level3_3Menu_6Enter, Level3_3Menu_6Do, Level3_3Menu_6Exit}, // _MN_DSP_LEVEL3_3_MENU_6
///*52*/{ _MN_DSP_LEVEL2_3_MENU_7, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_3_MENU_7, Level3_3Menu_7Enter, Level3_3Menu_7Do, Level3_3Menu_7Exit}, // _MN_DSP_LEVEL3_3_MENU_7
//
///*53*/{ _MN_DSP_LEVEL4_1_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_12, _MN_DSP_LEVEL2_4_MENU_1, Level3_4Menu_1Enter_1, Level3_4Menu_1Do_1, Level3_4Menu_1Exit_1}, // _MN_DSP_LEVEL3_4_MENU_11 ÈÕÆÚÉ趨
///*54*/{ _MN_DSP_LEVEL4_1_MENU_2, _MN_DSP_LEVEL3_4_MENU_11, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_1, Level3_4Menu_1Enter_2, Level3_4Menu_1Do_2, Level3_4Menu_1Exit_2}, // _MN_DSP_LEVEL3_4_MENU_12 ¸ñʽÉ趨
///*55*/{ _MN_DSP_LEVEL4_2_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_22, _MN_DSP_LEVEL2_4_MENU_2, Level3_4Menu_2Enter_1, Level3_4Menu_2Do_1, Level3_4Menu_2Exit_1}, // _MN_DSP_LEVEL3_4_MENU_21 ʱ¼äÉ趨
///*56*/{ _MN_DSP_LEVEL4_2_MENU_2, _MN_DSP_LEVEL3_4_MENU_21, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_2, Level3_4Menu_2Enter_2, Level3_4Menu_2Do_2, Level3_4Menu_2Exit_2}, // _MN_DSP_LEVEL3_4_MENU_22 ¸ñʽÉ趨
///*57*/{ _MN_DSP_LEVEL2_4_MENU_3, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_3, Level3_4Menu_3Enter, Level3_4Menu_3Do, Level3_4Menu_3Exit}, // _MN_DSP_LEVEL3_4_MENU_3
///*58*/{ _MN_DSP_LEVEL4_4_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_42, _MN_DSP_LEVEL2_4_MENU_4, Level3_4Menu_4Enter_1, Level3_4Menu_4Do_1, Level3_4Menu_4Exit_1}, // _MN_DSP_LEVEL3_4_MENU_41 Ê¡ÓÍÉ趨1
///*59*/{ _MN_DSP_LEVEL4_4_MENU_2, _MN_DSP_LEVEL3_4_MENU_41, _MN_DSP_LEVEL3_4_MENU_43, _MN_DSP_LEVEL2_4_MENU_4, Level3_4Menu_4Enter_2, Level3_4Menu_4Do_2, Level3_4Menu_4Exit_2}, // _MN_DSP_LEVEL3_4_MENU_42 Ê¡ÓÍÉ趨2
///*60*/{ _MN_DSP_LEVEL4_4_MENU_3, _MN_DSP_LEVEL3_4_MENU_42, _MN_DSP_LEVEL3_4_MENU_44, _MN_DSP_LEVEL2_4_MENU_4, Level3_4Menu_4Enter_3, Level3_4Menu_4Do_3, Level3_4Menu_4Exit_3}, // _MN_DSP_LEVEL3_4_MENU_43 Ê¡ÓÍÉ趨3
///*61*/{ _MN_DSP_LEVEL4_4_MENU_4, _MN_DSP_LEVEL3_4_MENU_43, _MN_DSP_LEVEL3_4_MENU_45, _MN_DSP_LEVEL2_4_MENU_4, Level3_4Menu_4Enter_4, Level3_4Menu_4Do_4, Level3_4Menu_4Exit_4}, // _MN_DSP_LEVEL3_4_MENU_44 Ê¡ÓÍÉ趨4
///*62*/{ _MN_DSP_LEVEL4_4_MENU_5, _MN_DSP_LEVEL3_4_MENU_44, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_4, Level3_4Menu_4Enter_5, Level3_4Menu_4Do_5, Level3_4Menu_4Exit_5}, // _MN_DSP_LEVEL3_4_MENU_45 Ê¡ÓÍÉ趨5
///*63*/{ _MN_DSP_LEVEL4_5_MENU_1, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_52, _MN_DSP_LEVEL2_4_MENU_5, Level3_4Menu_5Enter_1, Level3_4Menu_5Do_1, Level3_4Menu_5Exit_1}, // _MN_DSP_LEVEL3_4_MENU_51 HASÉ趨 HSAµ÷Õû
///*64*/{ _MN_DSP_LEVEL4_5_MENU_2, _MN_DSP_LEVEL3_4_MENU_51, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_5, Level3_4Menu_5Enter_2, Level3_4Menu_5Do_2, Level3_4Menu_5Exit_2}, // _MN_DSP_LEVEL3_4_MENU_52 HASÉ趨 HSAÖØÖÃ
///*65*/{ _MN_DSP_LEVEL2_4_MENU_6, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_6, Level3_4Menu_6Enter, Level3_4Menu_6Do, Level3_4Menu_6Exit}, // _MN_DSP_LEVEL3_4_MENU_6 ³µ¼ä¾àÀ뱨¾¯Òô
///*66*/{ _MN_DSP_LEVEL2_4_MENU_7, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_7, Level3_4Menu_7Enter, Level3_4Menu_7Do, Level3_4Menu_7Exit}, // _MN_DSP_LEVEL3_4_MENU_7 ÓïÑÔÉ趨
///*67*/{ _MN_DSP_LEVEL2_4_MENU_8, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_8, Level3_4Menu_8Enter, Level3_4Menu_8Do, Level3_4Menu_8Exit}, // _MN_DSP_LEVEL3_4_MENU_8 ÁÁ¶Èµ÷½Ú//µ¥Î»É趨
///*68*/{ _MN_DSP_LEVEL2_4_MENU_9, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_9, Level3_4Menu_9Enter, Level3_4Menu_9Do, Level3_4Menu_9Exit}, // _MN_DSP_LEVEL3_4_MENU_9 µ¥Î»É趨//ÁÁ¶Èµ÷½Ú
///*69*/{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL2_4_MENU_A, Level3_4Menu_AEnter, Level3_4Menu_ADo, Level3_4Menu_AExit}, // _MN_DSP_LEVEL3_4_MENU_A ̥ѹÉèÖýçÃæÏÔʾ
//
//Ëļ¶²Ëµ¥ // //Ëļ¶²Ëµ¥
//*70*/{ _MN_DSP_LEVEL3_4_MENU_11, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_11, Level4_1Menu_1Enter, Level4_1Menu_1Do, Level4_1Menu_1Exit}, // _MN_DSP_LEVEL4_1_MENU_1
//*71*/{ _MN_DSP_LEVEL3_4_MENU_12, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_12, Level4_1Menu_2Enter, Level4_1Menu_2Do, Level4_1Menu_2Exit}, // _MN_DSP_LEVEL4_1_MENU_2
//*72*/{ _MN_DSP_LEVEL3_4_MENU_21, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_21, Level4_2Menu_1Enter, Level4_2Menu_1Do, Level4_2Menu_1Exit}, // _MN_DSP_LEVEL4_2_MENU_1
//*73*/{ _MN_DSP_LEVEL3_4_MENU_22, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_22, Level4_2Menu_2Enter, Level4_2Menu_2Do, Level4_2Menu_2Exit}, // _MN_DSP_LEVEL4_2_MENU_2
//*74*/{ _MN_DSP_LEVEL3_4_MENU_41, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_41, Level4_4Menu_1Enter, Level4_4Menu_1Do, Level4_4Menu_1Exit}, // _MN_DSP_LEVEL4_4_MENU_1
//*75*/{ _MN_DSP_LEVEL3_4_MENU_42, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_42, Level4_4Menu_2Enter, Level4_4Menu_2Do, Level4_4Menu_2Exit}, // _MN_DSP_LEVEL4_4_MENU_2
//*76*/{ _MN_DSP_LEVEL3_4_MENU_43, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_43, Level4_4Menu_3Enter, Level4_4Menu_3Do, Level4_4Menu_3Exit}, // _MN_DSP_LEVEL4_4_MENU_3
//*77*/{ _MN_DSP_LEVEL3_4_MENU_44, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_44, Level4_4Menu_4Enter, Level4_4Menu_4Do, Level4_4Menu_4Exit}, // _MN_DSP_LEVEL4_4_MENU_4
//*78*/{ _MN_DSP_LEVEL3_4_MENU_45, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_45, Level4_4Menu_5Enter, Level4_4Menu_5Do, Level4_4Menu_5Exit}, // _MN_DSP_LEVEL4_4_MENU_5
//*79*/{ _MN_DSP_LEVEL3_4_MENU_51, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_51, Level4_5Menu_1Enter, Level4_5Menu_1Do, Level4_5Menu_1Exit}, // _MN_DSP_LEVEL4_5_MENU_1
//*80*/{ _MN_DSP_HSAENTER_MENU, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL3_4_MENU_52, Level4_5Menu_2Enter, Level4_5Menu_2Do, Level4_5Menu_2Exit}, // _MN_DSP_LEVEL4_5_MENU_2
///*81*/{ _MN_DSP_LEVEL3_4_MENU_52, _MN_IDX_NULL, _MN_IDX_NULL, _MN_DSP_LEVEL4_5_MENU_2, Level_Enter_HMenu_Enter, Level_Enter_HMenu_Do, Level_Enter_HMenu_Exit}, // _MN_DSP_HSAENTER_MENU
///*82*/{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, Level_Enter_Menu_Enter, Level_Enter_Menu_Do, Level_Enter_Menu_Exit}, //
///*83*/{ _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, _MN_IDX_NULL, Level_Return_Menu_Enter, Level_Return_Menu_Do, Level_Return_Menu_Exit}, //
}; };
void NextMenu(_MENU_IDX idx)
{
if ((idx) != _MN_IDX_NULL)
{
bNextMenuIDX = (idx);
}
else
{
}
bOldMenuIDX = 0xFF;
}
void MenuInit(void)
{
bCurMenuIDX = 0;
bNextMenuIDX = 0;
bMenuSwFlag = 1;
if (bCurMenuIDX >= _MN_DSP_LEVEL2MENU_1)
{
//bCurMenuIDX = MenuFlag.Sig.Menu_Flag; /*记录上次位置*/
bNextMenuIDX = bCurMenuIDX;
}
else
{
;/*do nothing*/
}
}
void MenuManage(void)
{
if (bMenuSwFlag)
{
if (MenuOptTab[bCurMenuIDX].Enter)
{
MenuOptTab[bCurMenuIDX].Enter();
}
else
{
;/*do nothing*/
}
}
else
{
;/*do nothing*/
}
if (MenuOptTab[bCurMenuIDX].Do)
{
MenuOptTab[bCurMenuIDX].Do();
}
else
{
;/*do nothing*/
}
bMenuSwFlag = (bCurMenuIDX != bNextMenuIDX) ? 1 : 0;
if (bMenuSwFlag)
{
if (MenuOptTab[bCurMenuIDX].Exit && MenuOptTab[bCurMenuIDX].VK_IDX_EXIT)
{
MenuOptTab[bCurMenuIDX].Exit();
}
else
{
;/*do nothing*/
}
}
bCurMenuIDX = bNextMenuIDX;
}
/*主界面1 平均油耗,平均车速*/
void Level1Menu_1Enter(void)
{
}
void Level1Menu_1Do(void)
{
GUI_Display_OftenShow_Group();
}
void Level1Menu_1Exit(void)
{}
/*主界面2 电池显示*/
void Level1Menu_2Enter(void)
{
}
void Level1Menu_2Do(void)
{
}
void Level1Menu_2Exit(void)
{}
/*主界面3 DPD*/
void Level1Menu_3Enter(void)
{
}
void Level1Menu_3Do(void)
{
}
void Level1Menu_3Exit(void)
{}
/*主界面4 油温时间*/
void Level1Menu_4Enter(void)
{
}
void Level1Menu_4Do(void)
{
}
void Level1Menu_4Exit(void)
{}
/*主界面5 万年历*/
void Level1Menu_5Enter(void)
{
}
void Level1Menu_5Do(void)
{
}
void Level1Menu_5Exit(void)
{}
/*主界面6 空白*/
void Level1Menu_6Enter(void)
{
}
void Level1Menu_6Do(void)
{
}
void Level1Menu_6Exit(void)
{}
/*主界面7 亮度调节*/
void Level1Menu_7Enter(void)
{
}
void Level1Menu_7Do(void)
{
}
void Level1Menu_7Exit(void)
{}
/*主界面 报警界面*/
void LevelPopup_Enter(void)
{
}
void LevelPopup_Do(void)
{
}
void LevelPopup_Exit(void)
{}
\ No newline at end of file
#include "DisplaySch.h"
#include "Popup_Scheduler.h"
#include "Popup_List.h"
#include "Key.h"
#include "Menu.h"
#include "CAN_Lib.h"
#include "GUI.h"
#include "Services_ODO_User.h" /*清空总计里程函数*/
#include "CAN_Communication_Matrix.h" /*按键信息获取*/
#include "Menu.h"
#include "DisplaySch_user.h" #include "DisplaySch_user.h"
#include "Common_Interface.h" #include "Common_Interface.h"
#include "DispSch.h" #include "DispSch.h"
#include "DisplaySch.h"
#include "Popup_Scheduler.h" #include "Popup_Scheduler.h"
#include "Popup_List.h" #include "Popup_List.h"
#include "Key.h" #include "Key.h"
...@@ -20,15 +19,11 @@ uint8_t Mem [ 32 ]; ...@@ -20,15 +19,11 @@ uint8_t Mem [ 32 ];
#pragma ghs section bss = ".myNonInitArea" #pragma ghs section bss = ".myNonInitArea"
UE_CtrlInfo_Struct_t UE_CtrlInfo; UE_CtrlInfo_Struct_t UE_CtrlInfo;
uint8_t BG_display_flag;
#pragma ghs section bss = default #pragma ghs section bss = default
uint32_t HMI_StartAnimationFrameCnt; uint32_t HMI_StartAnimationFrameCnt;
static uint8_t MenuBGStatus = 0u;
static uint8_t MenuBGStatusOLD = 0u;
static uint8_t Menu_ModeSelection_Fsm(Menu_Key_en_t enMenuKey);
static void switch_branch(void); static void switch_branch(void);
uint8_t Get_Pwr(void) uint8_t Get_Pwr(void)
...@@ -73,9 +68,6 @@ void DisplayServices(void) ...@@ -73,9 +68,6 @@ void DisplayServices(void)
uint32_t PowerOFFTimer; uint32_t PowerOFFTimer;
uint8_t PowerStatus; uint8_t PowerStatus;
uint16_t popupID = 0xFFFFu; uint16_t popupID = 0xFFFFu;
Menu_Item_en_t DisplayIdx = MENU_ITEM_MAX;
DisplayIdx = Menu_Get_Current_Cursor_Information();
PowerStatus = Common_Get_IG_Sts( ); PowerStatus = Common_Get_IG_Sts( );
PowerOnTimer = Common_GetIgnOnTime( ); PowerOnTimer = Common_GetIgnOnTime( );
...@@ -116,9 +108,6 @@ void DisplayServices(void) ...@@ -116,9 +108,6 @@ void DisplayServices(void)
void Display_StartAnimationEnter(void) void Display_StartAnimationEnter(void)
{ {
HMI_StartAnimationFrameCnt = 0u;
MenuBGStatus = 0u;
MenuBGStatusOLD = 0xff;
GUI_Display_background(); GUI_Display_background();
} }
...@@ -138,288 +127,30 @@ void Display_StartAnimationService(void) ...@@ -138,288 +127,30 @@ void Display_StartAnimationService(void)
void Display_StartAnimationExit(void) void Display_StartAnimationExit(void)
{ {
loc_Enable_Window_App( ); loc_Enable_Window_App( );
MenuBGStatusOLD = MenuBGStatus;
} }
void Display_MenuService(void) void Display_MenuService(void)
{ {
if ( MenuBGStatusOLD != MenuBGStatus )
{
MenuBGStatusOLD = MenuBGStatus;
//GUI_Display_background(MenuBGStatus);
}
/*更換底圖位置結束*/
Menu_Item_en_t pstMenuBuf = MENU_ITEM_MAX;
pstMenuBuf = Menu_Get_Current_Cursor_Information( );
//if ( pstMenuBuf != MENU_ITEM_ENTRANCE_FIX )
//{
// if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_MENU == KEY_EVENT_SHORT_PRESS )
// {
// UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
// HMI_Clear_KEY_MENU( );
// }
//}
if ( UE_CtrlInfo.HMI_TIMER.u32MENU_Timer != 0u )
{
//if (
// (pstMenuBuf == MENU_ITEM_TRIP_CLEAR_SUCCEED) || \
// (pstMenuBuf == MENU_ITEM_MAINTENACE_CLEAR_SUCCEED) || \
// (pstMenuBuf == MENU_ITEM_WEIGHT_DETECTION)
//)
//{
// UE_CtrlInfo.HMI_TIMER.u32MENU_Timer--;
//}
}
else
{
Menu_Service(MENU_KEY_TIMEOUT);
}
if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_UP == KEY_EVENT_SHORT_PRESS )
{
Menu_Service(MENU_KEY_UP_SHORT);
UE_CtrlInfo.HMI_KEYInfo.u8KEY_UP = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_UP == KEY_EVENT_LONG_PRESS )
{
Menu_Service(MENU_KEY_UP_LONG);
UE_CtrlInfo.HMI_KEYInfo.u8KEY_UP = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_DOWN == KEY_EVENT_SHORT_PRESS )
{
Menu_Service(MENU_KEY_DOWN_SHORT);
UE_CtrlInfo.HMI_KEYInfo.u8KEY_DOWN = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_DOWN == KEY_EVENT_LONG_PRESS )
{
Menu_Service(MENU_KEY_DOWN_LONG);
UE_CtrlInfo.HMI_KEYInfo.u8KEY_DOWN = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_CONFIRM == KEY_EVENT_SHORT_PRESS )
{
Menu_Service(MENU_KEY_CONFIRM_SHORT);
UE_CtrlInfo.HMI_KEYInfo.u8KEY_CONFIRM = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_CONFIRM == KEY_EVENT_LONG_PRESS )
{
Menu_Item_en_t MenuValueSta = 0u;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
Menu_Service(MENU_KEY_CONFIRM_LONG);
//if ( MenuValueSta == MENU_ITEM_TRIP_CLEAR_SUCCEED )
//{
// Data_ODO_Clear_Mileage_Num( );
//}
UE_CtrlInfo.HMI_KEYInfo.u8KEY_CONFIRM = 0U;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_CONFIRM == KEY_EVENT_SUPER_LONG_PRESS )
{
TYW_Data_ODO_Clear( );
UE_CtrlInfo.HMI_KEYInfo.u8KEY_CONFIRM = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_CANCEL == KEY_EVENT_SHORT_PRESS )
{
Menu_Service(MENU_KEY_CANCEL_SHORT);
UE_CtrlInfo.HMI_KEYInfo.u8KEY_CANCEL = 0U;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_CANCEL == KEY_EVENT_LONG_PRESS )
{
Menu_Service(MENU_KEY_CANCEL_LONG);
UE_CtrlInfo.HMI_KEYInfo.u8KEY_CANCEL = 0U;
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_MENU == KEY_EVENT_SHORT_PRESS )
{
UE_CtrlInfo.HMI_KEYInfo.u8KEY_MENU = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
switch_branch();//按键切菜单分支
}
else if ( UE_CtrlInfo.HMI_KEYInfo.u8KEY_MENU == KEY_EVENT_LONG_PRESS )
{
UE_CtrlInfo.HMI_KEYInfo.u8KEY_MENU = 0U;
UE_CtrlInfo.HMI_TIMER.u32MENU_Timer = DisplayMenuTime;
}
else
{
;/*do nothing!*/
}
/*-------------------------------------------------------------------------------------*/
//SOC_Value = Get_ID_18FFDC21_Sig_SOC();
//SOH_Value = Get_ID_18FFDC21_Sig_SOH();
//CPD2_0x18FFDC21x_Msg = CAN_MSG_Status(ID_CPD2_0x18FFDC21x_Msg_Count);
//if (((SOC_Value == 0xFFu) && (SOH_Value == 0xFFu)) || (CPD2_0x18FFDC21x_Msg == CAN_SIG_LOST))
//{
// Menu_Item_Exist_Condition_Set(MENU_ITEM_Battery_Sts, 0u);
//}
//else
//{
// Menu_Item_Exist_Condition_Set(MENU_ITEM_Battery_Sts, 1u);
//}
//ACCCanStatus = Common_Get_ACC1_ACC_10FE6F2Ax_Msg_Sta();
/*-------------------------------------------------------------------------------------*/
} }
void Display_AlarmService(void) void Display_AlarmService(void)
{ {
uint16_t popupID = 0xFFFFu;
Menu_Item_en_t DisplayIdx = MENU_ITEM_MAX;
DisplayIdx = Menu_Get_Current_Cursor_Information();
//if (DisplayIdx < MENU_ITEM_PassWord_1)
//{
// popupID = Popup_Get_Current_Message( );
//}
//else
//{
// popupID = 0xFFFFu;
//}
} }
Menu_Item_en_t DisplayIdx = MENU_ITEM_MAX;
void GUI_DisplayServices(void) void GUI_DisplayServices(void)
{ {
UElib_uint16_t HMI_MENU_Sta = 0u;; if (BG_display_flag == 0)
uint8_t MENU_Battery_Sts = 0u;
uint8_t PowerStatus;
PowerStatus = Common_Get_IG_Sts( );
HMI_MENU_Sta = Get_Cur_HMI();
DisplayIdx = Menu_Get_Current_Cursor_Information();
//MENU_Battery_Sts = Menu_Item_Exist_Condition_Get(MENU_ITEM_Battery_Sts);
if(HMI_MENU_Sta != Display_StartAnimation)
{
if(PowerStatus == COMMON_POWER_ON)
{
GUI_wby_test_Display();
/*显示函数开始*/
#if 0
GUI_Display_OftenShow_Group();
switch ( DisplayIdx )
{
default :
break ;
case MENU_ITEM_DRIVE_INFOR_TRIPA: /*TRIPA 平均油耗/平均车速显示画面*/
GUI_Display_UsuallyConv(USUALLY_TRIPA);
break;
case MENU_ITEM_DRIVE_INFOR_TRIPB: /*TRIPB 平均油耗/平均车速显示画面*/
GUI_Display_UsuallyConv(USUALLY_TRIPB);
break;
case MENU_ITEM_DRIVE_INFOR_VOLTMETER: /*电压计显示画面*/
GUI_Display_UsuallyConv(USUALLY_VOLTMETER);
break;
case MENU_ITEM_DRIVE_INFOR_CALENDAR: /*日期/时钟显示画面*/
GUI_Display_UsuallyConv(USUALLY_CALENDAR);
break;
case MENU_ITEM_DRIVE_INFOR_TIME_TABLE: /*计时表/油温计显示画面*/
GUI_Display_UsuallyConv(USUALLY_TIME_TABLE);
break;
case MENU_ITEM_DRIVE_INFOR_DPD_ACCUMULATION: /*DPD堆积量显示画面*/
GUI_Display_UsuallyConv(USUALLY_DPD_ACCUMULATION);
break;
case MENU_ITEM_DRIVE_INFOR_DPD_REGENERATION: /*DPD再生进度显示画面*/
GUI_Display_UsuallyConv(USUALLY_DPD_REGENERATION);
break;
}
#endif
GUI_Display_Menu_Item(DisplayIdx, 0);
}
}
//if (
// (HMI_MENU_Sta == Display_Alarm) && \
// ((DisplayIdx == MENU_ITEM_ENTRANCE_FIX) || (DisplayIdx == MENU_ITEM_ENTRANCE_ALTER))
//)
#if 0
if(HMI_MENU_Sta == Display_Alarm)
{ {
//loc_Del_Sprite(PotSelect_Sprite, Menu_Project_Sprite); BG_display_flag = 1;
MenuInit();
//GUI_General_Popup();
} }
else if (HMI_MENU_Sta == Display_Menu) else
{
/*显示函数开始*/
switch ( DisplayIdx )
{ {
case MENU_ITEM_DRIVE_INFOR_TRIPA: /*TRIPA 平均油耗/平均车速显示画面*/ MenuManage();
GUI_Display_OftenShow_Group(); //BG_display_flag = 0;
GUI_Display_UsuallyConv(USUALLY_TRIPA);
break;
case MENU_ITEM_DRIVE_INFOR_TRIPB: /*TRIPB 平均油耗/平均车速显示画面*/
GUI_Display_OftenShow_Group();
GUI_Display_UsuallyConv(USUALLY_TRIPB);
break;
case MENU_ITEM_DRIVE_INFOR_VOLTMETER: /*电压计显示画面*/
GUI_Display_OftenShow_Group();
GUI_Display_UsuallyConv(USUALLY_VOLTMETER);
break;
case MENU_ITEM_DRIVE_INFOR_CALENDAR: /*日期/时钟显示画面*/
GUI_Display_OftenShow_Group();
GUI_Display_UsuallyConv(USUALLY_CALENDAR);
break;
case MENU_ITEM_DRIVE_INFOR_TIME_TABLE: /*计时表/油温计显示画面*/
GUI_Display_OftenShow_Group();
GUI_Display_UsuallyConv(USUALLY_TIME_TABLE);
break;
case MENU_ITEM_DRIVE_INFOR_DPD_ACCUMULATION: /*DPD堆积量显示画面*/
GUI_Display_OftenShow_Group();
GUI_Display_UsuallyConv(USUALLY_DPD_ACCUMULATION);
break;
case MENU_ITEM_DRIVE_INFOR_DPD_REGENERATION: /*DPD再生进度显示画面*/
GUI_Display_OftenShow_Group();
GUI_Display_UsuallyConv(USUALLY_DPD_REGENERATION);
break;
case MENU_ITEM_LEVEL_1_DTC: /*故障代码*/
break;
case MENU_ITEM_LEVEL_1_MAINTAINTENANCE_NOTICE: /*维修通知*/
break;
case MENU_ITEM_LEVEL_1_MAINTAINTENANCE_NOTICE_SET: /*维修通知的设定*/
break;
case MENU_ITEM_LEVEL_1_USER_SET: /*用户设定*/
break;
case MENU_ITEM_LEVEL_1_ECO_STATUS: /*ECO状态显示*/
break;
case MENU_ITEM_LEVEL_1_SYS_MODE: /*系统演示模式*/
break;
default:
break;
}
} }
#endif
} }
void HMI_Set_KEY_UP(uint8_t u8KeyVal) void HMI_Set_KEY_UP(uint8_t u8KeyVal)
...@@ -464,60 +195,3 @@ void HMI_Clear_KEY_MENU(void) ...@@ -464,60 +195,3 @@ void HMI_Clear_KEY_MENU(void)
{ {
UE_CtrlInfo.HMI_KEYInfo.u8KEY_MENU = 0u; UE_CtrlInfo.HMI_KEYInfo.u8KEY_MENU = 0u;
} }
enDisp_Type_t Get_Current_DispType(void)
{
return UE_CtrlInfo.HMI_Type;
}
/*-------------------------------------------------------------------------
* Function Name : Menu_ModeSelection_Fsm
* Description : 菜单模式转换
* Input : None
* Output : None
* Return : 0 - 模式保持 1 - 模式更新
* onther : 344 - 6
--------------------------------------------------------------------------*/
static uint8_t Menu_ModeSelection_Fsm(Menu_Key_en_t enMenuKey)
{
uint8_t u8Result = 0 ;
Menu_Branch_en_t CurBranch ;
CurBranch = stMenuItemAttribute[Menu_Get_Current_Cursor_Information()].enMenuLocateBranch ;
switch(CurBranch)
{
case 0 :
break ;
case 1 :
break ;
case 2 :
break ;
case 3 :
break ;
default :
break ;
}
return u8Result ;
}
/*************************************************
通过按键“MENU”在 行车电脑 和 用户模式菜单 之间切换:
**************************************************/
void switch_branch(void)
{
if (stMenuItemAttribute[Menu_Get_Current_Cursor_Information()].enMenuLocateBranch == MENU_BRANCH_NORMAL_DISPLAY)
{
Menu_Change_Branch(MENU_BRANCH_USER_MODE_MENU, MENU_CHANGE_FIRST);
}
else
{
Menu_Change_Branch(MENU_BRANCH_NORMAL_DISPLAY, MENU_CHANGE_FIRST);
}
}
\ No newline at end of file
...@@ -8,23 +8,11 @@ ...@@ -8,23 +8,11 @@
#ifndef LOC_GRAPHICS_DATA_H_ #ifndef LOC_GRAPHICS_DATA_H_
#define LOC_GRAPHICS_DATA_H_ #define LOC_GRAPHICS_DATA_H_
//#include "r_typedefs.h"
//#include "r_ddb_api.h"
//#include "r_cdi_api.h"
//#include "r_wm_api.h"
//#include "r_drw2d_os.h"
//#include "r_drw2d_api.h"
//#include "loc_graphics.h"
//#include "GUI.h"
#include "loc_graphics_def.h" #include "loc_graphics_def.h"
#include "images.h" #include "images.h"
#include "DisplaySch_user.h" #include "DisplaySch_user.h"
/*区域1 WET*/
/*AutoCreateBegin*/
#define MAX_WET_SUP_LAYER 20 #define MAX_WET_SUP_LAYER 20
MultiBufferSprite_t WETSpriteBuf; MultiBufferSprite_t WETSpriteBuf;
uint8_t WETIndex = 0u; uint8_t WETIndex = 0u;
...@@ -32,6 +20,7 @@ uint8_t WETUpdate = 0u; ...@@ -32,6 +20,7 @@ uint8_t WETUpdate = 0u;
uint8_t WETEn = 0u; uint8_t WETEn = 0u;
LogicLayerAttr_t WETLogicLayerAttr[MAX_WET_SUP_LAYER]; LogicLayerAttr_t WETLogicLayerAttr[MAX_WET_SUP_LAYER];
/*区域1 AdBlue*/
#define MAX_ADBLUE_SUP_LAYER 10 #define MAX_ADBLUE_SUP_LAYER 10
MultiBufferSprite_t AdBlueSpriteBuf; MultiBufferSprite_t AdBlueSpriteBuf;
uint8_t AdBlueIndex = 0u; uint8_t AdBlueIndex = 0u;
...@@ -39,6 +28,7 @@ uint8_t AdBlueUpdate = 0u; ...@@ -39,6 +28,7 @@ uint8_t AdBlueUpdate = 0u;
uint8_t AdBlueEn = 0u; uint8_t AdBlueEn = 0u;
LogicLayerAttr_t AdBlueLogicLayerAttr[MAX_ADBLUE_SUP_LAYER]; LogicLayerAttr_t AdBlueLogicLayerAttr[MAX_ADBLUE_SUP_LAYER];
/*区域2 TRIP*/
#define MAX_TRIP_SUP_LAYER 10 #define MAX_TRIP_SUP_LAYER 10
MultiBufferSprite_t TRIPSpriteBuf; MultiBufferSprite_t TRIPSpriteBuf;
uint8_t TRIPIndex = 0u; uint8_t TRIPIndex = 0u;
...@@ -46,6 +36,7 @@ uint8_t TRIPUpdate = 0u; ...@@ -46,6 +36,7 @@ uint8_t TRIPUpdate = 0u;
uint8_t TRIPEn = 0u; uint8_t TRIPEn = 0u;
LogicLayerAttr_t TRIPLogicLayerAttr[MAX_TRIP_SUP_LAYER]; LogicLayerAttr_t TRIPLogicLayerAttr[MAX_TRIP_SUP_LAYER];
/*区域2 ODO*/
#define MAX_ODO_SUP_LAYER 10 #define MAX_ODO_SUP_LAYER 10
MultiBufferSprite_t ODOSpriteBuf; MultiBufferSprite_t ODOSpriteBuf;
uint8_t ODOIndex = 0u; uint8_t ODOIndex = 0u;
...@@ -53,6 +44,7 @@ uint8_t ODOUpdate = 0u; ...@@ -53,6 +44,7 @@ uint8_t ODOUpdate = 0u;
uint8_t ODOEn = 0u; uint8_t ODOEn = 0u;
LogicLayerAttr_t ODOLogicLayerAttr[MAX_ODO_SUP_LAYER]; LogicLayerAttr_t ODOLogicLayerAttr[MAX_ODO_SUP_LAYER];
/*区域3 警告灯*/
#define MAX_WARNINGLIGHT_SUP_LAYER 10 #define MAX_WARNINGLIGHT_SUP_LAYER 10
MultiBufferSprite_t WarningLightSpriteBuf; MultiBufferSprite_t WarningLightSpriteBuf;
uint8_t WarningLightIndex = 0u; uint8_t WarningLightIndex = 0u;
...@@ -60,6 +52,7 @@ uint8_t WarningLightUpdate = 0u; ...@@ -60,6 +52,7 @@ uint8_t WarningLightUpdate = 0u;
uint8_t WarningLightEn = 0u; uint8_t WarningLightEn = 0u;
LogicLayerAttr_t WarningLightLogicLayerAttr[MAX_WARNINGLIGHT_SUP_LAYER]; LogicLayerAttr_t WarningLightLogicLayerAttr[MAX_WARNINGLIGHT_SUP_LAYER];
/*区域4 ADAS*/
#define MAX_ADAS_SUP_LAYER 15 #define MAX_ADAS_SUP_LAYER 15
MultiBufferSprite_t ADASSpriteBuf; MultiBufferSprite_t ADASSpriteBuf;
uint8_t ADASIndex = 0u; uint8_t ADASIndex = 0u;
...@@ -67,6 +60,7 @@ uint8_t ADASUpdate = 0u; ...@@ -67,6 +60,7 @@ uint8_t ADASUpdate = 0u;
uint8_t ADASEn = 0u; uint8_t ADASEn = 0u;
LogicLayerAttr_t ADASLogicLayerAttr[MAX_ADAS_SUP_LAYER]; LogicLayerAttr_t ADASLogicLayerAttr[MAX_ADAS_SUP_LAYER];
/*区域5 行车电脑*/
#define MAX_MULTIPURPOSE_SUP_LAYER 20 #define MAX_MULTIPURPOSE_SUP_LAYER 20
MultiBufferSprite_t MultiPurposeSpriteBuf; MultiBufferSprite_t MultiPurposeSpriteBuf;
uint8_t MultiPurposeIndex = 0u; uint8_t MultiPurposeIndex = 0u;
...@@ -74,6 +68,7 @@ uint8_t MultiPurposeUpdate = 0u; ...@@ -74,6 +68,7 @@ uint8_t MultiPurposeUpdate = 0u;
uint8_t MultiPurposeEn = 0u; uint8_t MultiPurposeEn = 0u;
LogicLayerAttr_t MultiPurposeLogicLayerAttr[MAX_MULTIPURPOSE_SUP_LAYER]; LogicLayerAttr_t MultiPurposeLogicLayerAttr[MAX_MULTIPURPOSE_SUP_LAYER];
/*区域6 定速巡航车速*/
#define MAX_SETSPEED_SUP_LAYER 5 #define MAX_SETSPEED_SUP_LAYER 5
MultiBufferSprite_t SetSpeedSpriteBuf; MultiBufferSprite_t SetSpeedSpriteBuf;
uint8_t SetSpeedIndex = 0u; uint8_t SetSpeedIndex = 0u;
...@@ -81,6 +76,7 @@ uint8_t SetSpeedUpdate = 0u; ...@@ -81,6 +76,7 @@ uint8_t SetSpeedUpdate = 0u;
uint8_t SetSpeedEn = 0u; uint8_t SetSpeedEn = 0u;
LogicLayerAttr_t SetSpeedLogicLayerAttr[MAX_SETSPEED_SUP_LAYER]; LogicLayerAttr_t SetSpeedLogicLayerAttr[MAX_SETSPEED_SUP_LAYER];
/*区域6 定速巡航图标*/
#define MAX_CRUISE_SUP_LAYER 3 #define MAX_CRUISE_SUP_LAYER 3
MultiBufferSprite_t CruiseSpriteBuf; MultiBufferSprite_t CruiseSpriteBuf;
uint8_t CruiseIndex = 0u; uint8_t CruiseIndex = 0u;
...@@ -88,6 +84,7 @@ uint8_t CruiseUpdate = 0u; ...@@ -88,6 +84,7 @@ uint8_t CruiseUpdate = 0u;
uint8_t CruiseEn = 0u; uint8_t CruiseEn = 0u;
LogicLayerAttr_t CruiseLogicLayerAttr[MAX_CRUISE_SUP_LAYER]; LogicLayerAttr_t CruiseLogicLayerAttr[MAX_CRUISE_SUP_LAYER];
/*区域7 挡位*/
#define MAX_GEAR_SUP_LAYER 5 #define MAX_GEAR_SUP_LAYER 5
MultiBufferSprite_t GearSpriteBuf; MultiBufferSprite_t GearSpriteBuf;
uint8_t GearIndex = 0u; uint8_t GearIndex = 0u;
...@@ -95,6 +92,7 @@ uint8_t GearUpdate = 0u; ...@@ -95,6 +92,7 @@ uint8_t GearUpdate = 0u;
uint8_t GearEn = 0u; uint8_t GearEn = 0u;
LogicLayerAttr_t GearLogicLayerAttr[MAX_GEAR_SUP_LAYER]; LogicLayerAttr_t GearLogicLayerAttr[MAX_GEAR_SUP_LAYER];
/*区域8 室外温度*/
#define MAX_TEMP_SUP_LAYER 10 #define MAX_TEMP_SUP_LAYER 10
MultiBufferSprite_t TempSpriteBuf; MultiBufferSprite_t TempSpriteBuf;
uint8_t TempIndex = 0u; uint8_t TempIndex = 0u;
...@@ -102,6 +100,7 @@ uint8_t TempUpdate = 0u; ...@@ -102,6 +100,7 @@ uint8_t TempUpdate = 0u;
uint8_t TempEn = 0u; uint8_t TempEn = 0u;
LogicLayerAttr_t TempLogicLayerAttr[MAX_TEMP_SUP_LAYER]; LogicLayerAttr_t TempLogicLayerAttr[MAX_TEMP_SUP_LAYER];
/*区域8 时间*/
#define MAX_TIME_SUP_LAYER 5 #define MAX_TIME_SUP_LAYER 5
MultiBufferSprite_t TimeSpriteBuf; MultiBufferSprite_t TimeSpriteBuf;
uint8_t TimeIndex = 0u; uint8_t TimeIndex = 0u;
...@@ -109,6 +108,7 @@ uint8_t TimeUpdate = 0u; ...@@ -109,6 +108,7 @@ uint8_t TimeUpdate = 0u;
uint8_t TimeEn = 0u; uint8_t TimeEn = 0u;
LogicLayerAttr_t TimeLogicLayerAttr[MAX_TIME_SUP_LAYER]; LogicLayerAttr_t TimeLogicLayerAttr[MAX_TIME_SUP_LAYER];
/*区域8 年月日*/
#define MAX_CALENDAR_SUP_LAYER 15 #define MAX_CALENDAR_SUP_LAYER 15
MultiBufferSprite_t CalendarSpriteBuf; MultiBufferSprite_t CalendarSpriteBuf;
uint8_t CalendarIndex = 0u; uint8_t CalendarIndex = 0u;
...@@ -116,37 +116,32 @@ uint8_t CalendarUpdate = 0u; ...@@ -116,37 +116,32 @@ uint8_t CalendarUpdate = 0u;
uint8_t CalendarEn = 0u; uint8_t CalendarEn = 0u;
LogicLayerAttr_t CalendarLogicLayerAttr[MAX_CALENDAR_SUP_LAYER]; LogicLayerAttr_t CalendarLogicLayerAttr[MAX_CALENDAR_SUP_LAYER];
static const SpritesHandler_t SpriteHandler[Max_Sprite] = static const SpritesHandler_t SpriteHandler[Max_Sprite] =
{ {
{WET_Sprite, {38,364,326,60,1},TARGET_SDRAM, &WETSpriteBuf, &WETIndex, WETLogicLayerAttr, MAX_WET_SUP_LAYER ,&WETUpdate, &WETEn, GUI_DisplayServices}, {WET_Sprite, { 38, 364, 326, 60, 1}, TARGET_SDRAM, &WETSpriteBuf, &WETIndex, WETLogicLayerAttr, MAX_WET_SUP_LAYER , &WETUpdate, &WETEn, GUI_DisplayServices},
{AdBlue_Sprite, {38,428,326,48,1},TARGET_SDRAM, &AdBlueSpriteBuf, &AdBlueIndex, AdBlueLogicLayerAttr, MAX_ADBLUE_SUP_LAYER ,&AdBlueUpdate, &AdBlueEn, R_NULL}, {AdBlue_Sprite, { 38, 428, 326, 48, 1}, TARGET_SDRAM, &AdBlueSpriteBuf, &AdBlueIndex, AdBlueLogicLayerAttr, MAX_ADBLUE_SUP_LAYER , &AdBlueUpdate, &AdBlueEn, R_NULL},
{TRIP_Sprite, {438,374,322,48,1},TARGET_SDRAM, &TRIPSpriteBuf, &TRIPIndex, TRIPLogicLayerAttr, MAX_TRIP_SUP_LAYER ,&TRIPUpdate, &TRIPEn, R_NULL}, {TRIP_Sprite, {438, 374, 322, 48, 1}, TARGET_SDRAM, &TRIPSpriteBuf, &TRIPIndex, TRIPLogicLayerAttr, MAX_TRIP_SUP_LAYER , &TRIPUpdate, &TRIPEn, R_NULL},
{ODO_Sprite, {438,424,324,42,1},TARGET_SDRAM, &ODOSpriteBuf, &ODOIndex, ODOLogicLayerAttr, MAX_ODO_SUP_LAYER ,&ODOUpdate, &ODOEn, R_NULL}, {ODO_Sprite, {438, 424, 324, 42, 1}, TARGET_SDRAM, &ODOSpriteBuf, &ODOIndex, ODOLogicLayerAttr, MAX_ODO_SUP_LAYER , &ODOUpdate, &ODOEn, R_NULL},
{WarningLight_Sprite, {8,88,82,264,1},TARGET_SDRAM, &WarningLightSpriteBuf, &WarningLightIndex, WarningLightLogicLayerAttr, MAX_WARNINGLIGHT_SUP_LAYER ,&WarningLightUpdate, &WarningLightEn, R_NULL}, {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}, {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}, {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}, {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, {520, 90, 90, 87, 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}, {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}, {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}, {Time_Sprite, {330, 14, 140, 66, 1}, TARGET_SDRAM, &TimeSpriteBuf, &TimeIndex, TimeLogicLayerAttr, MAX_TIME_SUP_LAYER , &TimeUpdate, &TimeEn, R_NULL},
{Calendar_Sprite, {508,16,284,64,1},TARGET_SDRAM, &CalendarSpriteBuf, &CalendarIndex, CalendarLogicLayerAttr, MAX_CALENDAR_SUP_LAYER ,&CalendarUpdate, &CalendarEn, R_NULL}, {Calendar_Sprite, {508, 16, 284, 64, 1}, TARGET_SDRAM, &CalendarSpriteBuf, &CalendarIndex, CalendarLogicLayerAttr, MAX_CALENDAR_SUP_LAYER , &CalendarUpdate, &CalendarEn, R_NULL},
}; };
/*AutoCreateEnd*/ /*AutoCreateEnd*/
static const r_screen_attr_t ScreenAttr = static const r_screen_attr_t ScreenAttr =
{ {
800, 480, 896, /* JEPG Window*/ 800, 480, 896, /* JEPG Window*/
800, 480, 896, /* Loc Window*/ 800, 480, 896, /* Loc Window*/
5, /* 刷新时间,50ms*/ 5, /* 刷新时间,50ms*/
Max_Sprite, /* 主屏幕Sprite数量*/ 13, /* 主屏幕Sprite数量*/
Max_Sprite, /* 全部Sprite数量*/ Max_Sprite, /* 全部Sprite数量*/
SpriteSize /* 最大的图片数量*/ SpriteSize /* 最大的图片数量*/
}; };
#endif #endif
\ No newline at end of file
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
#include "Flash_synchronizer.h" #include "Flash_synchronizer.h"
#include "Line_in.h" #include "Line_in.h"
#include "Telltales.h" #include "Telltales.h"
#include "DisplaySch.h"
#include "GUI.h" #include "GUI.h"
#include "Key.h" #include "Key.h"
#include "Menu.h" #include "Menu.h"
......
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