Commit 945b2ac4 authored by hu's avatar hu

调整DTC诊断功能

parent 4c8ea956
......@@ -3,6 +3,8 @@
#include "TYW_stdint.h"
#define DTCNumberBuf 50u
typedef struct
{
uint32_t TripA_Fuel;
......@@ -20,8 +22,22 @@ typedef struct
} USER_ECU;
extern USER_ECU User_ECU;
extern uint32_t DisDTCNumber[50];
extern uint32_t DisDTCNum;
//extern uint32_t DisDTCNumber[50];
extern uint32_t DTCNumberEngine[DTCNumberBuf];
extern uint32_t DTCNumberBrake[DTCNumberBuf];
extern uint32_t DTCNumberAMT[DTCNumberBuf];
extern uint32_t DTCNumberRadar[DTCNumberBuf];
extern uint32_t DTCNumberCamera[DTCNumberBuf];
extern uint32_t DTCNumberRetarder[DTCNumberBuf];
//extern uint32_t DisDTCNum;
extern uint32_t DisDTCNumEngine ;
extern uint32_t DisDTCNumBrake ;
extern uint32_t DisDTCNumAMT ;
extern uint32_t DisDTCNumRadar ;
extern uint32_t DisDTCNumCamera ;
extern uint32_t DisDTCNumRetarder ;
#define MAX_MULCANDATALEN 100
typedef union
......@@ -104,8 +120,20 @@ void Common_Set_LDWS_Flag_Sta(uint8_t Vol);
uint8_t Common_Get_LDWS_Flag_Sta(void);
uint8_t Common_Get_Water_Temp_Level_Flag(void);
void Common_DTC_Server(void);
void GetAllDtcFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void Common_DTCEngine_Server(void);
void Common_DTCBrake_Server(void);
void Common_DTCAMT_Server(void);
void Common_DTCRadar_Server(void);
void Common_DTCCamera_Server(void);
void Common_DTCRetarder_Server(void);
void GetAllDtcEngineFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void GetAllDtcBrakeFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void GetAllDtcAMTFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void GetAllDtcRadarFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void GetAllDtcCameraFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void GetAllDtcRetarderFault(uint32_t* pCurFault, uint8_t* pCurFaultNum, uint32_t* pHisFault, uint8_t* pHisFaultNum);
void swap32(uint32_t *DwData);
void DoCAN_Get_Multi_frame00_Recv(void);
......
......@@ -52,20 +52,6 @@ _TPMS TPMS_Matching;
_UserSet User_set_Num;
_UserSet User_App;
uint32_t DTCNumberEngine[DTCNumberBuf];
uint32_t DTCNumberBrake[DTCNumberBuf];
uint32_t DTCNumberAMT[DTCNumberBuf];
uint32_t DTCNumberRadar[DTCNumberBuf];
uint32_t DTCNumberCamera[DTCNumberBuf];
uint32_t DTCNumberRetarder[DTCNumberBuf];
uint32_t DisDTCNumEngine ;
uint32_t DisDTCNumBrake ;
uint32_t DisDTCNumAMT ;
uint32_t DisDTCNumRadar ;
uint32_t DisDTCNumCamera ;
uint32_t DisDTCNumRetarder ;
/*-------------------------------------------------------------------------
* Function Name : GUI_Display_KL15_ON_Init
* Description :
......@@ -7410,148 +7396,6 @@ void GUI_BG_FacDTCClearF_Display(uint8_t Mode)
GUI_General_Display(MENU_Sprite, SpriteSize, GUI_BLENDMODE_SRC_OVER);
}
}
/*--------------------------------------------------------------------------
* Function Name : GUI_Display_DTC_Server
* Description :
* Input : None
* Output : None
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void GUI_Display_DTC_Server(void)
{
uint8_t i = 0u;
uint8_t DTCNum = 0u;
/*发动机故障*/
//if (DisDTCNum != 0x00u)
//{
// Display_DTC[0u].Disp_True_False = 1u;
//}
//else
//{
// Display_DTC[0u].Disp_True_False = 0u;
//}
/*刹车故障*/
if (DisDTCNum != 0x00u)
{
Display_DTC[1u].Disp_True_False = 1u;
}
else
{
Display_DTC[1u].Disp_True_False = 0u;
}
/*变速箱故障*/
//if (DisDTCNum != 0x00u)
//{
// Display_DTC[2u].Disp_True_False = 1u;
//}
//else
//{
// Display_DTC[2u].Disp_True_False = 0u;
//}
///*雷达故障码*/
//if (DisDTCNum != 0x00u)
//{
// Display_DTC[3u].Disp_True_False = 1u;
//}
//else
//{
// Display_DTC[3u].Disp_True_False = 0u;
//}
///*摄像头故障码*/
//if (DisDTCNum != 0x00u)
//{
// Display_DTC[4u].Disp_True_False = 1u;
//}
//else
//{
// Display_DTC[4u].Disp_True_False = 0u;
//}
///*液力缓速器故障码*/
//if (DisDTCNum != 0x00u)
//{
// Display_DTC[5u].Disp_True_False = 1u;
//}
//else
//{
// Display_DTC[5u].Disp_True_False = 0u;
//}
/*SCR故障*/
//if (DisDTCNum != 0x00u)
//{
// Display_DTC[0u].Disp_True_False = 1u;
//}
//else
//{
// Display_DTC[0u].Disp_True_False = 0u;
//}
/*无故障*/
Display_DTC[DTCNumeber].Disp_True_False = 1u;
if (Display_DTC[GUIDTCNumDis].Disp_True_False == 1u)
{
if (DTCNumTime <= 50u)
{
DTCNumTime ++;
}
else
{
DTCNumTime = 0u;
GUIDTCNumDis++;
for ( ; (DTCNumeber - 1u) ; )
{
if (Display_DTC[GUIDTCNumDis].Disp_True_False == 0u)
{
GUIDTCNumDis++;
}
else
{
break;
}
}
}
}
else
{
for ( ; (DTCNumeber - 1u) ; )
{
if (Display_DTC[GUIDTCNumDis].Disp_True_False == 0u)
{
GUIDTCNumDis++;
}
else
{
break;
}
}
}
if (GUIDTCNumDis < (DTCNumeber - 1u))
{
;/*Do Nothing !*/
}
else
{
GUIDTCNumDis = 0u;
}
for (i = 0u; i < (DTCNumeber - 1u); i++)
{
DTCNum += Display_DTC[i].Disp_True_False;
}
if (DTCNum == 0u)
{
GUIDTCNumDis = DTCNumeber;
}
Display_DTC[GUIDTCNumDis].Disp_Mod_Menu_Cbk(GUI_DISP_MODE_NORMAL);
}
/*--------------------------------------------------------------------------
* Function Name : GUI_BG_FacMenu6_Display
......@@ -7566,19 +7410,6 @@ void GUI_BG_DTCEngine_Display(uint8_t Mode)
uint8_t DTCNumCode = 0u;
uint32_t DTNumValue = 0u;
//uint32_t DTNum = 0u;
uint8_t i = 0u;
uint32_t UdsCanID;
UdsCanID = Common_Get_UdsCanIDSta();
if (UdsCanID == 0x7E8u)
{
DisDTCNumEngine = DisDTCNum;
for (i = 0u; i < DisDTCNumEngine; i++)
{
DTCNumberEngine[i] = DisDTCNumber[i];
}
}
DTNum = DTCNumberEngine[DTCDispNum];
......@@ -7788,40 +7619,12 @@ void GUI_BG_MenuDTCEngine_Display(uint8_t Mode)
* Return : None
* onther : 区域
--------------------------------------------------------------------------*/
void Common_test (void)
{
uint8_t i = 0u;
uint32_t UdsCanID = 0u;
UdsCanID = Common_Get_UdsCanIDSta();
if (UdsCanID == 0x18DAF00Bu)
{
DisDTCNumBrake = DisDTCNum;
for (i = 0u; i < DisDTCNumBrake; i++)
{
DTCNumberBrake[i] = DisDTCNumber[i];
}
}
}
void GUI_BG_DTCBrake_Display(uint8_t Mode)
{
uint8_t DTCNumCode = 0u;
uint32_t DTNumValue = 0u;
uint32_t Data_Value = 0u;
uint8_t i = 0u;
uint32_t UdsCanID;
/*
UdsCanID = Common_Get_UdsCanIDSta();
if (UdsCanID == 0x18DAF00Bu)
{
DisDTCNumBrake = DisDTCNum;
for (i = 0u; i < DisDTCNumBrake; i++)
{
DTCNumberBrake[i] = DisDTCNumber[i];
}
}
*/
//DTNum = DisDTCNumber[DTCDispNum];
Data_Value = DTCNumberBrake[DTCDispNum];
swap32(&Data_Value);
......@@ -7953,19 +7756,6 @@ void GUI_BG_DTCAMT_Display(uint8_t Mode)
uint8_t DTCNumCode = 0u;
uint32_t DTNumValue = 0u;
uint32_t Data_Value = 0u;
uint8_t i = 0u;
uint32_t UdsCanID;
UdsCanID = Common_Get_UdsCanIDSta();
if (UdsCanID == 0x18DAF003)
{
DisDTCNumAMT = DisDTCNum;
for (i = 0u; i < DisDTCNumAMT; i++)
{
DTCNumberAMT[i] = DisDTCNumber[i];
}
}
//DTNum = DisDTCNumber[DTCDispNum];
Data_Value = DTCNumberAMT[DTCDispNum];
......@@ -8098,19 +7888,6 @@ void GUI_BG_DTCRadar_Display(uint8_t Mode)
uint8_t DTCNumCode = 0u;
uint32_t DTNumValue = 0u;
uint32_t Data_Value = 0u;
uint8_t i = 0u;
uint32_t UdsCanID;
UdsCanID = Common_Get_UdsCanIDSta();
if (UdsCanID == 0x18DAF0A0u)
{
DisDTCNumRadar = DisDTCNum;
for (i = 0u; i < DisDTCNumRadar; i++)
{
DTCNumberRadar[i] = DisDTCNumber[i];
}
}
//DTNum = DisDTCNumber[DTCDispNum];
Data_Value = DTCNumberRadar[DTCDispNum];
......@@ -8244,19 +8021,6 @@ void GUI_BG_DTCCamera_Display(uint8_t Mode)
uint8_t DTCNumCode = 0u;
uint32_t DTNumValue = 0u;
uint32_t Data_Value = 0u;
uint8_t i = 0u;
uint32_t UdsCanID;
UdsCanID = Common_Get_UdsCanIDSta();
if (UdsCanID == 0x18DAF0E8u)
{
DisDTCNumCamera = DisDTCNum;
for (i = 0u; i < DisDTCNumCamera; i++)
{
DTCNumberCamera[i] = DisDTCNumber[i];
}
}
//DTNum = DisDTCNumber[DTCDispNum];
Data_Value = DTCNumberCamera[DTCDispNum];
......@@ -8389,19 +8153,6 @@ void GUI_BG_DTCRetarder_Display(uint8_t Mode)
uint8_t DTCNumCode = 0u;
uint32_t DTNumValue = 0u;
uint32_t Data_Value = 0u;
uint8_t i = 0u;
uint32_t UdsCanID;
UdsCanID = Common_Get_UdsCanIDSta();
if (UdsCanID == 0x18DAF010u)
{
DisDTCNumRetarder = DisDTCNum;
for (i = 0u; i < DisDTCNumRetarder; i++)
{
DTCNumberRetarder[i] = DisDTCNumber[i];
}
}
//DTNum = DisDTCNumber[DTCDispNum];
Data_Value = DTCNumberRetarder[DTCDispNum];
......
......@@ -13,21 +13,6 @@
#define Language_Cn 1u
#define DTCNumeber 6u /*最小数值为1*/
#define DTCNumberBuf 50u
extern uint32_t DTCNumberEngine[DTCNumberBuf];
extern uint32_t DTCNumberBrake[DTCNumberBuf];
extern uint32_t DTCNumberAMT[DTCNumberBuf];
extern uint32_t DTCNumberRadar[DTCNumberBuf];
extern uint32_t DTCNumberCamera[DTCNumberBuf];
extern uint32_t DTCNumberRetarder[DTCNumberBuf];
extern uint32_t DisDTCNumEngine ;
extern uint32_t DisDTCNumBrake ;
extern uint32_t DisDTCNumAMT ;
extern uint32_t DisDTCNumRadar ;
extern uint32_t DisDTCNumCamera ;
extern uint32_t DisDTCNumRetarder ;
#define FState_COilTimeOutNum 60u /*3S*/
......@@ -555,8 +540,6 @@ void GUI_BG_DeaHIDAutoInit1_Display(uint8_t Mode); /**/
void GUI_BG_DeaHIDAutoInit2_Display(uint8_t Mode); /**/
void GUI_BG_DeaMeterExit_Display(uint8_t Mode); /*经销商模式是否结束经销商模式*/
void GUI_Display_DTC_Server(void); /**/
void GUI_BG_MenuDTCEngine_Display(uint8_t Mode); /*MENU发动机故障*/
void GUI_BG_MenuDTCBrake_Display(uint8_t Mode); /*MENU刹车故障*/
void GUI_BG_MenuDTCAMT_Display(uint8_t Mode); /*MENU变速箱故障*/
......@@ -579,7 +562,7 @@ void Common_EOL_User_Server(void); /**/
void K_LINE_EOL_Val_Server(void); /**/
void Common_Set_MenuDTCNumTime(uint32_t Vol);
void Common_test (void);
/*-----报警--------------------------------------------------------*/
void GUI_General_Popup(void);
void GUI_General_Popup_Display(uint16_t PopupMsg);
......
......@@ -2458,22 +2458,6 @@ void LevelF1_6Menu_2Exit(void)
/*----工厂模式---- 116发动机----*/
void LevelF2_1Menu_1Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -2519,7 +2503,6 @@ void LevelF2_1Menu_1Do(void)
if (DTCNumDis == 1u) /*计时*/
{
//GUI_Display_DTC_Server();
GUI_BG_DTCEngine_Display(GUI_DISP_MODE_NORMAL);
}
else /*故障码读取中*/
......@@ -2533,22 +2516,6 @@ void LevelF2_1Menu_1Exit(void)
/*----工厂模式----117 刹车----*/
void LevelF2_1Menu_2Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -2606,22 +2573,6 @@ void LevelF2_1Menu_2Exit(void)
/*----工厂模式----118 变速箱----*/
void LevelF2_1Menu_3Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -2679,22 +2630,6 @@ void LevelF2_1Menu_3Exit(void)
/*----工厂模式----119 雷达----*/
void LevelF2_1Menu_4Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -2752,22 +2687,6 @@ void LevelF2_1Menu_4Exit(void)
/*----工厂模式----120 摄像头----*/
void LevelF2_1Menu_5Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -2825,22 +2744,6 @@ void LevelF2_1Menu_5Exit(void)
/*----工厂模式----121 液缓----*/
void LevelF2_1Menu_6Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -3572,22 +3475,6 @@ void LevelD2_5Menu_1Exit(void)
/*----经销商模式----发动机----*/
void LevelD2_1Menu_1Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -3646,22 +3533,6 @@ void LevelD2_1Menu_1Exit(void)
/*----经销商模式----刹车----*/
void LevelD2_1Menu_2Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -3719,22 +3590,6 @@ void LevelD2_1Menu_2Exit(void)
/*----经销商模式----变速箱----*/
void LevelD2_1Menu_3Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -3792,22 +3647,6 @@ void LevelD2_1Menu_3Exit(void)
/*----经销商模式----雷达----*/
void LevelD2_1Menu_4Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -3865,22 +3704,6 @@ void LevelD2_1Menu_4Exit(void)
/*----经销商模式----摄像头----*/
void LevelD2_1Menu_5Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......@@ -3938,22 +3761,6 @@ void LevelD2_1Menu_5Exit(void)
/*----经销商模式----液缓----*/
void LevelD2_1Menu_6Enter(void)
{
uint8_t i = 0u;
for (i = 0u; i < 50; i++)
{
DTCNumberEngine[i] = 0x00u;
DTCNumberBrake[i] = 0x00u;
DTCNumberAMT[i] = 0x00u;
DTCNumberRadar[i] = 0x00u;
DTCNumberCamera[i] = 0x00u;
DTCNumberRetarder[i] = 0x00u;
}
DisDTCNumEngine = 0u ;
DisDTCNumBrake = 0u ;
DisDTCNumAMT = 0u ;
DisDTCNumRadar = 0u ;
DisDTCNumCamera = 0u ;
DisDTCNumRetarder = 0u ;
//03 19 02 0C 55 55 55 55
_CAN_Msg canMag;
......
......@@ -925,6 +925,7 @@ void Common_Set_UdsCanIDSta(uint32_t Val)
{
UdsCanIDSta = Val;
}
uint32_t Common_Get_UdsCanIDSta(void)
{
return UdsCanIDSta;
......
......@@ -146,8 +146,6 @@ void Can_Read_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[])
{
ReceivedMsg(m_id, m_dlc);
Co_Can_Buff_Set(Co_Can_ConvertSubID(m_id), m_dlc, m_Msg);
if (
(m_id == 0x18DAF003u) ||
(m_id == 0x18DAF00Bu) ||
......@@ -159,6 +157,8 @@ void Can_Read_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[])
Common_Set_UdsCanIDSta(m_id);
LK_Link_main(m_id, (uint8_t*)m_Msg, (m_dlc & 0x0f));
}
Co_Can_Buff_Set(Co_Can_ConvertSubID(m_id), m_dlc, m_Msg);
}
void Can_Read_Msg2(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[])
......
......@@ -13,7 +13,7 @@ volatile _LinkData LinkData;
* Return : None
* onther :
--------------------------------------------------------------------------*/
void LK_Link_main(uint16_t PDU_addr, uint8_t *CAN_BufAddr, uint8_t dlc)
void LK_Link_main(uint32_t PDU_addr, uint8_t *CAN_BufAddr, uint8_t dlc)
{
if (LinkDataBuf[0].TransferStatus == empoty)
{
......
......@@ -12,6 +12,6 @@ EXTERN_LK_DIAGNO volatile _LinkData LinkDataBuf[2];
EXTERN_LK_DIAGNO volatile _LinkData LinkData;
EXTERN_LK_DIAGNO void LK_FillMsg(uint8_t *data, uint8_t FillData, uint8_t dlc);
EXTERN_LK_DIAGNO void LK_Link_main(uint16_t PDU_addr, uint8_t *CAN_BufAddr, uint8_t dlc);
EXTERN_LK_DIAGNO void LK_Link_main(uint32_t PDU_addr, uint8_t *CAN_BufAddr, uint8_t dlc);
#endif /* LK_DIAGNO_H_ */
......@@ -8,6 +8,8 @@
#include "app_ServiceProc.h"
#include <string.h>
#include "Common_Interface.h"
#define GLOBALS_UDS_CFG
#define GLOBALS_USER_DEF
......@@ -17,6 +19,14 @@ volatile _N_USData Exct_USData; //报文接收的ID数据
volatile _DiagClock DiagClock;
volatile _ErrorFrame Error; //错误信息
_DiagReciveDTC DiagReciveDTC;
_DiagReciveDTC DiagReciveDTCEngine;
_DiagReciveDTC DiagReciveDTCBrake;
_DiagReciveDTC DiagReciveDTCAMT;
_DiagReciveDTC DiagReciveDTCRadar;
_DiagReciveDTC DiagReciveDTCCamera;
_DiagReciveDTC DiagReciveDTCRetarder;
_DiagReciveGaugePara DiagReciveGaugePara;
//volatile uint32_t CrcCheckSum;
......@@ -176,9 +186,12 @@ void Diagnosis_main(void)
{
switch (Exct_USData.ind.N_TAtype)
{
case ID_BCM_ResAddr:
case ID_BCM_ResAddr:
case 0x18DAF003u:/*变速箱AMT*/
case 0x18DAF00Bu:/*刹车EBS*/
case 0x18DAF010u:/*液缓*/
case 0x18DAF0A0u:/*雷达*/
case 0x18DAF0E8u:/*摄像头*/
switch (Exct_USData.ind.MsgData[0])
{
case ReqReadDtcId:
......@@ -198,7 +211,6 @@ void Diagnosis_main(void)
break;
}
break;
//case ID_PhyAddr:
// switch (Exct_USData.ind.MsgData[0])
// {
......@@ -1197,18 +1209,95 @@ void App_14_service(_N_USData *AppUSData)
--------------------------------------------------------------------------*/
void App_59_service(_N_USData *AppUSData)
{
uint32_t UdsCanID = 0u;
uint16_t DID;
App_ErrorInfoInit((_N_USData *)AppUSData);
//获取DID
App_Load_DID((uint16_t *)&DID, (uint8_t *)&AppUSData->ind.MsgData[1]);
(void)memset((uint8_t *)&DiagReciveDTC.UnionDTC, 0, sizeof(_DiagReciveDTC));
if (AppUSData->ind.Length > 1)
//(void)memset((uint8_t *)&DiagReciveDTC.UnionDTC, 0, sizeof(_DiagReciveDTC));
//if (AppUSData->ind.Length > 1)
//{
// if (AppUSData->ind.MsgData[1] == 0x02)
// {
// App_CopyRam((uint8_t *)&DiagReciveDTC.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
// }
//}
UdsCanID = Common_Get_UdsCanIDSta();
switch (UdsCanID)
{
case ID_BCM_ResAddr:/*发动机*/
(void)memset((uint8_t *)&DiagReciveDTCEngine.UnionDTC, 0, sizeof(_DiagReciveDTC));
if (AppUSData->ind.Length > 1)
{
if (AppUSData->ind.MsgData[1] == 0x02)
{
App_CopyRam((uint8_t *)&DiagReciveDTCEngine.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
}
}
break;
if (AppUSData->ind.MsgData[1] == 0x02)
case 0x18DAF003u:/*变速箱AMT*/
(void)memset((uint8_t *)&DiagReciveDTCAMT.UnionDTC, 0, sizeof(_DiagReciveDTC));
if (AppUSData->ind.Length > 1)
{
App_CopyRam((uint8_t *)&DiagReciveDTC.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
if (AppUSData->ind.MsgData[1] == 0x02)
{
App_CopyRam((uint8_t *)&DiagReciveDTCAMT.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
}
}
break;
case 0x18DAF00Bu:/*刹车EBS*/
(void)memset((uint8_t *)&DiagReciveDTCBrake.UnionDTC, 0, sizeof(_DiagReciveDTC));
if (AppUSData->ind.Length > 1)
{
if (AppUSData->ind.MsgData[1] == 0x02)
{
App_CopyRam((uint8_t *)&DiagReciveDTCBrake.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
}
}
break;
case 0x18DAF010u:/*液缓*/
(void)memset((uint8_t *)&DiagReciveDTCRetarder.UnionDTC, 0, sizeof(_DiagReciveDTC));
if (AppUSData->ind.Length > 1)
{
if (AppUSData->ind.MsgData[1] == 0x02)
{
App_CopyRam((uint8_t *)&DiagReciveDTCRetarder.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
}
}
break;
case 0x18DAF0A0u:/*雷达*/
(void)memset((uint8_t *)&DiagReciveDTCRadar.UnionDTC, 0, sizeof(_DiagReciveDTC));
if (AppUSData->ind.Length > 1)
{
if (AppUSData->ind.MsgData[1] == 0x02)
{
App_CopyRam((uint8_t *)&DiagReciveDTCRadar.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
}
}
break;
case 0x18DAF0E8u:/*摄像头*/
(void)memset((uint8_t *)&DiagReciveDTCCamera.UnionDTC, 0, sizeof(_DiagReciveDTC));
if (AppUSData->ind.Length > 1)
{
if (AppUSData->ind.MsgData[1] == 0x02)
{
App_CopyRam((uint8_t *)&DiagReciveDTCCamera.UnionDTC, (uint8_t *)&AppUSData->ind.MsgData[3], (AppUSData->ind.Length - 3));
}
}
break;
default:
break;
}
}
/*-------------------------------------------------------------------------
......
......@@ -34,7 +34,7 @@ typedef enum
} TransSt;
typedef struct
{
uint16_t Identifier; //Fun--PGN--
uint32_t Identifier; //Fun--PGN--
uint8_t DLC;
uint8_t Data[8];
TransSt TransferStatus;
......@@ -62,7 +62,7 @@ typedef struct
{
struct
{
uint16_t N_TAtype;
uint32_t N_TAtype;
uint16_t Length;
uint8_t N_SA;
uint8_t N_TA;
......@@ -78,7 +78,7 @@ typedef struct
{
struct
{
uint16_t N_TAtype; //PGN 55808--0xDA00
uint32_t N_TAtype; //PGN 55808--0xDA00
uint16_t Length;
uint8_t N_SA;
uint8_t N_TA;
......@@ -194,5 +194,13 @@ typedef struct
#include "app_ServiceProc.h"
#include "app_Service.h"
extern _DiagReciveDTC DiagReciveDTC ;
extern _DiagReciveDTC DiagReciveDTCEngine;
extern _DiagReciveDTC DiagReciveDTCBrake;
extern _DiagReciveDTC DiagReciveDTCAMT;
extern _DiagReciveDTC DiagReciveDTCRadar;
extern _DiagReciveDTC DiagReciveDTCCamera;
extern _DiagReciveDTC DiagReciveDTCRetarder;
extern _DiagReciveGaugePara DiagReciveGaugePara;
#endif /* _UDS_INCLUDES_H_ */
......@@ -136,8 +136,13 @@ void Sys_Run_Mode_2ms_Tasks(void)
Gauges_Time_Xms_Count(2);
}
Common_DTC_Server();
Common_test();
//Common_DTC_Server();
Common_DTCEngine_Server();
Common_DTCBrake_Server();
Common_DTCAMT_Server();
Common_DTCRadar_Server();
Common_DTCCamera_Server();
Common_DTCRetarder_Server();
}
/*============================================================================*/
/*==============================================================================
......@@ -149,8 +154,8 @@ void Sys_Run_Mode_5ms_Tasks(void)
Id18EF1817_Send_Service();
Id18033317_Send_Service();
Id18FFE517_Send_Service();
DoCAN_Get_Multi_frame00_Recv();
DoCAN_Get_Multi_frame00_Recv();
DoCAN_Get_Multi_frame03_Recv();
DoCAN_Get_Multi_frame0B_Recv();
DoCAN_Get_Multi_frame10_Recv();
......
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