#include "Data_Gear.h" #include "Flash_synchronizer.h" #include "CAN_Communication_Matrix.h" #include "Common_Interface.h" #include "images.h" #include "CAN_Lib.h" #include "GaugesInterface.h" #include "Gauges.h" /****************************************************************************** Function:Data_Gear_KL30_Init Description:该服务函数首次KL30时调用一次 Input: Output: ******************************************************************************/ void Data_Gear_KL30_Init(void) { } /****************************************************************************** Function:Data_Gear_KL15_Init Description:该服务函数首次KL15时调用一次 Input: Output: ******************************************************************************/ void Data_Gear_KL15_Init(void) { } /****************************************************************************** Function:Data_Service_Gear_Processing Description:如果有特殊数据处理在此函数中进行处理 Input: Output: ******************************************************************************/ void Data_Service_Gear_Processing(void) { Gear_Processing_Service(); } /****************************************************************************** Function:Get_Gear_Mode_Type Description:Get Gear P/R/N/D/M/S Input: Output: P/R/N/D/M/S ******************************************************************************/ uint8_t Get_Gear_Mode_Type(void) { } /****************************************************************************** Get_Gear_Mode_UPDOWN_Number Description:Get Gear 1/2/3/4/... Input: Output: 1/2/3/4/... ******************************************************************************/ uint8_t Get_Gear_Mode_UPDOWN_Number(void) { } /****************************************************************************** Function:Get_Gear_Mode_Up_Down Description:Get Gear UP/DOWN Input: Output: UP/DOWN ******************************************************************************/ uint8_t Get_Gear_Mode_Up_Down(void) { } /****************************************************************************** Function:Gear_Mode_Display Description: Input: Output: ******************************************************************************/ uint8_t Get_Gear_Mode_Display_Flash(void) { uint8_t Gear_Status = 0u; Gear_Status = FlashSync1Hz; return (uint8_t)Gear_Status ; } uint8_t Get_Gear_Mode_M_A_Display(void) { } uint8_t Get_Gear_Mode_P_E_Display(void) { } uint8_t Get_Gear_Mode_L_C_Display(void) { } //------------------------------------------- //档位 数据处理 zhouhang //------------------------------------------- //区域7显示逻辑 //------------------------------------------- //344 - 3.2.档位显示 //------------------------------------------- static struct { uint8_t Number ;//档位编号 en_GEAR_Sta Manual ;//是否 M A N U A L }GearVariable ; /*------------------------------------------------------------------------- * Function Name : Gear_KL30_Init * Description : * Input : None * Output : None * Return : None * onther : None --------------------------------------------------------------------------*/ void Gear_KL30_Init(void) { GearVariable.Number = 0u; GearVariable.Manual = GEAR_MANUAL_OFF; } void Gear_KL15_ON_Init(void) { GearVariable.Number = 0u; GearVariable.Manual = GEAR_MANUAL_OFF; } void Gear_KL15_OFF_Init(void) { GearVariable.Number = 0u; GearVariable.Manual = GEAR_MANUAL_OFF; } void Gear_Wakeup_Init(void) { GearVariable.Number = 0u; GearVariable.Manual = GEAR_MANUAL_OFF; } void Gear_Sleep_Init(void) { GearVariable.Number = 0u; GearVariable.Manual = GEAR_MANUAL_OFF; } /*------------------------------------------------------------------------- * Function Name : Gear_Processing_Service * Description : * Input : None * Output : None * Return : None * onther : None --------------------------------------------------------------------------*/ void Gear_Processing_Service(void) { uint8_t can1_4_1_8 = 0 ; //***************************************** 接收报文的变量 uint8_t can2_1_5_2 = 0 ; //***************************************** 接收报文的变量 uint8_t can3_3_7_2 = 0 ; //***************************************** 接收报文的变量 uint8_t can4_5_1_8 = 0 ; //***************************************** 接收报文的变量 uint8_t can5_1_7_2 = 0 ; //***************************************** 接收报文的变量 uint8_t u8Number = 0 ; //************************************** 档位 编号 en_GEAR_Sta u8Manual = GEAR_MANUAL_OFF ; //******************** 是否MANUAL can1_4_1_8 = Get_ID_18F00503_Sig_Current_Gear(); //can1_4_1_8含义是: byte 4 bit 1 length 8 can2_1_5_2 = Get_ID_18FF8503_Sig_Manouvering_mode(); can3_3_7_2 = Get_ID_18FE4A03_Sig_TransmissionSiftMode1_Indicator(); can4_5_1_8 = Get_ID_18F00503_Sig_ID18F00503_byte5(); can5_1_7_2 = Get_ID_18FF8503_Sig_Automatic_or_Manual_Mode(); if(/*Get_CanFirstRecv_Event(ID_CanMsg18F00503_Msg_Count) == 0*/ 0u) { u8Number = 0u; u8Manual = GEAR_MANUAL_OFF; } else if (CAN_MSG_Status(ID_CanMsg18F00503_Msg_Count) == CAN_SIG_LOST) { u8Number = 20u; u8Manual = GEAR_MANUAL_OFF; } else { if((can1_4_1_8 == 0x7E) && (can2_1_5_2 != 0x01))//档位1 { u8Number = 1u; } else if(can1_4_1_8 == 0x7F)//档位2 { u8Number = 2u; } else if(can1_4_1_8 == 0x80)//档位3 { u8Number = 3u; } else if(can1_4_1_8 == 0x81)//档位4 { u8Number = 4u; } else if(can1_4_1_8 == 0x82)//档位5 { u8Number = 5u; } else if(can1_4_1_8 == 0x83)//档位6 { u8Number = 6u; } else if(can1_4_1_8 == 0x84)//档位7 { u8Number = 7u; } else if(can1_4_1_8 == 0x85)//档位8 { u8Number = 8u; } else if(can1_4_1_8 == 0x86)//档位9 { u8Number = 9u; } else if(can1_4_1_8 == 0x87)//档位10 { u8Number = 10u; } else if(can1_4_1_8 == 0x88)//档位11 { u8Number = 11u; } else if(can1_4_1_8 == 0x89)//档位12 { u8Number = 12u; } else if(can1_4_1_8 == 0x7B)//档位R2 { u8Number = 13u; } else if((can1_4_1_8 == 0x7C) && (can2_1_5_2 != 0x01))//档位R1 { u8Number = 14u; } else if((can1_4_1_8 == 0x7D) && (can3_3_7_2 != 0x01))//档位N { u8Number = 15u; } else if((can1_4_1_8 == 0x7C) && (can2_1_5_2 == 0x01))//档位RM { u8Number = 16u; } else if((can1_4_1_8 == 0x7E) && (can2_1_5_2 == 0x01))//档位DM { u8Number = 17u; } else if((can1_4_1_8 == 0x7D) && (can3_3_7_2 == 0x01))//档位E { u8Number = 18u; } else if((can4_5_1_8 == 0x7D) && (can3_3_7_2 == 0x01))//档位NE { u8Number = 19u; } else//档位—— { u8Number = 20u; } if (CAN_MSG_Status(ID_CanMsg18FF8503_Msg_Count) == CAN_SIG_LOST) { u8Manual = GEAR_MANUAL_OFF; } else if(can5_1_7_2 == 0x00) { u8Manual = GEAR_MANUAL_ON; } else { u8Manual = GEAR_MANUAL_OFF; } } GearVariable.Number = u8Number ; GearVariable.Manual = u8Manual ; } /*------------------------------------------------------------------------- * Function Name : Gui_Get_Gear * Description : 返回当前 档位 * Input : None * Output : None * Return : None * onther : None --------------------------------------------------------------------------*/ uint8_t Gui_Get_Gear(void) { uint8_t u8Result = 0u; u8Result = GearVariable.Number; return u8Result; } /*------------------------------------------------------------------------- * Function Name : Gui_Get_Gear_MANUAL * Description : 返回当前档位栏MANUAL标志是否点亮 * Input : None * Output : None * Return : None * onther : None --------------------------------------------------------------------------*/ en_GEAR_Sta Gui_Get_Gear_MANUAL(void) { en_GEAR_Sta u8Result = GEAR_MANUAL_OFF; u8Result = GearVariable.Manual; return u8Result; }