123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- #ifndef __UDSINTERFACE_G
- #define __UDSINTERFACE_G
-
- typedef unsigned char boolean;
- typedef signed char sint8;
- typedef unsigned char uint8;
- typedef signed short sint16;
- typedef unsigned short uint16;
- typedef signed long sint32;
- typedef unsigned long uint32;
- typedef float float32;
- typedef unsigned long uint8_least;
- typedef unsigned long uint16_least;
- typedef unsigned long uint32_least;
- typedef signed long sint8_least;
- typedef signed long sint16_least;
- typedef signed long sint32_least;
-
- #define _UDS_INDEX_ERROR_GENERALREJECT 0x10
- #define _UDS_INDEX_ERROR_SERVICENOTSUPPORTED 0x11
- #define _UDS_INDEX_ERROR_SUBFUNCTIONNOTSUPPORTED 0x12
- #define _UDS_INDEX_ERROR_INVALIDFORMAT 0x13
- #define _UDS_INDEX_ERROR_BUSYREPEATREQUEST 0x21
- #define _UDS_INDEX_ERROR_CONDITIONNOTCORRECT 0x22
- #define _UDS_INDEX_ERROR_ROUTINENOTCOMPLETEORSERVICEINPROCESS 0x23
- #define _UDS_INDEX_ERROR_REQUESTSEQUENCEERROR 0x24
- #define _UDS_INDEX_ERROR_REQUESTOUTOFRANGE 0x31
- #define _UDS_INDEX_ERROR_SECURITYACCESSDENIED 0x33
- #define _UDS_INDEX_ERROR_INVALIDKEY 0x35
- #define _UDS_INDEX_ERROR_EXCEEDNUMBEROFATTEMPS 0x36
- #define _UDS_INDEX_ERROR_TIMEDELAYNOTEXPIRED 0x37
- #define _UDS_INDEX_ERROR_DOWNLOADNOTACCEPTED 0x40
- #define _UDS_INDEX_ERROR_IMPROPERDOWNLOADTYPE 0x41
- #define _UDS_INDEX_ERROR_CANNOTDOWNLOADTOSPECIFIEDADDRESS 0x42
- #define _UDS_INDEX_ERROR_CANNOTDOWNLOADNUMBEROFBYTESREQUESTED 0x43
- #define _UDS_INDEX_ERROR_UPLOADNOTACCEPTED 0x50
- #define _UDS_INDEX_ERROR_IMPROPERUPLOADTYPE 0x51
- #define _UDS_INDEX_ERROR_CANNOTUPLOADTOSPECIFIEDADDRESS 0x52
- #define _UDS_INDEX_ERROR_CANNOTUPLOADNUMBEROFBYTESREQUESTED 0x53
- #define _UDS_INDEX_ERROR_BLOCKTRANSFERDATACHECKSUMERROR 0x77
- #define _UDS_INDEX_ERROR_SUBFUNCTIONNOTSUPPORTEDINACTIVESESSION 0x7E
- #define _UDS_INDEX_ERROR_SERVICENOTSUPPORTEDINACTIVESESSION 0x7F
- #define _UDS_INDEX_ERROR_SERVICENOTSUPPORTEDINACTIVEDIAGNOSTICMODE 0x80
- #define _UDS_INDEX_ERROR_CHECKSUMERROR 0xFA
- #define _UDS_INDEX_ERROR_ECUERASINGFLASH 0xFB
- #define _UDS_INDEX_ERROR_ECUPROGRAMMINGFLASH 0xFC
- #define _UDS_INDEX_ERROR_ERASINGERROR 0xFD
- #define _UDS_INDEX_ERROR_PROGRAMMINGERROR 0xFE
-
-
- #define _UDS_NUM_MODE_MAX 3
- #define _UDS_INDEX_SEC_LOCK 0
- #define _UDS_INDEX_SEC_EXTENTED 1
- #define _UDS_INDEX_SEC_ANTITHEFT 2
- #define _UDS_INDEX_SEC_PROGRAMMING 3
-
- #define _UDS_ROUTINECONTROL_START 0x01
- #define _UDS_ROUTINECONTROL_STOP 0x02
- #define _UDS_ROUTINECONTROL_REQUESTRESULTS 0x03
-
- #define _UDS_INDEX_COMMAND_NULL 0
-
- #define _UDS_INDEX_COMMAND_STARTDIAGNOSTICSESSION 0x10U
- #define _UDS_INDEX_COMMAND_ECURESET 0x11U
- #define _UDS_INDEX_COMMAND_SECURITYACCESS 0x27U
- #define _UDS_INDEX_COMMAND_TESTERPRESENT 0x3EU
- #define _UDS_INDEX_COMMAND_ACCESSTIMINGPARAMERTERS 0x83U
-
- #define _UDS_INDEX_COMMAND_READDATABYIDENTIFIER 0x22U
- #define _UDS_INDEX_COMMAND_READMEMORYBYADDRESS 0x23U
- #define _UDS_INDEX_COMMAND_READSCALINGDATABYIDENTIFIER 0x24U
- #define _UDS_INDEX_COMMAND_READDATABYPERIODICIDENTIFIER 0x2AU
- #define _UDS_INDEX_COMMAND_DYNAMICALLYDEFINEDATAIDENTIFIER 0x2CU
- #define _UDS_INDEX_COMMAND_WRITEDATABYIDENTIFIER 0x2EU
- #define _UDS_INDEX_COMMAND_WRITEMEMORYBYADDRESS 0x3DU
-
- #define _UDS_INDEX_COMMAND_INPUTOUTPUTCONTROL 0x2FU
-
- #define _UDS_INDEX_COMMAND_READDTCINFORMATION 0x19U
- #define _UDS_INDEX_COMMAND_CLEARDIAGNOSTICINFORMATION 0x14U
- #define _UDS_INDEX_COMMAND_CONTROLDTCSETTING 0x85U
-
- #define _UDS_INDEX_COMMAND_REQUESTUPLOAD 0x35U
- #define _UDS_INDEX_COMMAND_REQUESTDOWNLOAD 0x34U
- #define _UDS_INDEX_COMMAND_TRANSFERDATA 0x36U
- #define _UDS_INDEX_COMMAND_REQUESTTRANSFEREXIT 0x37U
-
- #define _UDS_INDEX_COMMAND_ROUTINECONTROL 0x31U
-
- #define _UDS_INDEX_COMMAND_COMMUNICATIONCONTROL 0x28U
- #define _UDS_INDEX_POSRESP_COMMAND 0x40U
-
- #define _UDS_DID_MASK_READ 0x01
- #define _UDS_DID_MASK_WRITE 0x02
- #define _UDS_DID_MASK_CONTROL 0x04
- #define _UDS_DID_MASK_ENDIANNESS 0x80
-
- #define _UDS_INDEX_DIAG_DEFAULT 0x01
- #define _UDS_INDEX_DIAG_PROGRAMMING 0x02
- #define _UDS_INDEX_DIAG_EXTENDED 0x03
- typedef uint8 (*pFunc_UDSIOCtrlCallback)(uint16 numRecvLenUW, uint8 * datRecvBuffUBP, uint16 * numSendLenUWP, uint8 * datSendBuffUBP);
- typedef struct
- {
- uint8 DataTypeUB;
- uint16 idxDataIDUW;
- uint32 addrDataUI;
- float32 ConvertFactor;
- float32 ConvertOffset;
- uint16 ConvertnumSizeUW;
- uint16 numSizeUW;
- boolean idxByteOrderUB;
- uint8 infoMaskReadUW;
- uint8 infoMaskWriteUW;
- uint8 infoMaskIOCtrlUW;
- pFunc_UDSIOCtrlCallback pIOCtrlCallback;
- } UDSInterface_infoDIDS_TYPE;
- typedef struct
- {
- uint16 numDIDUW;
- const UDSInterface_infoDIDS_TYPE * addrEnvDataSP;
- } UDSInterface_infoDIDConfS_TYPE;
-
- typedef uint8 (*pFunc_UDSRoutineCallback)(uint16 numRecvLenUW, uint8 * datRecvBuffUBP, uint16 * numSendLenUWP, uint8 * datSendBuffUBP);
- typedef struct
- {
- uint16 idxRoutineIDUW;
- uint16 infoMaskUW;
- pFunc_UDSRoutineCallback pRoutineCallback;
- } UDSInterface_infoRoutineS_TYPE;
- typedef struct
- {
- uint8 numRoutineUB;
- const UDSInterface_infoRoutineS_TYPE * addrRoutineSP;
- } UDSInterface_infoRoutineConfS_TYPE;
- typedef struct
- {
- uint8 numParamIDUB;
- const uint16 * addrSnapshotDIDSP;
- } UDSInterface_infoSnapshotConfS_TYPE;
- uint8 UDSInterface_CheckServiceCondition(uint8 idxSIDUB, uint8 stSubFuncUB);
- void UDSInterface_GetSeed(uint8 idxSecLvlUB, uint8 * dataSeedUBP);
- void UDSInterface_GetKey(uint8 idxSecLvlUB, uint8 * dataSeedUBP, uint8 * dataKeyUBP);
- uint8 UDSInterface_RoutineTestCallback(uint16 numRecvLenUW, uint8 * datRecvBuffUBP, uint16 * numSendLenUWP, uint8 * datSendBuffUBP);
- uint8 UDSInterface_IOControlCallback(uint16 numRecvLenUW, uint8 * datRecvBuffUBP, uint16 * numSendLenUWP, uint8 * datSendBuffUBP);
- extern const UDSInterface_infoDIDConfS_TYPE UDSInterface_infoDIDConfS;
- extern const UDSInterface_infoRoutineConfS_TYPE UDSInterface_infoRoutineConfS;
- extern const UDSInterface_infoSnapshotConfS_TYPE UDSInterface_infoSnapshotConfS;
- #endif
|