diff --git a/source/Application/APP/Key/Key_user.c b/source/Application/APP/Key/Key_user.c index a2ce3a31ee818e07ab2c5076483e6fad34de4185..48eebf45cd7b0851b22e07f69b26fa87fa7b72bb 100644 --- a/source/Application/APP/Key/Key_user.c +++ b/source/Application/APP/Key/Key_user.c @@ -7,6 +7,7 @@ #include "Sound_Scheduler.h" #include "System_Monitor.h" #include "RTE_ADC.h" +#include "Popup_Scheduler.h" #include "CAN_Communication_Matrix.h" #include "GUI.h" @@ -47,7 +48,9 @@ void Key_Operation_Up(Key_Event_en_t enKeyEvent) { uint8_t CanStatus1 = 0u; uint16_t DispVSpeed = 0u; - KeyTest.Up ++ ; + uint16_t popupID = 0U; + + popupID = Popup_Get_Current_Message( ); HMI_Set_KEY_UP(enKeyEvent); DispVSpeed = Common_Get_Disp_V_Speed(); @@ -55,7 +58,7 @@ void Key_Operation_Up(Key_Event_en_t enKeyEvent) if (DispVSpeed <= DISPSPEEDNULLMAX) { - if (enKeyEvent == KEY_EVENT_SHORT_PRESS) + if ((enKeyEvent == KEY_EVENT_SHORT_PRESS) && (popupID == 0xffffu )) { /*ä¸»ç•Œé¢ ä¸€çº§èœå• 二级èœå•é‚£*/ if (((bCurMenuIDX >= _MN_DSP_LEVEL1MENU_1) && (bCurMenuIDX <= _MN_DSP_LEVEL2_6_MENU_2)) || @@ -308,13 +311,15 @@ void Key_Operation_Up(Key_Event_en_t enKeyEvent) void Key_Operation_Down(Key_Event_en_t enKeyEvent) { uint16_t DispVSpeed = 0u; - KeyTest.Down ++ ; + uint16_t popupID = 0U; + + popupID = Popup_Get_Current_Message( ); HMI_Set_KEY_DOWN(enKeyEvent); DispVSpeed = Common_Get_Disp_V_Speed(); if (DispVSpeed <= DISPSPEEDNULLMAX) { - if (enKeyEvent == KEY_EVENT_SHORT_PRESS) + if ((enKeyEvent == KEY_EVENT_SHORT_PRESS) && (popupID == 0xffffu )) { /*ä¸»ç•Œé¢ ä¸€çº§èœå• 二级èœå•*/ if (((bCurMenuIDX >= _MN_DSP_LEVEL1MENU_1) && (bCurMenuIDX <= _MN_DSP_LEVEL2_6_MENU_2)) || @@ -558,14 +563,16 @@ void Key_Operation_Down(Key_Event_en_t enKeyEvent) void Key_Operation_Enter(Key_Event_en_t enKeyEvent) { uint16_t DispVSpeed = 0u; - KeyTest.Enter ++ ; + uint16_t popupID = 0U; + + popupID = Popup_Get_Current_Message( ); HMI_Set_KEY_CONFIRM(enKeyEvent); DispVSpeed = Common_Get_Disp_V_Speed(); if (DispVSpeed <= DISPSPEEDNULLMAX) { - if (enKeyEvent == KEY_EVENT_SHORT_PRESS) + if ((enKeyEvent == KEY_EVENT_SHORT_PRESS) && (popupID == 0xffffu )) { if (((bCurMenuIDX >= _MN_DSP_LEVEL2MENU_1) && (bCurMenuIDX <= _MN_DSP_LEVEL2_6_MENU_2)) || ((bCurMenuIDX >= _MN_DSP_LEVEL3_4_MENU_41) && (bCurMenuIDX <= _MN_DSP_LEVEL3_4_MENU_47))) @@ -620,13 +627,15 @@ void Key_Operation_Enter(Key_Event_en_t enKeyEvent) void Key_Operation_Return(Key_Event_en_t enKeyEvent) { uint16_t DispVSpeed = 0u; - KeyTest.Return ++ ; + uint16_t popupID = 0U; + + popupID = Popup_Get_Current_Message( ); HMI_Set_KEY_CANCEL(enKeyEvent); DispVSpeed = Common_Get_Disp_V_Speed(); if (DispVSpeed <= DISPSPEEDNULLMAX) { - if (enKeyEvent == KEY_EVENT_SHORT_PRESS) + if ((enKeyEvent == KEY_EVENT_SHORT_PRESS) && (popupID == 0xffffu )) { if ((bCurMenuIDX >= _MN_DSP_LEVEL2_1_MENU_1) && (bCurMenuIDX < _MN_DSP_ENTER_MENU)) { @@ -699,8 +708,9 @@ void Key_Operation_Menu(Key_Event_en_t enKeyEvent) { uint8_t CanStatus1 = 0u; uint16_t DispVSpeed = 0u; - KeyTest.Menu ++ ; + uint16_t popupID = 0U; + popupID = Popup_Get_Current_Message( ); HMI_Set_KEY_MENU(enKeyEvent); DispVSpeed = Common_Get_Disp_V_Speed(); @@ -708,7 +718,7 @@ void Key_Operation_Menu(Key_Event_en_t enKeyEvent) if (DispVSpeed <= DISPSPEEDNULLMAX) { - if (enKeyEvent == KEY_EVENT_SHORT_PRESS) + if ((enKeyEvent == KEY_EVENT_SHORT_PRESS) && (popupID == 0xffffu )) { /*记录进入menuèœå•çš„ä½ç½®*/ if ((bCurMenuIDX >= _MN_DSP_LEVEL1MENU_1) && (bCurMenuIDX <= _MN_DSP_LEVEL1MENU_6)) diff --git a/source/Application/Alarm/Popup_List.h b/source/Application/Alarm/Popup_List.h index b19c530b3b1c62dfd7c0b6429ccb819915233625..775f55bf08e0ba2cfad76bce1690fc961876565b 100644 --- a/source/Application/Alarm/Popup_List.h +++ b/source/Application/Alarm/Popup_List.h @@ -15,15 +15,18 @@ ******************************************************************************/ enum PopupName { + /*----第一组----*/ POPUP1_BRAKE_BLACK = 0x00u ,/*00.紧急è¦æŠ¥-刹车*/ POPUP1_BRAKE_BRAKE ,/*01.紧急è¦æŠ¥-紧急制动*/ POPUP1_BRAKE_SPACING_R ,/*02.车间è·è¦æŠ¥-刹车(红å—)*/ POPUP1_BRAKE_SPACING_COLLISION ,/*03.车间è·è¦æŠ¥-碰撞报è¦*/ POPUP1_BRAKE_SPACING_Y ,/*04.车间è·è¦æŠ¥-刹车(黄å—)*/ POPUT1_ASR_OPERATE ,/*05.ASR工作*/ + /*----第二组----*/ POPUT2_PTO ,/*06.PTO紧急è¦æŠ¥-刹车*/ POPUP2_PARKING_BRAKE ,/*07.忘记æ¾æ‰‹åˆ¹è½¦*/ POPUP2_AIRMATIC_HIGHT ,/*08.é¥æŽ§è°ƒæ•´è½¦è¾†é«˜åº¦(有车速)*/ + /*----第三组----*/ POPUP3_CRUISE ,/*09.自动巡航模å¼*/ POPUP3_VARIABLE_SLD ,/*10.å¯å˜SLD 模å¼*/ POPUT4_ABNORMAL_CHARGE ,/*11.充电异常(系统检测)*/ diff --git a/source/Application/Alarm/Popups.c b/source/Application/Alarm/Popups.c index 317b0d8ef4cfef2eb0026729af2ff957ad87aab9..938ff6bf9d21ff6ea60c553106c60e1898c6042c 100644 --- a/source/Application/Alarm/Popups.c +++ b/source/Application/Alarm/Popups.c @@ -19,6 +19,11 @@ #include "Data_Voltmeter.h" #include "Data_Fuel_User.h" +static uint8_t CRUISE_1_Time = 0x00u; +static uint8_t CRUISE_STUDY_Time = 0x00u; +static uint8_t CRUISE_SLD1_Time = 0x00u; +static uint8_t CRUISE_SLD2_Time = 0x00u; + void Popups_Management_Service(void) { Popups_Polling( ); @@ -167,6 +172,68 @@ void Popups_Polling(void) Popup_Delete(POPUT1_ASR_OPERATE); } + /*----第二组---------------------------------------------------------------------*/ + /*6.PTO紧急è¦æŠ¥-刹车*/ + variable_1 = Get_ID_18FED900_Sig_PTO_SW(); + variable_2 = Line_In_Get_Status(LINE_IN_PTO);//B01 + + if ((variable_1 == 0x01u) || (variable_2 == LINE_IN_LOGIC_VALID)) + { + Popup_Request(POPUT2_PTO); + } + else + { + Popup_Delete(POPUT2_PTO); + } + + /*7.忘记æ¾æ‰‹åˆ¹è½¦ LINE_IN_Get_PARK_BRAKE 驻车制动*/ + variable_1 = Line_In_Get_Status(LINE_IN_PARK_BRAKE); + + if (variable_1 == LINE_IN_LOGIC_VALID) //6.67Km + { + Popup_Request(POPUP2_PARKING_BRAKE); + } + else + { + Popup_Delete(POPUP2_PARKING_BRAKE); + } + + /*8.é¥æŽ§è°ƒæ•´è½¦è¾†é«˜åº¦(有车速)*/ + variable_1 = Line_In_Get_Status(LINE_IN_AIR_SUS); + + if (variable_1 == LINE_IN_LOGIC_VALID) //0.5Km + { + Popup_Request(POPUP2_AIRMATIC_HIGHT); + } + else + { + Popup_Delete(POPUP2_AIRMATIC_HIGHT); + } + + /*----第三组---------------------------------------------------------------------*/ + /*9.自动巡航模å¼*/ + variable_1 = Get_ID_18FF4100_Sig_Cruise_VariableSLD_Disp(); + + if (variable_1 == 0x01u) //5s内ä¸æ˜¾ç¤º + { + Popup_Request(POPUP3_CRUISE); + } + else + { + Popup_Delete(POPUP3_CRUISE); + } + + /*10.å¯å˜SLD 模å¼*/ + variable_1 = Get_ID_18FF4100_Sig_Cruise_VariableSLD_Disp(); + + if (variable_1 == 0x03u) //5s内ä¸æ˜¾ç¤º + { + Popup_Request(POPUP3_VARIABLE_SLD); + } + else + { + Popup_Delete(POPUP3_VARIABLE_SLD); + } } else /*ig off*/ { @@ -176,11 +243,11 @@ void Popups_Polling(void) Popup_Clear(POPUP1_BRAKE_SPACING_COLLISION);/*03.车间è·è¦æŠ¥-碰撞报è¦*/ Popup_Clear(POPUP1_BRAKE_SPACING_Y);/*04.车间è·è¦æŠ¥-刹车(黄å—)*/ Popup_Clear(POPUT1_ASR_OPERATE);/*05.ASR工作*/ - /*06.PTO紧急è¦æŠ¥-刹车*/ - /*07.忘记æ¾æ‰‹åˆ¹è½¦*/ - /*08.é¥æŽ§è°ƒæ•´è½¦è¾†é«˜åº¦(有车速)*/ - /*09.自动巡航模å¼*/ - /*10.å¯å˜SLD 模å¼*/ + Popup_Clear(POPUT2_PTO);/*06.PTO紧急è¦æŠ¥-刹车*/ + Popup_Clear(POPUP2_PARKING_BRAKE);/*07.忘记æ¾æ‰‹åˆ¹è½¦*/ + Popup_Clear(POPUP2_AIRMATIC_HIGHT);/*08.é¥æŽ§è°ƒæ•´è½¦è¾†é«˜åº¦(有车速)*/ + Popup_Clear(POPUP3_CRUISE);/*09.自动巡航模å¼*/ + Popup_Clear(POPUP3_VARIABLE_SLD);/*10.å¯å˜SLD 模å¼*/ /*11.充电异常(系统检测)*/ /*12.油压(系统检测)*/ /*13.AMTåˆå§‹åŒ–异常*/ @@ -270,63 +337,6 @@ void Popups_Polling(void) #if 0 - - //6.PTO紧急è¦æŠ¥-刹车 - variable_1 = Get_ID_18FED900_Sig_PTO_SW(); - variable_2 = Line_In_Get_Status(LINE_IN_PTO);//B01 - if (V_Speed && (variable_1 || variable_2)) - { - Popup_Request(POPUT2_PTO); - } - else - { - Popup_Delete(POPUT2_PTO); - } - //7.忘记æ¾æ‰‹åˆ¹è½¦ LINE_IN_Get_PARK_BRAKE 驻车制动 - variable_1 = Line_In_Get_Status(LINE_IN_PARK_BRAKE);//获å–硬线结果 - if ((V_Speed > 66) && (variable_1 == LINE_IN_LOGIC_VALID)) //6.67Km - { - Popup_Request(POPUP2_PARKING_BRAKE); - } - else - { - Popup_Delete(POPUP2_PARKING_BRAKE); - } - - //8.é¥æŽ§è°ƒæ•´è½¦è¾†é«˜åº¦(有车速) - variable_1 = Line_In_Get_Status(LINE_IN_AIR_SUS);//获å–硬线结果 - if ((V_Speed > 5) && (variable_1 == LINE_IN_LOGIC_VALID)) //0.5Km - { - Popup_Request(POPUP2_AIRMATIC_HIGHT); - } - else - { - Popup_Delete(POPUP2_AIRMATIC_HIGHT); - } - - //9.è‡ªåŠ¨å·¡èˆªæ¨¡å¼ - - variable_1 = Get_ID_18FF4100_Sig_Cruise_VariableSLD_Disp(); - if ((Ign_Time > 5000) && (variable_1 == 1)) //5s内ä¸æ˜¾ç¤º - { - Popup_Request(POPUP3_CRUISE); - } - else - { - Popup_Delete(POPUP3_CRUISE); - } - - //10.å¯å˜SLD æ¨¡å¼ - variable_1 = Get_ID_18FF4100_Sig_Cruise_VariableSLD_Disp(); - if ((Ign_Time > 5000) && (variable_1 == 3)) //5s内ä¸æ˜¾ç¤º - { - Popup_Request(POPUP3_VARIABLE_SLD); - } - else - { - Popup_Delete(POPUP3_VARIABLE_SLD); - } - //11.充电异常(系统检测) variable_1 = Line_In_Get_Status(LINE_IN_CHARGE); if (EOL == 0X00) diff --git a/source/Application/Graphic/GUI/GUI.h b/source/Application/Graphic/GUI/GUI.h index f5d71745158072c2b67bb049891fa79b67a39f37..45f9741147b98da7f55abefc52423a2c7932cda1 100644 --- a/source/Application/Graphic/GUI/GUI.h +++ b/source/Application/Graphic/GUI/GUI.h @@ -156,17 +156,19 @@ typedef struct *************************************************************************************************************/ static const GUIGeneralPopupStruct GUIGeneralPopupTable[] = { - /*----å›¾æ ‡--------有车速--------------------------------æ— è½¦é€Ÿ--------------*/ /* 第一组*/ + /*----å›¾æ ‡-----------------有车速--------------------------------æ— è½¦é€Ÿ--------------*/ + /*----第一组----*/ {SpriteSize , CN_Alarm_01_wenzi1 , SpriteSize, CN_Alarm_01_wenzi1 , SpriteSize}, /*00.紧急è¦æŠ¥-刹车*/ {SpriteSize , CN_Alarm_01_wenzi4 , SpriteSize, CN_Alarm_01_wenzi4 , SpriteSize}, /*01.紧急è¦æŠ¥-紧急制动*/ {SpriteSize , CN_Alarm_01_wenzi2 , SpriteSize, CN_Alarm_01_wenzi2 , SpriteSize}, /*02.车间è·è¦æŠ¥-刹车(红å—)*/ {SpriteSize , CN_Alarm_01_wenzi5 , SpriteSize, CN_Alarm_01_wenzi5 , SpriteSize}, /*03.车间è·è¦æŠ¥-碰撞报è¦*/ {SpriteSize , CN_Alarm_01_wenzi3 , SpriteSize, CN_Alarm_01_wenzi3 , SpriteSize}, /*04.车间è·è¦æŠ¥-刹车(黄å—)*/ {CN_Alarm_drive_04_image, CN_Alarm_drive_04_wenzi, SpriteSize, CN_Alarm_drive_04_wenzi, SpriteSize}, /*05.ASR工作*/ - + /*----第二组----*/ {CN_Alarm_drive_05_image, CN_Alarm_drive_05_wenzi, SpriteSize, SpriteSize , SpriteSize}, /*06.PTO紧急è¦æŠ¥-刹车*/ {CN_Alarm_drive_06_image, CN_Alarm_drive_06_wenzi, SpriteSize, SpriteSize , SpriteSize}, /*07.忘记æ¾æ‰‹åˆ¹è½¦*/ {CN_Alarm_drive_10_image, CN_Alarm_drive_10_wenzi, SpriteSize, SpriteSize , SpriteSize}, /*08.é¥æŽ§è°ƒæ•´è½¦è¾†é«˜åº¦(有车速)*/ + /*----第三组----*/ {0, 0, 0, 0, 0}, /*09.自动巡航模å¼*/ {0, 0, 0, 0, 0}, /*10.å¯å˜SLD 模å¼*/ {0, 0, 0, 0, 0}, /*11.充电异常(系统检测)*/