1 /* -------------------------------- Arctic Core ------------------------------
\r
2 * Arctic Core - the open source AUTOSAR platform http://arccore.com
\r
4 * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
\r
6 * This source code is free software; you can redistribute it and/or modify it
\r
7 * under the terms of the GNU General Public License version 2 as published by the
\r
8 * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
\r
10 * This program is distributed in the hope that it will be useful, but
\r
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
\r
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
\r
14 * -------------------------------- Arctic Core ------------------------------*/
\r
26 #define DEM_MODULE_ID MODULE_ID_DEM
\r
27 #define DEM_VENDOR_ID 1
\r
29 #define DEM_SW_MAJOR_VERSION 1
\r
30 #define DEM_SW_MINOR_VERSION 0
\r
31 #define DEM_SW_PATCH_VERSION 0
\r
32 #define DEM_AR_MAJOR_VERSION 3
\r
33 #define DEM_AR_MINOR_VERSION 0
\r
34 #define DEM_AR_PATCH_VERSION 1
\r
36 /** @req DCM067.Cfg-files */
\r
37 #include "Dem_Types.h"
\r
38 #include "Dem_Cfg.h"
\r
39 #include "Dem_Lcfg.h"
\r
40 #include "Dem_IntErrId.h" /** @req DEM115 */
\r
41 #include "Dem_IntEvtId.h"
\r
43 /** @req DEM153 */ /** @req DEM154 */ /* Realized in Dem_IntErrId.h and Dem_IntEvtId.h */
\r
44 // #include "Rte_Dem.h"
\r
47 #if (DEM_DEV_ERROR_DETECT == STD_ON)
\r
48 // Error codes reported by this module defined by AUTOSAR /** @req DEM116 */ /** @req DEM173 */
\r
49 #define DEM_E_PARAM_CONFIG 0x10
\r
50 #define DEM_E_PARAM_ADDRESS 0x11
\r
51 #define DEM_E_PARAM_DATA 0x12
\r
52 #define DEM_E_PARAM_LENGTH 0x13
\r
53 #define DEM_E_UNINIT 0x20
\r
54 #define DEM_E_NODATAAVAILABLE 0x30
\r
56 // Other error codes reported by this module
\r
57 #define DEM_E_CONFIG_PTR_INVALID 0x40
\r
58 #define DEM_E_EVENT_STATUS_BUFF_FULL 0x41
\r
59 #define DEM_E_EXT_DATA_TOO_BIG 0x42
\r
60 #define DEM_E_PRE_INIT_EXT_DATA_BUFF_FULL 0x43
\r
61 #define DEM_E_PRI_MEM_EVENT_BUFF_FULL 0x44
\r
62 #define DEM_E_PRI_MEM_EXT_DATA_BUFF_FULL 0x45
\r
64 #define DEM_E_FF_TOO_BIG 0x46
\r
65 #define DEM_E_PRE_INIT_FF_DATA_BUFF_FULL 0x47
\r
66 #define DEM_E_PRI_MEM_FF_DATA_BUFF_FULL 0x48
\r
68 #define DEM_E_UNEXPECTED_EXECUTION 0xfe
\r
69 #define DEM_E_NOT_IMPLEMENTED_YET 0xff
\r
72 // Service ID in this module
\r
73 #define DEM_PREINIT_ID 0x01
\r
74 #define DEM_INIT_ID 0x02
\r
75 #define DEM_SHUTDOWN_ID 0x03
\r
76 #define DEM_SETEVENTSTATUS_ID 0x04
\r
77 #define DEM_RESETEVENTSTATUS_ID 0x05
\r
78 #define DEM_SETOPERATIONCYCLESTATE_ID 0x08
\r
79 #define DEM_GETEVENTSTATUS_ID 0x0A
\r
80 #define DEM_GETEVENTFAILED_ID 0x0B
\r
81 #define DEM_GETEVENTTESTED_ID 0x0C
\r
82 #define DEM_GETDTCOFEVENT_ID 0x0D
\r
83 #define DEM_REPORTERRORSTATUS_ID 0x0F
\r
84 #define DEM_SETDTCFILTER_ID 0x13
\r
85 #define DEM_GETSTATUSOFDTC_ID 0x15
\r
86 #define DEM_GETDTCSTATUSAVAILABILITYMASK_ID 0x16
\r
87 #define DEM_GETNUMBEROFFILTEREDDTC_ID 0x17
\r
88 #define DEM_GETNEXTFILTEREDDTC_ID 0x18
\r
89 #define DEM_GETEXTENDEDDATARECORDBYDTC_ID 0x20
\r
90 #define DEM_GETSIZEOFEXTENDEDDATARECORDBYDTC_ID 0x21
\r
91 #define DEM_CLEARDTC_ID 0x22
\r
92 #define DEM_DISABLEDTCSTORAGE_ID 0x24
\r
93 #define DEM_ENABLEDTCSTORAGE_ID 0x25
\r
95 #define DEM_GETFREEZEFRAMEDATARECORDBYDTC_ID 0x26
\r
96 #define DEM_GETFREEZEFRAMEDATAIDENTIFIERBYDTC_ID 0x27
\r
98 #define DEM_GETTRANSLATIONTYPE_ID 0x3c
\r
99 #define DEM_GETFAULTDETECTIONCOUNTER_ID 0x3E
\r
100 #define DEM_MAINFUNCTION_ID 0x55
\r
102 #define DEM_UPDATE_EVENT_STATUS_ID 0x80
\r
103 #define DEM_MERGE_EVENT_STATUS_ID 0x81
\r
104 #define DEM_GET_EXTENDED_DATA_ID 0x82
\r
105 #define DEM_STORE_EXT_DATA_PRE_INIT_ID 0x83
\r
106 #define DEM_STORE_EVENT_PRI_MEM_ID 0x84
\r
107 #define DEM_STORE_EXT_DATA_PRI_MEM_ID 0x85
\r
108 #define DEM_PREDEBOUNCE_NONE_ID 0x86
\r
109 #define DEM_PREDEBOUNCE_COUNTER_BASED_ID 0x87
\r
110 #define DEM_GET_FREEZEFRAME_ID 0x88
\r
111 #define DEM_STORE_FF_DATA_PRE_INIT_ID 0x89
\r
112 #define DEM_STORE_FF_DATA_PRI_MEM_ID 0x90
\r
114 #define DEM_DSP_DID_USE_PORT_IS_TRUE 0x91
\r
115 #define DEM_READ_DATA_LENGTH_FAILED 0x92
\r
116 #define DEM_GLOBAL_ID 0xff
\r
120 #define DEM_MAX_TIMESTAMP_FOR_REARRANGEMENT ULONG_MAX //when timestamp up to the max value,rearrangement starts.
\r
122 * Interface for upper layer modules (8.3.1)
\r
124 #if ( DEM_VERSION_INFO_API == STD_ON ) /** @req DEM111 */
\r
125 #define Dem_GetVersionInfo(_vi) STD_GET_VERSION_INFO(_vi,DEM) /** @req DEM177 */ /** @req DEM110 */ /** @req DEM178 */
\r
126 #endif /* DEM_VERSION_INFO_API */
\r
129 * Interface ECU State Manager <-> DEM (8.3.2)
\r
131 void Dem_PreInit( void ); /** @req DEM179 */
\r
132 void Dem_Init( void ); /** @req DEM181 */
\r
133 void Dem_Shutdown( void ); /** @req DEM182 */
\r
137 * Interface for basic software scheduler
\r
139 void Dem_MainFunction( void ); /** @req DEM266 */
\r
143 * Interface SW-Components via RTE <-> DEM (8.3.3)
\r
145 Std_ReturnType Dem_SetEventStatus(Dem_EventIdType eventId, uint8 eventStatus); /** @req DEM183 */
\r
146 Std_ReturnType Dem_ResetEventStatus(Dem_EventIdType eventId); /** @req DEM185 */
\r
147 Std_ReturnType Dem_GetEventStatus(Dem_EventIdType eventId, Dem_EventStatusExtendedType *eventStatusExtended); /** @req DEM195 */
\r
148 Std_ReturnType Dem_GetEventFailed(Dem_EventIdType eventId, boolean *eventFailed); /** @req DEM196 */
\r
149 Std_ReturnType Dem_GetEventTested(Dem_EventIdType eventId, boolean *eventTested); /** @req DEM197 */
\r
150 Std_ReturnType Dem_GetFaultDetectionCounter(Dem_EventIdType eventId, sint8 *counter); /** @req DEM203 */
\r
151 Std_ReturnType Dem_SetOperationCycleState(Dem_OperationCycleIdType operationCycleId, Dem_OperationCycleStateType cycleState); /** @req DEM194 */
\r
152 Std_ReturnType Dem_GetDTCOfEvent(Dem_EventIdType eventId, Dem_DTCKindType dtcKind, uint32* dtcOfEvent); /** @req DEM198 */
\r
156 * Interface BSW-Components <-> DEM (8.3.4)
\r
158 void Dem_ReportErrorStatus(Dem_EventIdType eventId ,uint8 eventStatus); /** @req DEM206 */
\r
162 * Interface DCM <-> DEM (8.3.5)
\r
164 Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin); /** @req DEM241 */
\r
165 Dem_ReturnSetDTCFilterType Dem_SetDTCFilter(uint8 dtcStatusMask, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, Dem_FilterWithSeverityType filterWithSeverity, Dem_DTCSeverityType dtcSeverityMask, Dem_FilterForFDCType filterForFaultDetectionCounter); /** @req DEM208 */
\r
166 Dem_ReturnGetStatusOfDTCType Dem_GetStatusOfDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, Dem_EventStatusExtendedType* status); /** @req DEM212 */
\r
167 Std_ReturnType Dem_GetDTCStatusAvailabilityMask(uint8 *dtcStatusMask); /** @req DEM213 */
\r
168 Dem_ReturnGetNumberOfFilteredDTCType Dem_GetNumberOfFilteredDtc(uint16* numberOfFilteredDTC); /** @req DEM214 */
\r
169 Dem_ReturnGetNextFilteredDTCType Dem_GetNextFilteredDTC(uint32* dtc, Dem_EventStatusExtendedType* dtcStatus); /** @req DEM215 */
\r
170 Dem_ReturnTypeOfDtcSupportedType Dem_GetTranslationType(void); /** @req DEM230 */
\r
171 Dem_ReturnControlDTCStorageType Dem_DisableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind); /** @req DEM242 */
\r
172 Dem_ReturnControlDTCStorageType Dem_EnableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind); /** @req DEM243 */
\r
173 Dem_ReturnGetExtendedDataRecordByDTCType Dem_GetExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint8 *destBuffer, uint16 *bufSize); /** @req DEM239 */
\r
174 Dem_ReturnGetSizeOfExtendedDataRecordByDTCType Dem_GetSizeOfExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint16 *sizeOfExtendedDataRecord); /** @req DEM240 */
\r
175 Dem_ReturnGetFreezeFrameDataByDTCType Dem_GetFreezeFrameDataByDTC(uint32 dtc,Dem_DTCKindType dtcKind,Dem_DTCOriginType dtcOrigin,uint8 recordNumber,uint8* destBuffer,uint8* bufSize);
\r
176 Dem_GetFreezeFameDataIdentifierByDTCType Dem_GetFreezeFrameDataIdentifierByDTC(uint32 dtc,
\r
177 Dem_DTCKindType dtcKind,
\r
178 Dem_DTCOriginType dtcOrigin,
\r
179 uint8 recordNumber,
\r
181 const uint16** dataId );
\r
182 Dem_ReturnGetSizeOfFreezeFrameType Dem_GetSizeOfFreezeFrame(uint32 dtc,Dem_DTCKindType dtcKind,Dem_DTCOriginType dtcOrigin,uint8 recordNumber,uint16* sizeOfFreezeFrame);
\r
186 * OBD-specific Interfaces (8.3.6)
\r