#include "g_includes.h" #pragma ghs section bss = ".myNonInitArea" Menu_TimeSetData_Struct MenuData; Menu_uint8_t u8MenuRamData[MENU_RAM_DATA_LEN]; #pragma ghs section bss = default void Menu_Logic_Operation_ECU_TRIP(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_ECU_RANGE(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_ECU_INS_FUEL(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_ECU_AVER_FUEL(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_ECU_AVER_SPEED(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_ECU_MAINTAIN(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_ECU_TPMS(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_SET_Backlight(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_SET_Sound(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_SET_TimeHour(Menu_Key_en_t enKeyType); void Menu_Logic_Operation_SET_TimeMin(Menu_Key_en_t enKeyType); void Menu_u8Data_Updata_Process(uint8_t updateDir , uint8_t datMax, uint8_t datMin, uint8_t datStep, uint8_t *dat); void Menu_u16Data_Updata_Process(uint8_t updateDir , uint16_t datMax, uint8_t datMin, uint16_t datStep, uint16_t *dat); void Menu_User_Init(PoMa_Reset_en_t PowerType); extern uint16_t LocalMinOfs_TBOX; extern uint16_t LocalHrOfs_TBOX; RTITimingStruct RealTimeClock; void Menu_User_Init(PoMa_Reset_en_t PowerType) { Menu_Init_st_t Menu_Init_st; Menu_Init_st.enMenuBranchLen = MENU_BRANCH_MAX; Menu_Init_st.enMenuInterfaceLen = MENU_INTERFACE_MAX; Menu_Init_st.enMenuItemLen = MENU_ITEM_MAX; Menu_Init_st.uintMenuConfig = 0x0001; Menu_Init_st.uintMenuCursorMemoryDepth = 0; if(PowerType == POMA_RESET_KL30) { Menu_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st); Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_TRIP); } else if(PowerType == POMA_RESET_WAKEUP) { Menu_Wake_Up_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st); } else { } } void Menu_Hide_Service(void) { if((Get_NodeConfig_TPMS() == 1)||(Get_NodeConfig_TPMS() == 2)) { Menu_Item_Exist_Condition_Set(MENU_ITEM_ECU_TPMS, 1); } else { Menu_Item_Exist_Condition_Set(MENU_ITEM_ECU_TPMS, 0); } if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF9CF1_Msg_Count) == CAN_SIG_LOST)||(CanReceive.Can_18FF9CF1 != 1)) { Menu_Item_Exist_Condition_Set(MENU_ITEM_SET_TimeHour, 1); Menu_Item_Exist_Condition_Set(MENU_ITEM_SET_TimeMin, 1); } else { if((Get_CAN_CH0_ID_18FF9CF1_Sig_TBOXFILSts() == 1)|| ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF9DF1_Msg_Count) == CAN_SIG_LOST)|| (CanReceive.Can_18FF9DF1 != 1)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Sec_TBOX() > 0XEC) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Min_TBOX() > 0X3B) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Hr_TBOX() > 0X17) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Month_TBOX() > 0x0C)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Month_TBOX() < 1)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Day_TBOX() > 0x7C)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Day_TBOX() < 1)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Yr_TBOX() > 0xFA))|| (LocalMinOfs_TBOX > 0xb8)||(LocalMinOfs_TBOX < 0x42)|| (LocalHrOfs_TBOX > 0x94)||(LocalHrOfs_TBOX < 0x66)) { Menu_Item_Exist_Condition_Set(MENU_ITEM_SET_TimeHour, 1); Menu_Item_Exist_Condition_Set(MENU_ITEM_SET_TimeMin, 1); } else { Menu_Item_Exist_Condition_Set(MENU_ITEM_SET_TimeHour, 0); Menu_Item_Exist_Condition_Set(MENU_ITEM_SET_TimeMin, 0); } } } const Menu_Item_Attribute_st_t stMenuItemAttribute[MENU_ITEM_MAX] = { /*MENU_ITEM_ECU_TRIP */ {MENU_BRANCH_ECU, MENU_INTF_ECU, MENU_ITEM_MAX, 0U, 7U, 1U, 0U, 7U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_ECU_TRIP}, /*MENU_ITEM_ECU_RANGE */ {MENU_BRANCH_ECU, MENU_INTF_ECU, MENU_ITEM_MAX, 1U, 7U, 1U, 1U, 7U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_ECU_RANGE}, /*MENU_ITEM_ECU_INS_FUEL */ {MENU_BRANCH_ECU, MENU_INTF_ECU, MENU_ITEM_MAX, 2U, 7U, 1U, 2U, 7U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_ECU_INS_FUEL}, /*MENU_ITEM_ECU_AVER_FUEL */ {MENU_BRANCH_ECU, MENU_INTF_ECU, MENU_ITEM_MAX, 3U, 7U, 1U, 3U, 7U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_ECU_AVER_FUEL}, /*MENU_ITEM_ECU_AVER_SPEED */ {MENU_BRANCH_ECU, MENU_INTF_ECU, MENU_ITEM_MAX, 4U, 7U, 1U, 4U, 7U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_ECU_AVER_SPEED}, /*MENU_ITEM_ECU_MAINTAIN */ {MENU_BRANCH_ECU, MENU_INTF_ECU, MENU_ITEM_MAX, 5U, 7U, 1U, 5U, 7U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_ECU_MAINTAIN}, /*MENU_ITEM_ECU_TPMS */ {MENU_BRANCH_ECU, MENU_INTF_ECU, MENU_ITEM_MAX, 6U, 7U, 1U, 6U, 7U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_ECU_TPMS}, /*MENU_ITEM_SET_Backlight */ {MENU_BRANCH_SET, MENU_INTF_SET, MENU_ITEM_MAX, 0U, 4U, 1U, 0U, 4U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_SET_Backlight}, /*MENU_ITEM_SET_Sound */ {MENU_BRANCH_SET, MENU_INTF_SET, MENU_ITEM_MAX, 1U, 4U, 1U, 1U, 4U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_SET_Sound}, /*MENU_ITEM_SET_TimeHour */ {MENU_BRANCH_SET, MENU_INTF_SET, MENU_ITEM_MAX, 2U, 4U, 1U, 2U, 4U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_SET_TimeHour}, /*MENU_ITEM_SET_TimeMin */ {MENU_BRANCH_SET, MENU_INTF_SET, MENU_ITEM_MAX, 3U, 4U, 1U, 3U, 4U, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, 0xFFFF, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST,Menu_Logic_Operation_SET_TimeMin}, }; void Menu_Logic_Operation_ECU_TRIP(Menu_Key_en_t enKeyType) { if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) { return; } else { if(enKeyType == MENU_KEY_RIGHT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_RANGE); } else if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Backlight); } else { ; } } } void Menu_Logic_Operation_ECU_RANGE(Menu_Key_en_t enKeyType) { if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) { return; } else { if(enKeyType == MENU_KEY_RIGHT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_INS_FUEL); } else if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Backlight); } else { ; } } } void Menu_Logic_Operation_ECU_INS_FUEL(Menu_Key_en_t enKeyType) { if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) { return; } else { if(enKeyType == MENU_KEY_RIGHT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_AVER_FUEL); } else if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Backlight); } else { ; } } } void Menu_Logic_Operation_ECU_AVER_FUEL(Menu_Key_en_t enKeyType) { if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) { return; } else { if(enKeyType == MENU_KEY_RIGHT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_AVER_SPEED); } else if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Backlight); } else { ; } } } void Menu_Logic_Operation_ECU_AVER_SPEED(Menu_Key_en_t enKeyType) { if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) { return; } else { if(enKeyType == MENU_KEY_RIGHT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_MAINTAIN); } else if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Backlight); } else { ; } } } void Menu_Logic_Operation_ECU_MAINTAIN(Menu_Key_en_t enKeyType) { if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) { return; } else { if(enKeyType == MENU_KEY_RIGHT_SHORT) { if((Get_NodeConfig_TPMS() == 1)||(Get_NodeConfig_TPMS() == 2)) { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_TPMS); } else { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_TRIP); } } else if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Backlight); } else { ; } } } void Menu_Logic_Operation_ECU_TPMS(Menu_Key_en_t enKeyType) { if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) { return; } else { if(enKeyType == MENU_KEY_RIGHT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_ECU, MENU_ITEM_ECU_TRIP); } else if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Backlight); } else { ; } } } //-----------------------------SET----------------------------------------------// void Menu_Logic_Operation_SET_Backlight(Menu_Key_en_t enKeyType) { uint8_t updataDir = 0u; uint16_t datmax = 0u; uint8_t datmin = 0u; //if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) //{ // return; //} //else //{ if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_Sound); } else if (enKeyType == MENU_KEY_RIGHT_SHORT) { updataDir = 1; datmax = 500u; datmin = 150u; Menu_u16Data_Updata_Process(updataDir, datmax, datmin, 50u, (uint16_t*)&(g_Light.Duty)); } else if(enKeyType == MENU_KEY_TIMEOUT) { Menu_Change_Branch(MENU_BRANCH_ECU, MENU_CHANGE_HOLD); } else { ; } //} } void Menu_Logic_Operation_SET_Sound(Menu_Key_en_t enKeyType) { uint8_t updataDir = 0u; uint8_t datmax = 0u; uint8_t datmin = 0u; //if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) //{ // return; //} //else //{ if(enKeyType == MENU_KEY_LEFT_SHORT) { if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF9CF1_Msg_Count) == CAN_SIG_LOST)|| (CanReceive.Can_18FF9CF1 != 1)||(Get_CAN_CH0_ID_18FF9CF1_Sig_TBOXFILSts() == 1)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Sec_TBOX() > 0XEC) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Min_TBOX() > 0X3B) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Hr_TBOX() > 0X17) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Month_TBOX() > 0x0C) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Month_TBOX() < 1)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Day_TBOX() > 0x7C) || (Get_CAN_CH0_ID_18FF9DF1_Sig_Day_TBOX() < 1)|| (Get_CAN_CH0_ID_18FF9DF1_Sig_Yr_TBOX() > 0xFA)|| (LocalMinOfs_TBOX > 0xb8)||(LocalMinOfs_TBOX < 0x42)|| (LocalHrOfs_TBOX > 0x94)||(LocalHrOfs_TBOX < 0x66)) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_TimeHour); } else { Menu_Change_Branch(MENU_BRANCH_ECU, MENU_CHANGE_HOLD); } } else if (enKeyType == MENU_KEY_RIGHT_SHORT) { updataDir = 1; datmax = 3u; datmin = 1u; Menu_u8Data_Updata_Process(updataDir, datmax, datmin, 1u, (uint8_t*)&(MenuData.Sound)); Buzzer_Volume_Set(MenuData.Sound); Sound_Alarm_Trigger_Volume(); } else if(enKeyType == MENU_KEY_TIMEOUT) { Menu_Change_Branch(MENU_BRANCH_ECU, MENU_CHANGE_HOLD); } else { ; } //} } void Menu_Logic_Operation_SET_TimeHour(Menu_Key_en_t enKeyType) { uint8_t updataDir = 0u; uint8_t datmax = 0u; uint8_t datmin = 0u; //if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) //{ // return; //} //else //{ if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch_To_Item(MENU_BRANCH_SET, MENU_ITEM_SET_TimeMin); } else if (enKeyType == MENU_KEY_RIGHT_SHORT) { updataDir = 1; datmax = 23u; datmin = 0u; Menu_u8Data_Updata_Process(updataDir, datmax, datmin, 1u, (uint8_t*)&(MenuData.Hour)); RTC_Set_Time((uint8_t*)&g_stRTCInformation); } else { if(enKeyType == MENU_KEY_TIMEOUT) { Menu_Change_Branch(MENU_BRANCH_ECU, MENU_CHANGE_HOLD); MenuData.Hour = RTC_HOUR; } } //} } void Menu_Logic_Operation_SET_TimeMin(Menu_Key_en_t enKeyType) { uint8_t updataDir = 0u; uint8_t datmax = 0u; uint8_t datmin = 0u; //if(Pop_Alarm_Get_Current() < POP_ALARM_MAX) //{ // return; //} //else //{ if(enKeyType == MENU_KEY_LEFT_SHORT) { Menu_Change_Branch(MENU_BRANCH_ECU, MENU_CHANGE_HOLD); RTC_HOUR = MenuData.Hour; RTC_MINUTE = MenuData.Minute; RTC_Set_Time((uint8_t*)&g_stRTCInformation); } else if (enKeyType == MENU_KEY_RIGHT_SHORT) { updataDir = 1; datmax = 59u; datmin = 0u; Menu_u8Data_Updata_Process(updataDir, datmax, datmin, 1u, (uint8_t*)&(MenuData.Minute)); } else { if(enKeyType == MENU_KEY_TIMEOUT) { Menu_Change_Branch(MENU_BRANCH_ECU, MENU_CHANGE_HOLD); MenuData.Hour = RTC_HOUR; MenuData.Minute = RTC_MINUTE; } } //} } /*static void Menu_Cursor_Preprocess(Menu_Key_en_t enMenuKey); static void Menu_Cursor_Postprocess(Menu_Key_en_t enMenuKey); 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) { if(SYS_OPR_STAT_IGN_ON) { Menu_Logic_Process(enMenuKey); } //Menu_Cursor_Preprocess(enMenuKey); //Menu_Cursor_Process(enMenuKey); //Menu_Cursor_Postprocess(enMenuKey); } void Menu_u8Data_Updata_Process(uint8_t updateDir , uint8_t datMax, uint8_t datMin, uint8_t datStep, uint8_t *dat) { uint8_t temp = *dat; if(datMax > datMin) { if(updateDir == 1u) { if(temp < datMax) { if((temp) <= (255u-datStep)) { temp += datStep; } } else { temp = datMin; } } else if(updateDir == 2u) { if(temp > datMin) { if(temp >= datStep) { temp -= datStep; } } else { temp = datMax; } } else { } } else { } *dat = temp; } void Menu_u16Data_Updata_Process(uint8_t updateDir , uint16_t datMax, uint8_t datMin, uint16_t datStep, uint16_t *dat) { uint16_t temp = *dat; if(datMax > datMin) { if(updateDir == 1u) { if(temp < datMax) { if((temp) <= (65535u-datStep)) { temp += datStep; } } else { //if(temp == (datMax + 1)) //{ // temp = temp - 1; //} //else { temp = datMin; } } } else if(updateDir == 2u) { if(temp > datMin) { if(temp >= datStep) { temp -= datStep; } } else { temp = datMax; } } else { } } else { } *dat = temp; }