diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.c b/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.c index 0499f07..48fdbfc 100644 --- a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.c +++ b/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.c @@ -18,22 +18,22 @@ - /*SID 条件检查项列表*/ + /*SID 鏉′欢妫鏌ラ」鍒楄〃*/ #if 0 -/*SID 条件检查项*/ +/*SID 鏉′欢妫鏌ラ」*/ typedef struct { - uint8 SupportSession; /*支持的会话模式*/ - uint8 SupportSecurityAccess; /*支持的安全权限*/ - uint8 SupportRequestAddress; /*支持的请求方式*/ - uint8 MinDL; /*SID 对应的最小DL*/ - uint8 SubCount; /*子服务个数 */ + uint8 SupportSession; /*鏀寔鐨勪細璇濇ā寮*/ + uint8 SupportSecurityAccess; /*鏀寔鐨勫畨鍏ㄦ潈闄*/ + uint8 SupportRequestAddress; /*鏀寔鐨勮姹傛柟寮*/ + uint8 MinDL; /*SID 瀵瑰簲鐨勬渶灏廌L*/ + uint8 SubCount; /*瀛愭湇鍔′釜鏁 */ uint8 Sid; /*SID */ ServerDealfunc SidFunction; }TsDcm_h_SidCheckInfoType; #endif const TsDcm_h_SidCheckInfoType CaDcm_h_SidCheckInfoTable[DCM_SUPPORTSID_COUNT]={ -// 会话模式 ; 安全权限 ; 请求方式 ;子服务最小DL;子服务个数;SID;处理函数地址 +// 浼氳瘽妯″紡 锛 瀹夊叏鏉冮檺 锛 璇锋眰鏂瑰紡 锛涘瓙鏈嶅姟鏈灏廌L锛涘瓙鏈嶅姟涓暟锛汼ID锛涘鐞嗗嚱鏁板湴鍧 {DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 2 , 3 , 0x10 , &MngDcm_SessionControlService}, {DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 2 , 1 , 0x11 , &MngDcm_ECUResetService}, { DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS , 2 , 2 , 0x27 , &MngDcm_SecurityAccessService}, @@ -52,7 +52,7 @@ const TsDcm_h_SidCheckInfoType CaDcm_h_SidCheckInfoTable[DCM_SUPPORTSID_COUNT]={ }; -/*10服务 子服务信息列表*/ +/*10鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ const TsDcm_h_SubCheckType CaDcm_h_10SubCheckTable[DCM_10SUB_COUNT]={ {0x01,2,&MngDcm_DefaultSessionDeal}, {0x02,2,&MngDcm_ProgramSessionDeal}, @@ -60,14 +60,14 @@ const TsDcm_h_SubCheckType CaDcm_h_10SubCheckTable[DCM_10SUB_COUNT]={ }; -/*11服务 子服务信息列表*/ +/*11鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ const TsDcm_h_SubCheckType CaDcm_h_11SubCheckTable[DCM_11SUB_COUNT]={ {0x01,2,&MngDcm_SoftResetDeal}, // {0x02,2,&MngDcm_SoftResetDeal}, {0x03,2,&MngDcm_SoftResetDeal} }; -/*19服务 子服务信息列表*/ +/*19鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ #if 0 const TsDcm_h_SubCheckType CaDcm_h_19SubCheckTable[DCM_19SUB_COUNT]={ {0x01,3,&MngDcm_ReportNumberOfDTCByStatusMask}, @@ -77,7 +77,7 @@ const TsDcm_h_SubCheckType CaDcm_h_19SubCheckTable[DCM_19SUB_COUNT]={ {0x0A,2,&MngDcm_ReportSupportedDTC} }; #endif -/*27服务 子服务信息列表*/ +/*27鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ const TsDcm_h_WithParaSubCheckType CaDcm_h_27SubCheckTable[DCM_27SUB_COUNT]={ //{0x01,2,&MngDcm_RequestSeekDeal}, //{0x02,6,&MngDcm_KeyCkeckDeal}, @@ -86,7 +86,7 @@ const TsDcm_h_WithParaSubCheckType CaDcm_h_27SubCheckTable[DCM_27SUB_COUNT]={ }; -/*28服务 子服务信息列表*/ +/*28鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ const TsDcm_h_WithParaSubCheckType CaDcm_h_28SubCheckTable[DCM_28SUB_COUNT]={ {0x00,3,&MngDcm_CtrlCommunication}, {0x01,3,&MngDcm_CtrlCommunication}, @@ -96,25 +96,25 @@ const TsDcm_h_WithParaSubCheckType CaDcm_h_28SubCheckTable[DCM_28SUB_COUNT]={ -/*3E服务 子服务信息列表*/ +/*3E鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ const TsDcm_h_SubCheckType CaDcm_h_3ESubCheckTable[DCM_3ESUB_COUNT]={ {0x00,2,&MngDcm_TesterPresentDeal} }; -/*85服务 子服务信息列表*/ +/*85鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ const TsDcm_h_SubCheckType CaDcm_h_85SubCheckTable[DCM_85SUB_COUNT]={ {0x01,2,&MngDcm_DTCSettingEnable}, {0x02,2,&MngDcm_DTCSettingDisenable} }; -/*2C服务 子服务信息列表*/ +/*2C鏈嶅姟 瀛愭湇鍔′俊鎭垪琛*/ const TsDcm_h_SubCheckType CaDcm_h_2CSubCheckTable[DCM_2CSUB_COUNT]={ {0x01,8,&MngDcm_DynamicaDefineNewDid}, {0x03,4,&MngDcm_ClearDynamicaDid} }; -/*2F 服务 DID 条件检查项列表*/ +/*2F 鏈嶅姟 DID 鏉′欢妫鏌ラ」鍒楄〃*/ const TsDcm_h_DidCheckType CaDcm_h_IODidCheckInfoTable[DCM_IO_DIDSUP_COUNT]={ {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x6300,&Dcm_DidServices_0x6300_WriteData}, {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x6308,&Dcm_DidServices_0x6308_WriteData}, @@ -122,7 +122,7 @@ const TsDcm_h_DidCheckType CaDcm_h_IODidCheckInfoTable[DCM_IO_DIDSUP_COUNT]={ {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x630C,&Dcm_DidServices_0x630C_WriteData}, {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x630E,&Dcm_DidServices_0x630E_WriteData}, }; - /*22 服务 DID 条件检查项列表*/ + /*22 鏈嶅姟 DID 鏉′欢妫鏌ラ」鍒楄〃*/ const TsDcm_h_DidCheckType CaDcm_h_ReadDidCheckInfoTable[DCM_READ_DIDSUP_COUNT + DCM_PERIODIC_DATA_COUNT]={ {0x07,0x07, 8,0x0200,&Dcm_DidServices_0x0200_ReadData}, {0x07,0x07, 8,0x0201,&Dcm_DidServices_0x0201_ReadData}, @@ -156,13 +156,13 @@ const TsDcm_h_DidCheckType CaDcm_h_ReadDidCheckInfoTable[DCM_READ_DIDSUP_COUNT + }; - /*2E 服务 DID 条件检查项列表*/ + /*2E 鏈嶅姟 DID 鏉′欢妫鏌ラ」鍒楄〃*/ const TsDcm_h_DidCheckType CaDcm_h_WriteDidCheckInfoTable[DCM_WRITE_DIDSUP_COUNT]={ {0x06,DCM_SECURITYACCESS_LEVEL_L1,16,0xF198,&Dcm_DidServices_0xF198_WriteData}, {0x06,DCM_SECURITYACCESS_LEVEL_L1, 4,0xF199,&Dcm_DidServices_0xF199_WriteData}, }; -/*Rid FF00 检查列表*/ +/*Rid FF00 妫鏌ュ垪琛*/ const TsDcm_h_RidSubCheckType CaDcm_h_RidFF00SubCheckTable[DCM_RIDFF00_SUB_COUNT]= { {0x01,13,&MngDcm_RoutineFF00Start}, @@ -170,7 +170,7 @@ const TsDcm_h_RidSubCheckType CaDcm_h_RidFF00SubCheckTable[DCM_RIDFF00_SUB_COUNT {0x03,5,&MngDcm_RoutineFF00Result} }; -/*Rid FF01 检查列表*/ +/*Rid FF01 妫鏌ュ垪琛*/ const TsDcm_h_RidSubCheckType CaDcm_h_RidFF01SubCheckTable[DCM_RIDFF01_SUB_COUNT]= { {0x01,4,&MngDcm_RoutineFF01Start}, @@ -178,7 +178,7 @@ const TsDcm_h_RidSubCheckType CaDcm_h_RidFF01SubCheckTable[DCM_RIDFF01_SUB_COUNT {0x03,5,&MngDcm_RoutineFF01Result} }; -/*Rid FF02 检查列表*/ +/*Rid FF02 妫鏌ュ垪琛*/ const TsDcm_h_RidSubCheckType CaDcm_h_RidFF02SubCheckTable[DCM_RIDFF02_SUB_COUNT]= { {0x01,4,&MngDcm_RoutineFF02Start}, @@ -186,7 +186,7 @@ const TsDcm_h_RidSubCheckType CaDcm_h_RidFF02SubCheckTable[DCM_RIDFF02_SUB_COUNT {0x03,4,&MngDcm_RoutineFF02Result} }; -/*Rid 202 检查列表*/ +/*Rid 202 妫鏌ュ垪琛*/ const TsDcm_h_RidSubCheckType CaDcm_h_Rid0202SubCheckTable[DCM_RIDF001_SUB_COUNT]= { {0x01,8,&MngDcm_Routine0202Start }, @@ -194,7 +194,7 @@ const TsDcm_h_RidSubCheckType CaDcm_h_Rid0202SubCheckTable[DCM_RIDF001_SUB_COUNT {0x03,5,&MngDcm_Routine0202Result} }; -/*Rid 总检查列表*/ +/*Rid 鎬绘鏌ュ垪琛*/ const TsDcm_h_RidCheckType CaDcm_h_RidCheckInfoTable[DCM_31RID_COUNT]={ {DCM_PROGRAMME_SESSION,DCM_SECURITYACCESS_LEVEL_L2, ROUTINECTRL_DID_EraseMemory, CaDcm_h_RidFF00SubCheckTable}, {DCM_PROGRAMME_SESSION,DCM_SECURITYACCESS_LEVEL_L2, ROUTINECTRL_DID_CheckProgrammingDependencies, CaDcm_h_RidFF01SubCheckTable}, @@ -207,7 +207,7 @@ const TsDcm_h_RidCheckType CaDcm_h_RidCheckInfoTable[DCM_31RID_COUNT]={ /****************************************************************************** * Description: : Static Function Prototype Declaration *****************************************************************************/ -/*@静态函数声明*/ +/*@闈欐佸嚱鏁板0鏄*/ static uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]); static uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint16 LeDcm_u_DL,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]); static uint8 MngDcm_ReadDidCheckDL(uint16 LeDcm_u_DL); @@ -231,23 +231,23 @@ static void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uin /****************************************************************************** * Description: : Write User Function Code *****************************************************************************/ -/*@函数头注释格式,所有函数头按照此格式注释*/ +/*@鍑芥暟澶存敞閲婃牸寮忥紝鎵鏈夊嚱鏁板ご鎸夌収姝ゆ牸寮忔敞閲*/ /****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid) + *鍑芥暟鍚嶇О : uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid) - *参数 : LeDcm_u_Sid 请求的SID + *鍙傛暟 : LeDcm_u_Sid 璇锋眰鐨凷ID - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查SID的有效性 + *鎻忚堪 : 妫鏌ID鐨勬湁鏁堟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid) { @@ -267,17 +267,17 @@ uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid) /****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex) + *鍑芥暟鍚嶇О : uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex) - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值 + *鍙傛暟 : LeDcm_u_SidIndex 璇锋眰鐨凷ID鍦ㄦ潯浠跺垪琛ㄤ腑鐨勭储寮曞 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前模式是否支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶆ā寮忔槸鍚︽敮鎸 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex) { @@ -296,17 +296,17 @@ uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex) /****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex) + *鍑芥暟鍚嶇О : uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex) - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值 + *鍙傛暟 : LeDcm_u_SidIndex 璇锋眰鐨凷ID鍦ㄦ潯浠跺垪琛ㄤ腑鐨勭储寮曞 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前安全权限是否满足 + *鎻忚堪 : 妫鏌ュ綋鍓嶅畨鍏ㄦ潈闄愭槸鍚︽弧瓒 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex) { @@ -324,17 +324,17 @@ uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex) /****************************************************************************** - *函数名称 : uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex) + *鍑芥暟鍚嶇О : uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex) - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值 + *鍙傛暟 : LeDcm_u_SidIndex 璇锋眰鐨凷ID鍦ㄦ潯浠跺垪琛ㄤ腑鐨勭储寮曞 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求方式是否支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傛柟寮忔槸鍚︽敮鎸 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex) { @@ -353,17 +353,17 @@ uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex) /****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint8 LeDcm_u_DL) + *鍑芥暟鍚嶇О : uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint8 LeDcm_u_DL) - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值,LeDcm_u_DL 客户端请求的 DL + *鍙傛暟 : LeDcm_u_SidIndex 璇锋眰鐨凷ID鍦ㄦ潯浠跺垪琛ㄤ腑鐨勭储寮曞硷紝LeDcm_u_DL 瀹㈡埛绔姹傜殑 DL - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求的DL 是否满足索引的SID的最小DL + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傜殑DL 鏄惁婊¤冻绱㈠紩鐨凷ID鐨勬渶灏廌L - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint16 LeDcm_u_DL) { @@ -386,19 +386,19 @@ uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint16 LeDcm_u_DL) /****************************************************************************** - *函数名称 : uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) - *参数 : LeDcm_u_ListLenth 请求的SID的子服务信息列表长度 - LeDcm_u_Sub 请求的子服务 - LeDcm_h_SubTable[] 请求的SID的子服务信息列表 + *鍙傛暟 : LeDcm_u_ListLenth 璇锋眰鐨凷ID鐨勫瓙鏈嶅姟淇℃伅鍒楄〃闀垮害 + LeDcm_u_Sub 璇锋眰鐨勫瓙鏈嶅姟 + LeDcm_h_SubTable[] 璇锋眰鐨凷ID鐨勫瓙鏈嶅姟淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求子服务是否支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傚瓙鏈嶅姟鏄惁鏀寔 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) { @@ -419,19 +419,19 @@ uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const T /****************************************************************************** - *函数名称 : uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint8 LeDcm_u_DL,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint8 LeDcm_u_DL,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) - *参数 : LeDcm_u_SubIndex 请求的SID的子服务在子服务信息列表中的索引值 - LeDcm_u_DL 请求的DL - LeDcm_h_SubTable[] 请求的SID的子服务信息列表 + *鍙傛暟 : LeDcm_u_SubIndex 璇锋眰鐨凷ID鐨勫瓙鏈嶅姟鍦ㄥ瓙鏈嶅姟淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LeDcm_u_DL 璇锋眰鐨凞L + LeDcm_h_SubTable[] 璇锋眰鐨凷ID鐨勫瓙鏈嶅姟淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求子服务是否支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傚瓙鏈嶅姟鏄惁鏀寔 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint16 LeDcm_u_DL,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) { @@ -452,17 +452,17 @@ uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint16 LeDcm_u_DL,const TsDcm_h_S /****************************************************************************** - *函数名称 : uint8 MngDcm_ReadDidCheckDL(uint8 LeDcm_u_DL) + *鍑芥暟鍚嶇О : uint8 MngDcm_ReadDidCheckDL(uint8 LeDcm_u_DL) - *参数 : LeDcm_u_DL 请求的DL + *鍙傛暟 : LeDcm_u_DL 璇锋眰鐨凞L - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求的DL是否满足要求 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傜殑DL鏄惁婊¤冻瑕佹眰 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 检查22 服务请求DL有效性函数 + *澶囨敞 : 妫鏌22 鏈嶅姟璇锋眰DL鏈夋晥鎬у嚱鏁 *****************************************************************************/ uint8 MngDcm_ReadDidCheckDL(uint16 LeDcm_u_DL) { @@ -481,17 +481,17 @@ uint8 MngDcm_ReadDidCheckDL(uint16 LeDcm_u_DL) /****************************************************************************** - *函数名称 : uint8 MngDcm_ReadDidCheckDL(uint8 LeDcm_u_DL) + *鍑芥暟鍚嶇О : uint8 MngDcm_ReadDidCheckDL(uint8 LeDcm_u_DL) - *参数 : LeDcm_u_DL 请求的DL + *鍙傛暟 : LeDcm_u_DL 璇锋眰鐨凞L - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求的DL是否满足要求 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傜殑DL鏄惁婊¤冻瑕佹眰 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 检查22 服务请求DL有效性函数 + *澶囨敞 : 妫鏌22 鏈嶅姟璇锋眰DL鏈夋晥鎬у嚱鏁 *****************************************************************************/ uint8 MngDcm_2AReadDidCheckDL(uint16 LeDcm_u_DL) { @@ -509,18 +509,18 @@ uint8 MngDcm_2AReadDidCheckDL(uint16 LeDcm_u_DL) /****************************************************************************** - *函数名称 : uint8 MngDcm_WriteDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_WriteDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) - *参数 : LeDcm_u_DidIndex 请求的DID 在2E支持的DID信息列表中的索引值 - LaDcm_h_DidTable[] 2E支持的DID信息列表 + *鍙傛暟 : LeDcm_u_DidIndex 璇锋眰鐨凞ID 鍦2E鏀寔鐨凞ID淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LaDcm_h_DidTable[] 2E鏀寔鐨凞ID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求的DL是否满足要求 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傜殑DL鏄惁婊¤冻瑕佹眰 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 2E 服务检查请求DL有效性函数 + *澶囨敞 : 2E 鏈嶅姟妫鏌ヨ姹侱L鏈夋晥鎬у嚱鏁 *****************************************************************************/ uint8 MngDcm_WriteDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) { @@ -549,19 +549,19 @@ uint8 MngDcm_IoDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDc } /****************************************************************************** - *函数名称 : uint8 MngDcm_DidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Did,const TsDcm_h_DidCheckType LeDcm_h_DidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_DidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Did,const TsDcm_h_DidCheckType LeDcm_h_DidTable[]) - *参数 : LeDcm_u_ListLenth 请求的DID信息列表长度 - LeDcm_u_Did 请求的DID - LaDcm_h_DidTable[] DID信息列表 + *鍙傛暟 : LeDcm_u_ListLenth 璇锋眰鐨凞ID淇℃伅鍒楄〃闀垮害 + LeDcm_u_Did 璇锋眰鐨凞ID + LaDcm_h_DidTable[] DID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求的DID是支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傜殑DID鏄敮鎸 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 检测DID是否在列表中 如果存在 返回索引 不存在 返回 DCM_NORESULT 没找到 + *澶囨敞 : 妫娴婦ID鏄惁鍦ㄥ垪琛ㄤ腑 濡傛灉瀛樺湪 杩斿洖绱㈠紩 涓嶅瓨鍦 杩斿洖 DCM_NORESULT 娌℃壘鍒 *****************************************************************************/ uint8 MngDcm_DidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Did,const TsDcm_h_DidCheckType LeDcm_h_DidTable[]) { @@ -585,18 +585,18 @@ uint8 MngDcm_DidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Did,const /****************************************************************************** - *函数名称 : uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) - *参数 : LeDcm_u_DidIndex 请求的DID在DID信息列表中的索引值 - LaDcm_h_DidTable[] DID信息列表 + *鍙傛暟 : LeDcm_u_DidIndex 璇锋眰鐨凞ID鍦―ID淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LaDcm_h_DidTable[] DID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前会话模式是否支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶄細璇濇ā寮忔槸鍚︽敮鎸 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) { @@ -616,18 +616,18 @@ uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType L /****************************************************************************** - *函数名称 : uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) - *参数 : LeDcm_u_DidIndex 请求的DID在DID信息列表中的索引值 - LaDcm_h_DidTable[] DID信息列表 + *鍙傛暟 : LeDcm_u_DidIndex 璇锋眰鐨凞ID鍦―ID淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LaDcm_h_DidTable[] DID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前安全权限是否满足要求 + *鎻忚堪 : 妫鏌ュ綋鍓嶅畨鍏ㄦ潈闄愭槸鍚︽弧瓒宠姹 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ uint8 MngDcm_DidCheckSecurityAccess(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) { @@ -645,19 +645,19 @@ uint8 MngDcm_DidCheckSecurityAccess(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidChec /****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Rid,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_RidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Rid,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - *参数 : LeDcm_u_ListLenth 请求的RID信息列表长度 - LeDcm_u_Rid 请求的RID - LeDcm_h_RidTable[] RID信息列表 + *鍙傛暟 : LeDcm_u_ListLenth 璇锋眰鐨凴ID淇℃伅鍒楄〃闀垮害 + LeDcm_u_Rid 璇锋眰鐨凴ID + LeDcm_h_RidTable[] RID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前请求的RID是否支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶈姹傜殑RID鏄惁鏀寔 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 31服务 检测RID是否在列表中 如果存在 返回索引 不存在 返回 DCM_NORESULT 没找到 + *澶囨敞 : 31鏈嶅姟 妫娴婻ID鏄惁鍦ㄥ垪琛ㄤ腑 濡傛灉瀛樺湪 杩斿洖绱㈠紩 涓嶅瓨鍦 杩斿洖 DCM_NORESULT 娌℃壘鍒 *****************************************************************************/ uint8 MngDcm_RidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Rid,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) { @@ -677,18 +677,18 @@ uint8 MngDcm_RidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Rid,const /****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckSession(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_RidCheckSession(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_h_RidTable[] RID信息列表 + *鍙傛暟 : LeDcm_u_RidIndex 璇锋眰鐨凴ID鍦≧ID淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LeDcm_h_RidTable[] RID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前会话模式是否支持 + *鎻忚堪 : 妫鏌ュ綋鍓嶄細璇濇ā寮忔槸鍚︽敮鎸 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 31服务 检查当前模式是否支持该RID + *澶囨敞 : 31鏈嶅姟 妫鏌ュ綋鍓嶆ā寮忔槸鍚︽敮鎸佽RID *****************************************************************************/ uint8 MngDcm_RidCheckSession(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) { @@ -705,18 +705,18 @@ uint8 MngDcm_RidCheckSession(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType L } /****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_h_RidTable[] RID信息列表 + *鍙傛暟 : LeDcm_u_RidIndex 璇锋眰鐨凴ID鍦≧ID淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LeDcm_h_RidTable[] RID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查当前安全权限是否满足要求 + *鎻忚堪 : 妫鏌ュ綋鍓嶅畨鍏ㄦ潈闄愭槸鍚︽弧瓒宠姹 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 31服务 检查权限是否满足要求 + *澶囨敞 : 31鏈嶅姟 妫鏌ユ潈闄愭槸鍚︽弧瓒宠姹 *****************************************************************************/ uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) { @@ -733,20 +733,20 @@ uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidChec /****************************************************************************** - *函数名称 : uint8 MngDcm_RidSubAvailable(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSub,uint8 LeDcm_u_ListLength,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_RidSubAvailable(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSub,uint8 LeDcm_u_ListLength,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_u_RidSub 请求的Sub - LeDcm_u_ListLength RID支持的子服务信息列表长度 - LeDcm_h_RidTable[] RID信息列表 + *鍙傛暟 : LeDcm_u_RidIndex 璇锋眰鐨凴ID鍦≧ID淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LeDcm_u_RidSub 璇锋眰鐨凷ub + LeDcm_u_ListLength RID鏀寔鐨勫瓙鏈嶅姟淇℃伅鍒楄〃闀垮害 + LeDcm_h_RidTable[] RID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查请求的RID是否支持当前请求的Sub + *鎻忚堪 : 妫鏌ヨ姹傜殑RID鏄惁鏀寔褰撳墠璇锋眰鐨凷ub - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 31服务 检查请求的RID是否支持当前请求的Sub + *澶囨敞 : 31鏈嶅姟 妫鏌ヨ姹傜殑RID鏄惁鏀寔褰撳墠璇锋眰鐨凷ub *****************************************************************************/ uint8 MngDcm_RidSubAvailable(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSub,uint8 LeDcm_u_ListLength,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) { @@ -765,19 +765,19 @@ uint8 MngDcm_RidSubAvailable(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSub,uint8 L } /****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) + *鍑芥暟鍚嶇О : uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_u_RidSubIndex 请求的SUB在RID支持的子服务信息列表中的索引值 - LeDcm_h_RidTable[] RID信息列表 + *鍙傛暟 : LeDcm_u_RidIndex 璇锋眰鐨凴ID鍦≧ID淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LeDcm_u_RidSubIndex 璇锋眰鐨凷UB鍦≧ID鏀寔鐨勫瓙鏈嶅姟淇℃伅鍒楄〃涓殑绱㈠紩鍊 + LeDcm_h_RidTable[] RID淇℃伅鍒楄〃 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 检查请求的DL是否满足要求 + *鎻忚堪 : 妫鏌ヨ姹傜殑DL鏄惁婊¤冻瑕佹眰 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 31服务 检查请求的DL是否满足要求 + *澶囨敞 : 31鏈嶅姟 妫鏌ヨ姹傜殑DL鏄惁婊¤冻瑕佹眰 *****************************************************************************/ uint8 MngDcm_RidCheckDL(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSubIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) { @@ -800,21 +800,21 @@ uint8 MngDcm_RidCheckDL(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSubIndex,const T /****************************************************************************** - *函数名称 : void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uint16 LeDcm_u_Did,uint8* LeDcm_u_Data,uint8 LeDcm_u_Length) + *鍑芥暟鍚嶇О : void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uint16 LeDcm_u_Did,uint8* LeDcm_u_Data,uint8 LeDcm_u_Length) - *参数 : LeDcm_u_Buffer 数据目标缓存数组 - LeDcm_u_Post 目标缓存数组数据填充位置 - LeDcm_u_Did 当前处理的DID - LeDcm_u_Data 数据的源地址 - LeDcm_u_Length 数据长度 + *鍙傛暟 : LeDcm_u_Buffer 鏁版嵁鐩爣缂撳瓨鏁扮粍 + LeDcm_u_Post 鐩爣缂撳瓨鏁扮粍鏁版嵁濉厖浣嶇疆 + LeDcm_u_Did 褰撳墠澶勭悊鐨凞ID + LeDcm_u_Data 鏁版嵁鐨勬簮鍦板潃 + LeDcm_u_Length 鏁版嵁闀垮害 - *返回值 : LeDcm_u_TempResult 处理结果 + *杩斿洖鍊 : LeDcm_u_TempResult 澶勭悊缁撴灉 - *描述 : 22 DID 读取服务的数据整理函数 + *鎻忚堪 : 22 DID 璇诲彇鏈嶅姟鐨勬暟鎹暣鐞嗗嚱鏁 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : 对单个DID的处理,22服务请求有多个DID时会多次调用 + *澶囨敞 : 瀵瑰崟涓狣ID鐨勫鐞嗭紝22鏈嶅姟璇锋眰鏈夊涓狣ID鏃朵細澶氭璋冪敤 *****************************************************************************/ void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uint16 LeDcm_u_Did,uint8* LeDcm_u_Data,uint8 LeDcm_u_Length) { @@ -842,21 +842,21 @@ void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uint16 LeD -/**********************************************诊断服务入口函数**************/ +/**********************************************璇婃柇鏈嶅姟鍏ュ彛鍑芥暟**************/ /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_SessionControlService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_SessionControlService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 10 服务入口函数 + *鎻忚堪 : 10 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_SessionControlService(void) { @@ -864,22 +864,22 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) uint8 LeDcm_u_DLCheckResult; uint8 LaDcm_u_TempBuffer[6]; TeDcm_h_ResultType LeDcm_u_FinallyResult; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*调试暂用*/ //从TP数据提取 + VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*璋冭瘯鏆傜敤*/ //浠嶵P鏁版嵁鎻愬彇 - LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_10SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_10SubCheckTable); /*检查子服务是否支持*/ + LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_10SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_10SubCheckTable); /*妫鏌ュ瓙鏈嶅姟鏄惁鏀寔*/ if(DCM_NORESULT == LeDcm_u_SubInex) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; /*设置为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; /*璁剧疆涓轰笉鍝嶅簲*/ } else { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC12*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } } @@ -892,9 +892,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } } @@ -906,17 +906,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ECUResetService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_ECUResetService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 11 服务入口函数 + *鎻忚堪 : 11 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_ECUResetService(void) { @@ -924,22 +924,22 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) uint8 LeDcm_u_DLCheckResult; TeDcm_h_ResultType LeDcm_u_FinallyResult; uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; //从TP数据提取 + VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; //浠嶵P鏁版嵁鎻愬彇 - LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_11SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_11SubCheckTable); /*检查子服务是否支持*/ + LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_11SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_11SubCheckTable); /*妫鏌ュ瓙鏈嶅姟鏄惁鏀寔*/ if(DCM_NORESULT == LeDcm_u_SubInex) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; /*设置为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; /*璁剧疆涓轰笉鍝嶅簲*/ } else { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC12*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } @@ -953,9 +953,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } } @@ -975,17 +975,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ReadDidDataService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_ReadDidDataService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 22 服务入口函数 + *鎻忚堪 : 22 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ #if (defined (DID_RECORD) && (DID_RECORD == YES)) uint16 DidList[16]; @@ -1017,59 +1017,59 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) - LeDcm_u_DidNumber = MngDcm_ReadDidCheckDL(VeDcm_h_RqustInfo.DL); /*函数返回值为不合格 或 DID 数目 */ + LeDcm_u_DidNumber = MngDcm_ReadDidCheckDL(VeDcm_h_RqustInfo.DL); /*鍑芥暟杩斿洖鍊间负涓嶅悎鏍 鎴 DID 鏁扮洰 */ if(DCM_CHECK_NOK != LeDcm_u_DidNumber) { - VeDcm_h_RqustInfo.DidCount = LeDcm_u_DidNumber; /*将得到的DID 个数保存到 结构体中 */ + VeDcm_h_RqustInfo.DidCount = LeDcm_u_DidNumber; /*灏嗗緱鍒扮殑DID 涓暟淇濆瓨鍒 缁撴瀯浣撲腑 */ - MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.Did,0,VeDcm_P_DataAddress,1,LeDcm_u_DidNumber*2); /*将具体DID 提取到结构体中*/ + MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.Did,0,VeDcm_P_DataAddress,1,LeDcm_u_DidNumber*2); /*灏嗗叿浣揇ID 鎻愬彇鍒扮粨鏋勪綋涓*/ while(VeDcm_h_RqustInfo.DidCount > _NULL) { - /*将两个did 数组元素转换成 uint16 类型的 did 便于比较 */ + /*灏嗕袱涓猟id 鏁扮粍鍏冪礌杞崲鎴 uint16 绫诲瀷鐨 did 渚夸簬姣旇緝 */ LeDcm_u_CurrentDid = (((uint16)VeDcm_h_RqustInfo.Did[i])<<8) + ((uint16)VeDcm_h_RqustInfo.Did[i+1U]); - i = i + 2U; /*指向下一个did */ + i = i + 2U; /*鎸囧悜涓嬩竴涓猟id */ #if (defined (DID_RECORD) && (DID_RECORD == YES)) DidList[Didcnt++] = LeDcm_u_CurrentDid; #endif - LeDcm_u_DidIndex = MngDcm_DidCheckAvailable(DCM_READ_DIDSUP_COUNT + DCM_PERIODIC_DATA_COUNT,LeDcm_u_CurrentDid,CaDcm_h_ReadDidCheckInfoTable); /*检查是否是否支持该DID*/ /*返回为当前DID索引或不支持*/ + LeDcm_u_DidIndex = MngDcm_DidCheckAvailable(DCM_READ_DIDSUP_COUNT + DCM_PERIODIC_DATA_COUNT,LeDcm_u_CurrentDid,CaDcm_h_ReadDidCheckInfoTable); /*妫鏌ユ槸鍚︽槸鍚︽敮鎸佽DID*/ /*杩斿洖涓哄綋鍓岲ID绱㈠紩鎴栦笉鏀寔*/ if(DCM_NORESULT != LeDcm_u_DidIndex) { - LeDcm_u_SessionCheckResult = MngDcm_DidCheckSession(LeDcm_u_DidIndex,CaDcm_h_ReadDidCheckInfoTable); /*检查当前模式是否支持该DID*/ + LeDcm_u_SessionCheckResult = MngDcm_DidCheckSession(LeDcm_u_DidIndex,CaDcm_h_ReadDidCheckInfoTable); /*妫鏌ュ綋鍓嶆ā寮忔槸鍚︽敮鎸佽DID*/ if(DCM_CHECK_OK == LeDcm_u_SessionCheckResult) { - LeDcm_u_SecurityAccessCheckResult = MngDcm_DidCheckSecurityAccess(LeDcm_u_DidIndex,CaDcm_h_ReadDidCheckInfoTable); /*检查当前权限是否满足*/ + LeDcm_u_SecurityAccessCheckResult = MngDcm_DidCheckSecurityAccess(LeDcm_u_DidIndex,CaDcm_h_ReadDidCheckInfoTable); /*妫鏌ュ綋鍓嶆潈闄愭槸鍚︽弧瓒*/ if(DCM_CHECK_OK == LeDcm_u_SecurityAccessCheckResult) { - LeDcm_u_FuncDealResult = CaDcm_h_ReadDidCheckInfoTable[LeDcm_u_DidIndex].Function(LeDcm_u_SingleDidBuffer,&LeDcm_u_SingleDidDataLength); /*查表调用具体DID处理函数*/ + LeDcm_u_FuncDealResult = CaDcm_h_ReadDidCheckInfoTable[LeDcm_u_DidIndex].Function(LeDcm_u_SingleDidBuffer,&LeDcm_u_SingleDidDataLength); /*鏌ヨ〃璋冪敤鍏蜂綋DID澶勭悊鍑芥暟*/ - VeDcm_h_RqustInfo.DidCount = VeDcm_h_RqustInfo.DidCount - 1U; /*减去已处理的DID*/ + VeDcm_h_RqustInfo.DidCount = VeDcm_h_RqustInfo.DidCount - 1U; /*鍑忓幓宸插鐞嗙殑DID*/ - if(DCM_CHECK_OK !=LeDcm_u_FuncDealResult) /*如果具体处理函数产生NRC*/ + if(DCM_CHECK_OK !=LeDcm_u_FuncDealResult) /*濡傛灉鍏蜂綋澶勭悊鍑芥暟浜х敓NRC*/ { - /*接收返回值作为NRC*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[LeDcm_u_FuncDealResult]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*鎺ユ敹杩斿洖鍊间綔涓篘RC*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[LeDcm_u_FuncDealResult]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; break; } else { - MngDcm_ReadDidDataPack(LeDcm_u_CollectDataBuffer,&LeDcm_u_CollectDataPost,LeDcm_u_CurrentDid,LeDcm_u_SingleDidBuffer,LeDcm_u_SingleDidDataLength); /*将读取的DID数据整合到一个数组*/ + MngDcm_ReadDidDataPack(LeDcm_u_CollectDataBuffer,&LeDcm_u_CollectDataPost,LeDcm_u_CurrentDid,LeDcm_u_SingleDidBuffer,LeDcm_u_SingleDidDataLength); /*灏嗚鍙栫殑DID鏁版嵁鏁村悎鍒颁竴涓暟缁*/ } } else { - /*设置NRC 33*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC 33*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; LeDcm_u_BreakFlag = 1U; break; @@ -1078,42 +1078,42 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - LeDcm_u_NotSupDidNumber++; /*当前不支持加1*/ - VeDcm_h_RqustInfo.DidCount--; /*减去已处理的DID*/ + LeDcm_u_NotSupDidNumber++; /*褰撳墠涓嶆敮鎸佸姞1*/ + VeDcm_h_RqustInfo.DidCount--; /*鍑忓幓宸插鐞嗙殑DID*/ } } else { - LeDcm_u_NotSupDidNumber++; /*当前不支持加1 不支持的DID 暂时做成当前不支持*/ - VeDcm_h_RqustInfo.DidCount--; /*减去已处理的DID*/ + LeDcm_u_NotSupDidNumber++; /*褰撳墠涓嶆敮鎸佸姞1 涓嶆敮鎸佺殑DID 鏆傛椂鍋氭垚褰撳墠涓嶆敮鎸*/ + VeDcm_h_RqustInfo.DidCount--; /*鍑忓幓宸插鐞嗙殑DID*/ } } - /*所有DID处理完成*/ + /*鎵鏈塂ID澶勭悊瀹屾垚*/ if(0U==LeDcm_u_BreakFlag) { if(LeDcm_u_NotSupDidNumber == LeDcm_u_DidNumber) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - /*设置NRC 31*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC 31*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } } else { LeDcm_u_CollectDataBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - SetCanTp_TxBuffer(LeDcm_u_CollectDataPost,LeDcm_u_CollectDataBuffer); /*调用接口发送响应数据*/ + SetCanTp_TxBuffer(LeDcm_u_CollectDataPost,LeDcm_u_CollectDataBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultPosRsp; } } @@ -1124,9 +1124,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } @@ -1134,17 +1134,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ReadMemoryDataService + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_ReadMemoryDataService - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 23 服务入口函数 + *鎻忚堪 : 23 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2016-12-25 + *缂栬緫鏃堕棿 : 2016-12-25 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_ReadMemoryDataService(void) @@ -1152,17 +1152,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_SecurityAccessService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_SecurityAccessService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 27 服务入口函数 + *鎻忚堪 : 27 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_SecurityAccessService(void) { @@ -1170,22 +1170,22 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) uint8 LeDcm_u_DLCheckResult; TeDcm_h_ResultType LeDcm_u_FinallyResult; uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; ; /*从TP数据提取*/ + VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; ; /*浠嶵P鏁版嵁鎻愬彇*/ - LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_27SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_27SubCheckTable); /*检查子服务是否支持*/ + LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_27SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_27SubCheckTable); /*妫鏌ュ瓙鏈嶅姟鏄惁鏀寔*/ if(DCM_NORESULT == LeDcm_u_SubIndex) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC12*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } @@ -1199,9 +1199,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } } @@ -1213,17 +1213,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_CommunicationControlService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_CommunicationControlService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 28 服务入口函数 + *鎻忚堪 : 28 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_CommunicationControlService(void) { @@ -1231,22 +1231,22 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) uint8 LeDcm_u_DLCheckResult; TeDcm_h_ResultType LeDcm_u_FinallyResult; uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; //从TP数据提取 + VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; //浠嶵P鏁版嵁鎻愬彇 - LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_28SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_28SubCheckTable); /*检查子服务是否支持*/ + LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_28SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_28SubCheckTable); /*妫鏌ュ瓙鏈嶅姟鏄惁鏀寔*/ if(DCM_NORESULT == LeDcm_u_SubIndex) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC12*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } } @@ -1259,9 +1259,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } } @@ -1273,17 +1273,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_WriteDidDataService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_WriteDidDataService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 2E 服务入口函数 + *鎻忚堪 : 2E 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_WriteDidDataService(void) { @@ -1301,43 +1301,43 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) TeDcm_h_ResultType LeDcm_u_FinallyResult; - MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.Did,0,VeDcm_P_DataAddress,1,2); /*将具体DID 提取到结构体中*/ + MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.Did,0,VeDcm_P_DataAddress,1,2); /*灏嗗叿浣揇ID 鎻愬彇鍒扮粨鏋勪綋涓*/ - LeDcm_u_CurrentDid = (((uint16)VeDcm_h_RqustInfo.Did[0])<<8) + ((uint16)VeDcm_h_RqustInfo.Did[1]); /*将两个did 数组元素转换成 uint16 类型的 did 便于比较 */ + LeDcm_u_CurrentDid = (((uint16)VeDcm_h_RqustInfo.Did[0])<<8) + ((uint16)VeDcm_h_RqustInfo.Did[1]); /*灏嗕袱涓猟id 鏁扮粍鍏冪礌杞崲鎴 uint16 绫诲瀷鐨 did 渚夸簬姣旇緝 */ #if (defined (DID_RECORD) && (DID_RECORD == YES)) DidList[Didcnt++] = LeDcm_u_CurrentDid; #endif - LeDcm_u_DidIndex = MngDcm_DidCheckAvailable(DCM_WRITE_DIDSUP_COUNT,LeDcm_u_CurrentDid,CaDcm_h_WriteDidCheckInfoTable); /*检查是否是否支持该DID*/ /*返回为当前DID索引或不支持*/ + LeDcm_u_DidIndex = MngDcm_DidCheckAvailable(DCM_WRITE_DIDSUP_COUNT,LeDcm_u_CurrentDid,CaDcm_h_WriteDidCheckInfoTable); /*妫鏌ユ槸鍚︽槸鍚︽敮鎸佽DID*/ /*杩斿洖涓哄綋鍓岲ID绱㈠紩鎴栦笉鏀寔*/ if(DCM_NORESULT != LeDcm_u_DidIndex) { - if((LeDcm_u_CurrentDid == 0xF15A)&&(VeDcm_h_RqustInfo.DL == 33)) /* 适应大明Boot软件 */ + if((LeDcm_u_CurrentDid == 0xF15A)&&(VeDcm_h_RqustInfo.DL == 33)) /* 閫傚簲澶ф槑Boot杞欢 */ { LeDcm_u_DLCheckResult = DCM_CHECK_OK; } else - LeDcm_u_DLCheckResult = MngDcm_WriteDidCheckDL(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*检查DL是否满足要求 */ + LeDcm_u_DLCheckResult = MngDcm_WriteDidCheckDL(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*妫鏌L鏄惁婊¤冻瑕佹眰 */ if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) { - MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.WriteData,0,VeDcm_P_DataAddress,3,CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].DataLength); /*将具体DID 提取到结构体中*/ + MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.WriteData,0,VeDcm_P_DataAddress,3,CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].DataLength); /*灏嗗叿浣揇ID 鎻愬彇鍒扮粨鏋勪綋涓*/ LeDcm_u_DidDataLength = CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].DataLength; - LeDcm_u_SessionCheckResult = MngDcm_DidCheckSession(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*检查当前模式是否支持该DID*/ + LeDcm_u_SessionCheckResult = MngDcm_DidCheckSession(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*妫鏌ュ綋鍓嶆ā寮忔槸鍚︽敮鎸佽DID*/ if(DCM_CHECK_OK == LeDcm_u_SessionCheckResult) { - LeDcm_u_SecurityAccessCheckResult = MngDcm_DidCheckSecurityAccess(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*检查当前权限是否满足*/ + LeDcm_u_SecurityAccessCheckResult = MngDcm_DidCheckSecurityAccess(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*妫鏌ュ綋鍓嶆潈闄愭槸鍚︽弧瓒*/ if(DCM_CHECK_OK == LeDcm_u_SecurityAccessCheckResult) { - LeDcm_u_FuncDealResult = CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].Function(VeDcm_h_RqustInfo.WriteData,&LeDcm_u_DidDataLength); /*查表调用具体DID处理函数*/ + LeDcm_u_FuncDealResult = CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].Function(VeDcm_h_RqustInfo.WriteData,&LeDcm_u_DidDataLength); /*鏌ヨ〃璋冪敤鍏蜂綋DID澶勭悊鍑芥暟*/ - if(DCM_CHECK_OK !=LeDcm_u_FuncDealResult) /*如果具体处理函数产生NRC*/ + if(DCM_CHECK_OK !=LeDcm_u_FuncDealResult) /*濡傛灉鍏蜂綋澶勭悊鍑芥暟浜х敓NRC*/ { - /*接收返回值作为NRC*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[LeDcm_u_FuncDealResult]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*鎺ユ敹杩斿洖鍊间綔涓篘RC*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[LeDcm_u_FuncDealResult]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } @@ -1347,16 +1347,16 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) LeDcm_u_CollectDataBuffer[1] = VeDcm_h_RqustInfo.Did[0]; LeDcm_u_CollectDataBuffer[2] = VeDcm_h_RqustInfo.Did[1]; - SetCanTp_TxBuffer(3U,LeDcm_u_CollectDataBuffer); /*调用接口发送响应数据*/ + SetCanTp_TxBuffer(3U,LeDcm_u_CollectDataBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ } } else { - /*设置NRC 33*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC 33*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } @@ -1365,14 +1365,14 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - /*设置NRC 31*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC 31*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } @@ -1382,9 +1382,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC 13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC 13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } @@ -1395,15 +1395,15 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - /*设置NRC31*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC31*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } @@ -1413,66 +1413,66 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_WriteMemoryDataService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_WriteMemoryDataService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 3D 服务入口函数 + *鎻忚堪 : 3D 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2016-12-25 + *缂栬緫鏃堕棿 : 2016-12-25 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_WriteMemoryDataService(void) { TeDcm_h_ResultType LeDcm_u_FinallyResult; - /*设置NRC22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC22*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ return LeDcm_u_FinallyResult; } /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_DynamicaDefineIdentifier(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_DynamicaDefineIdentifier(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 2C 服务入口函数 + *鎻忚堪 : 2C 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2016-12-25 + *缂栬緫鏃堕棿 : 2016-12-25 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_DynamicaDefineIdentifier(void) { TeDcm_h_ResultType LeDcm_u_FinallyResult; - /*设置NRC22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC22*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ return LeDcm_u_FinallyResult; } /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineControlService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_RoutineControlService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 31 服务入口函数 + *鎻忚堪 : 31 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_RoutineControlService(void) { @@ -1486,12 +1486,12 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Rid = (((uint16)VeDcm_P_DataAddress[2])<<8) + ((uint16)VeDcm_P_DataAddress[3]); /*将具体RID 提取到结构体中*/ - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*sub*/ //从TP数据提取 - LeDcm_u_RidIndex = MngDcm_RidCheckAvailable(DCM_31RID_COUNT,VeDcm_h_RqustInfo.Rid,CaDcm_h_RidCheckInfoTable); /*检查是否是否支持该RID*/ /*返回为当前RID索引或不支持*/ + VeDcm_h_RqustInfo.Rid = (((uint16)VeDcm_P_DataAddress[2])<<8) + ((uint16)VeDcm_P_DataAddress[3]); /*灏嗗叿浣揜ID 鎻愬彇鍒扮粨鏋勪綋涓*/ + VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*sub*/ //浠嶵P鏁版嵁鎻愬彇 + LeDcm_u_RidIndex = MngDcm_RidCheckAvailable(DCM_31RID_COUNT,VeDcm_h_RqustInfo.Rid,CaDcm_h_RidCheckInfoTable); /*妫鏌ユ槸鍚︽槸鍚︽敮鎸佽RID*/ /*杩斿洖涓哄綋鍓峈ID绱㈠紩鎴栦笉鏀寔*/ if(DCM_NORESULT != LeDcm_u_RidIndex) { - LeDcm_u_SessionCheckResult = MngDcm_RidCheckSession(LeDcm_u_RidIndex,CaDcm_h_RidCheckInfoTable); /*检查当前模式是否支持该RID*/ + LeDcm_u_SessionCheckResult = MngDcm_RidCheckSession(LeDcm_u_RidIndex,CaDcm_h_RidCheckInfoTable); /*妫鏌ュ綋鍓嶆ā寮忔槸鍚︽敮鎸佽RID*/ if(DCM_CHECK_OK == LeDcm_u_SessionCheckResult) { LeDcm_u_SecurityAccessCheckResult = MngDcm_RidCheckSecurityAccess(LeDcm_u_RidIndex,CaDcm_h_RidCheckInfoTable); @@ -1500,19 +1500,19 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) LeDcm_u_RidSubIndex = MngDcm_RidSubAvailable(LeDcm_u_RidIndex,VeDcm_h_RqustInfo.Sub,DCM_RIDFF02_SUB_COUNT,CaDcm_h_RidCheckInfoTable); if(DCM_NORESULT != LeDcm_u_RidSubIndex) { - LeDcm_u_DLCheckResult = MngDcm_RidCheckDL(LeDcm_u_RidIndex,LeDcm_u_RidSubIndex,CaDcm_h_RidCheckInfoTable); /*检查DL是否满足要求 */ + LeDcm_u_DLCheckResult = MngDcm_RidCheckDL(LeDcm_u_RidIndex,LeDcm_u_RidSubIndex,CaDcm_h_RidCheckInfoTable); /*妫鏌L鏄惁婊¤冻瑕佹眰 */ //LeDcm_u_DLCheckResult = DCM_CHECK_OK; //boot add //todo if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) { - LeDcm_u_FinallyResult = CaDcm_h_RidCheckInfoTable[LeDcm_u_RidIndex].RidSubTable[LeDcm_u_RidSubIndex].Function(); /*调用对应子函数处理 */ + LeDcm_u_FinallyResult = CaDcm_h_RidCheckInfoTable[LeDcm_u_RidIndex].RidSubTable[LeDcm_u_RidSubIndex].Function(); /*璋冪敤瀵瑰簲瀛愬嚱鏁板鐞 */ } else { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } @@ -1521,14 +1521,14 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } @@ -1536,9 +1536,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } } @@ -1547,14 +1547,14 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } @@ -1565,14 +1565,14 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7E]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7E]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } @@ -1584,17 +1584,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_TesterPresentService(void) + *鍑芥暟鍚嶇О : TeDcm_h_ResultType MngDcm_TesterPresentService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 3E 服务入口函数 + *鎻忚堪 : 3E 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_TesterPresentService(void) { @@ -1602,22 +1602,22 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) uint8 LeDcm_u_DLCheckResult; TeDcm_h_ResultType LeDcm_u_FinallyResult; uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*调试暂用*/ //从TP数据提取 + VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*璋冭瘯鏆傜敤*/ //浠嶵P鏁版嵁鎻愬彇 - LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_3ESUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_3ESubCheckTable); /*检查子服务是否支持*/ + LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_3ESUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_3ESubCheckTable); /*妫鏌ュ瓙鏈嶅姟鏄惁鏀寔*/ if(DCM_NORESULT == LeDcm_u_SubInex) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC12*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } } @@ -1630,9 +1630,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } } @@ -1645,17 +1645,17 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) /****************************************************************************** - *函数名称 :TeDcm_h_ResultType MngDcm_DTCSettingControlService(void) + *鍑芥暟鍚嶇О :TeDcm_h_ResultType MngDcm_DTCSettingControlService(void) - *参数 : void + *鍙傛暟 : void - *返回值 : LeDcm_u_FinallyResult 处理结果 + *杩斿洖鍊 : LeDcm_u_FinallyResult 澶勭悊缁撴灉 - *描述 : 85 服务入口函数 + *鎻忚堪 : 85 鏈嶅姟鍏ュ彛鍑芥暟 - *编辑时间 : 2015-10-10 + *缂栬緫鏃堕棿 : 2015-10-10 - *备注 : + *澶囨敞 : *****************************************************************************/ TeDcm_h_ResultType MngDcm_DTCSettingControlService(void) { @@ -1663,39 +1663,39 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) uint8 LeDcm_u_DLCheckResult; TeDcm_h_ResultType LeDcm_u_FinallyResult; uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*从TP数据提取*/ + VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*浠嶵P鏁版嵁鎻愬彇*/ if(MngDcm_GetDiagnosticSession() != DCM_EXTEND_SESSION) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ return CeDcm_e_ResultNoRsp; } else { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7F]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7F]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ return CeDcm_e_ResultNoRsp; } } - LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_85SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_85SubCheckTable); /*检查子服务是否支持*/ + LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_85SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_85SubCheckTable); /*妫鏌ュ瓙鏈嶅姟鏄惁鏀寔*/ if(DCM_NORESULT == LeDcm_u_SubIndex) { if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ + SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹 0鏁版嵁涓轰笉鍝嶅簲*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; } else { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ + /*璁剧疆NRC12*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ + LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*璐熷搷搴*/ } } @@ -1708,9 +1708,9 @@ TeDcm_h_ResultType MngDcm_SessionControlService(void) } else { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ + /*璁剧疆NRC13*/ + MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*鏁寸悊璐熷搷搴旀暟鎹*/ + SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*璋冪敤鎺ュ彛鍙戦佸搷搴旀暟鎹*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; } } diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.h b/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.h index 1de8fbd..fbdc237 100644 --- a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.h +++ b/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.h @@ -18,7 +18,7 @@ #define SID_RECORD ( NO ) /* 娴嬭瘯鐢紝璁板綍SID璇锋眰鍒楄〃 */ #define DAMING_CAN_BOOT ( NO ) /*澶ф槑鍙湁CAN鍗囩骇鍗忚 */ -#define DCM_SUPPORTSID_COUNT 16U /*鏀寔鐨凷ID鏁扮洰*/ +#define DCM_SUPPORTSID_COUNT 12U /*鏀寔鐨凷ID鏁扮洰*/ #define DCM_10SUB_COUNT 3U /*10鏈嶅姟瀛愭湇鍔′釜鏁*/