206 lines
7.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*@ 处根据实际情况填写相关信息,将@字符以及这条提示语句去掉 */
#ifndef DCM_CFG_H
#define DCM_CFG_H
/******************************************************************************
* Description: : Include File Section
******************************************************************************/
#include"Dcm_App.h"
/******************************************************************************
* Description: : Macro Description Section
******************************************************************************/
#define YES 1
#define NO 0
#define DID_RECORD ( NO ) /* 测试用记录DID请求列表 */
#define SID_RECORD ( NO ) /* 测试用记录SID请求列表 */
#define DAMING_CAN_BOOT ( NO ) /*大明只有CAN升级协议 */
#define DCM_SUPPORTSID_COUNT 12U /*支持的SID数目*/
#define DCM_10SUB_COUNT 3U /*10服务子服务个数*/
#define DCM_11SUB_COUNT 2U /*11服务子服务个数*/
#define DCM_19SUB_COUNT 3U /*19服务子服务个数*/
#define DCM_27SUB_COUNT 2U /*27服务子服务个数*/
#define DCM_28SUB_COUNT 3U /*28服务子服务个数*/
#define DCM_31RID_COUNT 4U /*31服务子服务个数*/
#define DCM_RIDFF02_SUB_COUNT 3U /*31 FF02 支持的子服务个数*/
#define DCM_RIDFF00_SUB_COUNT 3U /*31 FF00 支持的子服务个数*/
#define DCM_RIDFF01_SUB_COUNT 3U /*31 FF01 支持的子服务个数*/
#define DCM_RIDF001_SUB_COUNT 3U /* 31 F001 支持的子服务个数 */
#define DCM_3ESUB_COUNT 1U /*3E服务子服务个数*/
#define DCM_85SUB_COUNT 2U /*85服务子服务个数*/
#define DCM_2CSUB_COUNT 2U /*2C服务子服务个数*/
#define DCM_14DTCGROUP_COUNT 3U /*14服务支持的DTC组个数*/
#if (defined (DAMING_CAN_BOOT) && (DAMING_CAN_BOOT == YES))
#define DCM_READ_DIDSUP_COUNT 19U /*22 服务支持的DID 个数 */
#else
#define DCM_READ_DIDSUP_COUNT 14U /* 22 服务支持的DID 个数 */
#endif
#define DCM_IO_DIDSUP_COUNT 5U /*2F 服务支持的DID 个数*/
#define DCM_PERIODIC_DATA_COUNT 0U /*2A 服务支持DID个数 */
#define DCM_WRITE_DIDSUP_COUNT 2U /*2E 服务支持的DID 个数*/
#define DCM_ONEDID_MAXDATALENGTH 20U /*22 单个DID 数据最大长度*/
/******************************************************************************
* Description: : Structure Type Declaration Section
******************************************************************************/
#define ROUTINECTRL_DID_CheckProgrammingIntegrity 0x0202
#define ROUTINECTRL_DID_CheckProgrammingPreconditions 0x0203
#define ROUTINECTRL_DID_CheckProgrammingDependencies 0xFF01
#define ROUTINECTRL_DID_EraseMemory 0xFF00
typedef TeDcm_h_ResultType (*ServerDealfunc)(void);
/*SID 条件检查项 */
typedef struct
{
uint8 SupportSession; /* 支持的会话 模式 */
uint8 SupportSecurityAccess; /* 支持的安全权限 */
uint8 SupportRequestAddress; /* 支持的请求方式 */
uint8 MinDL; /*SID 对应的最小DL*/
uint8 SubCount; /* 子服务个数 */
uint8 Sid; /*SID */
ServerDealfunc SidFunction;
}TsDcm_h_SidCheckInfoType;
typedef TeDcm_h_ResultType (*SubDealfunc)(void );
typedef TeDcm_h_ResultType (*SubDealfuncWithPara)(uint8 );
/* 子服务信息列表结构体 */
typedef struct
{
uint8 Sub; /* 子服务 */
uint8 DL; /* 子服务 对应的正确DL */
SubDealfunc SubFunction; /* 子服务 对应函数的处理函数 */
}TsDcm_h_SubCheckType;
typedef struct
{
uint8 Sub; /* 子服务 */
uint8 DL; /* 子服务 对应的正确DL */
SubDealfuncWithPara SubFunction; /* 子服务 对应函数的处理函数 */
}TsDcm_h_WithParaSubCheckType;
/* 子服务信息列表结构体 */
typedef struct
{
uint8 Sub; /* 子服务 */
uint8 DL; /* 子服务 对应的正确DL */
SubDealfunc SubFunction; /* 子服务 对应函数的处理函数 */
}TsDcm_h_DtcCheckType;
typedef uint8 (*DidDealfunc)(uint8* LeDcm_u_DataAddress,uint8* LeDcm_u_DataLength);
/* 22 2E 2A服务 DID 信息列表结构体 */
typedef struct
{
uint8 SupportSession; /* 支持的会话模式 */
uint8 SupportSecurityAccess; /* 支持的安全权限 */
uint8 DataLength; /* 数据长度 */
uint16 Did; /* 具体DID */
DidDealfunc Function; /* DID 对应函数的处理函数 */
}TsDcm_h_DidCheckType;
typedef struct
{
uint8 Did;
uint8 TransmissionMode;
uint16 TmCount;
}TsDcm_h_2APeriodicDidServe;
typedef TeDcm_h_ResultType (*DtcDealfunc)(uint32 LeDcm_DtcGroup);
/*14 服务信息列表结构体 */
#if 0
typedef struct
{
uint32 Dtc; /* DTC组 */
DtcDealfunc CleanFunction; /* 子服务 对应函数的处理函数 */
}TsDcm_h_DtcCheckType;
#endif
typedef TeDcm_h_ResultType (*RidDealfunc)(void);
/*Rid 支持的子服务及处理函数信息的列表结构体*/
typedef struct
{
uint8 Sub; /* 子服务 */
uint8 DL; /* 服务 对应的正确DL */
RidDealfunc Function; /* 服务 对应函数的处理函数 */
}TsDcm_h_RidSubCheckType;
/* 31服务 RID 信息列表结构体 */
typedef struct
{
uint8 SupportSession; /* 支持的会话模式 */
uint8 SupportSecurityAccess; /* 支持的安全权限 */
uint16 Rid; /* Rid*/
const TsDcm_h_RidSubCheckType* RidSubTable; /*Rid 支持的子服务列表 */
}TsDcm_h_RidCheckType;
typedef struct
{
uint8 write;
uint8 data;
}TsDcm_h_IO_parameter_t;
/******************************************************************************
* Description: : Global Variable Declaration Section
******************************************************************************/
extern const TsDcm_h_SidCheckInfoType CaDcm_h_SidCheckInfoTable[DCM_SUPPORTSID_COUNT];
/******************************************************************************
* Description: : Global Function Prototype Declaration
******************************************************************************/
extern uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid);
extern uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex);
extern uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex);
extern uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex);
extern uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint16 LeDcm_u_DL);
extern TeDcm_h_ResultType MngDcm_SessionControlService(void);
extern TeDcm_h_ResultType MngDcm_ECUResetService(void);
extern TeDcm_h_ResultType MngDcm_CleanDTCService(void);
extern TeDcm_h_ResultType MngDcm_ReportDTCService(void);
extern TeDcm_h_ResultType MngDcm_ReadDidDataService(void);
extern TeDcm_h_ResultType MngDcm_SecurityAccessService(void);
extern TeDcm_h_ResultType MngDcm_CommunicationControlService(void);
extern TeDcm_h_ResultType MngDcm_WriteDidDataService(void);
extern TeDcm_h_ResultType MngDcm_RoutineControlService(void);
extern TeDcm_h_ResultType MngDcm_TesterPresentService(void);
extern TeDcm_h_ResultType MngDcm_DTCSettingControlService(void);
extern TeDcm_h_ResultType MngDcm_ReadMemoryDataService(void);
extern TeDcm_h_ResultType MngDcm_SecurityAccessService(void);
extern TeDcm_h_ResultType MngDcm_WriteMemoryDataService(void);
extern TeDcm_h_ResultType MngDcm_ReadDataByIdentifier(void);
extern TeDcm_h_ResultType MngDcm_DynamicaDefineIdentifier(void);
#endif