#include "MemMap.h"\r
#include "Mcu.h"\r
\r
+/*\r
+ * Global requirements
+ */\r
+/** @req DEM014.14229-1 */\r
+/** @req DEM277 */\r
+/** @req DEM363 */\r
+/** @req DEM113 */ /** @req DEM174 */\r
+/** @req DEM286 */\r
+/** @req DEM267 */\r
/*\r
* Local defines\r
*/\r
Dem_EventIdType eventId;\r
const Dem_EventParameterType *eventParamRef;\r
sint8 faultDetectionCounter;\r
- uint16 occurrence;\r
- Dem_EventStatusExtendedType eventStatusExtended;\r
+ uint16 occurrence; /** @req DEM011 */\r
+ Dem_EventStatusExtendedType eventStatusExtended; /** @req DEM006 */\r
boolean errorStatusChanged;\r
} EventStatusRecType;\r
\r
DEM_UNINITIALIZED = 0,\r
DEM_PREINITIALIZED,\r
DEM_INITIALIZED\r
-} Dem_StateType;\r
+} Dem_StateType; /** @req DEM169 */\r
\r
\r
static Dem_StateType demState = DEM_UNINITIALIZED;\r
/*\r
* Allocation of pre-init event memory (used between pre-init and init)\r
*/\r
+/** @req DEM207 */\r
static FreezeFrameRecType preInitFreezeFrameBuffer[DEM_MAX_NUMBER_FF_DATA_PRE_INIT];\r
static ExtDataRecType preInitExtDataBuffer[DEM_MAX_NUMBER_EXT_DATA_PRE_INIT];\r
\r
/*\r
* Allocation of primary event memory ramlog (after init) in uninitialized memory\r
*/\r
+/** @req DEM162 */\r
static EventRecType priMemEventBuffer[DEM_MAX_NUMBER_EVENT_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
static FreezeFrameRecType priMemFreezeFrameBuffer[DEM_MAX_NUMBER_FF_DATA_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
static ExtDataRecType priMemExtDataBuffer[DEM_MAX_NUMBER_EXT_DATA_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
Dem_EventStatusType returnCode;\r
\r
switch (reportedStatus) {\r
- case DEM_EVENT_STATUS_FAILED:\r
- case DEM_EVENT_STATUS_PASSED:\r
+ case DEM_EVENT_STATUS_FAILED: /** @req DEM191.NoneFailed */\r
+ case DEM_EVENT_STATUS_PASSED: /** @req DEM191.NonePassed */\r
// Already debounced, do nothing.\r
break;\r
\r
default:\r
// TODO: What to do with PREFAIL and PREPASSED on no debouncing?\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_PREDEBOUNCE_NONE_ID, DEM_E_PARAM_DATA);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_PREDEBOUNCE_NONE_ID, DEM_E_PARAM_DATA); /** @req DEM117 */\r
#endif\r
break;\r
}\r
break;\r
\r
case DEM_EVENT_STATUS_FAILED:\r
- statusRecord->faultDetectionCounter = DEBOUNCE_FDC_TEST_FAILED;\r
+ statusRecord->faultDetectionCounter = DEBOUNCE_FDC_TEST_FAILED; /** @req DEM191.CounterFailed */\r
break;\r
\r
case DEM_EVENT_STATUS_PASSED:\r
- statusRecord->faultDetectionCounter = DEBOUNCE_FDC_TEST_PASSED;\r
+ statusRecord->faultDetectionCounter = DEBOUNCE_FDC_TEST_PASSED; /** @req DEM191.CounterPassed */\r
break;\r
\r
default:\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_PREDEBOUNCE_COUNTER_BASED_ID, DEM_E_PARAM_DATA);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_PREDEBOUNCE_COUNTER_BASED_ID, DEM_E_PARAM_DATA); /** @req DEM117 */\r
#endif\r
break;\r
\r
else {\r
// Error: Event status buffer full\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_UPDATE_EVENT_STATUS_ID, DEM_E_EVENT_STATUS_BUFF_FULL);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_UPDATE_EVENT_STATUS_ID, DEM_E_EVENT_STATUS_BUFF_FULL); /** @req DEM117 */\r
#endif\r
}\r
}\r
\r
if (eventStatusRecPtr != NULL) {\r
// Handle debouncing\r
- switch (eventParam->EventClass->PreDebounceAlgorithmClass->PreDebounceName) {\r
+ switch (eventParam->EventClass->PreDebounceAlgorithmClass->PreDebounceName) { /** @req DEM004 */ /** @req DEM342 */\r
case DEM_NO_PRE_DEBOUNCE:\r
eventStatus = preDebounceNone(eventStatus, eventStatusRecPtr);\r
break;\r
default:\r
// Don't know how to handle this.\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_UPDATE_EVENT_STATUS_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_UPDATE_EVENT_STATUS_ID, DEM_E_NOT_IMPLEMENTED_YET); /** @req DEM117 */\r
#endif\r
break;\r
}\r
eventStatusRecPtr->occurrence++;\r
eventStatusRecPtr->errorStatusChanged = TRUE;\r
}\r
+ /** @req DEM036.Failed */ /** @req DEM379.PendingSet */\r
eventStatusRecPtr->eventStatusExtended |= (DEM_TEST_FAILED | DEM_TEST_FAILED_THIS_OPERATION_CYCLE | DEM_TEST_FAILED_SINCE_LAST_CLEAR | DEM_PENDING_DTC);\r
eventStatusRecPtr->eventStatusExtended &= ~(DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR | DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE);\r
}\r
if (eventStatusRecPtr->eventStatusExtended & DEM_TEST_FAILED) {\r
eventStatusRecPtr->errorStatusChanged = TRUE;\r
}\r
+ /** @req DEM036.Passed */\r
eventStatusRecPtr->eventStatusExtended &= ~DEM_TEST_FAILED;\r
eventStatusRecPtr->eventStatusExtended &= ~(DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR | DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE);\r
}\r
else {\r
// Error: Event status buffer full\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_MERGE_EVENT_STATUS_ID, DEM_E_EVENT_STATUS_BUFF_FULL);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_MERGE_EVENT_STATUS_ID, DEM_E_EVENT_STATUS_BUFF_FULL); /** @req DEM117 */\r
#endif\r
}\r
}\r
for (i = 0; (i < DEM_MAX_NR_OF_RECORDS_IN_EXTENDED_DATA) && (eventParam->ExtendedDataClassRef->ExtendedDataRecordClassRef[i] != NULL); i++) {\r
recordSize = eventParam->ExtendedDataClassRef->ExtendedDataRecordClassRef[i]->DataSize;\r
if ((storeIndex + recordSize) <= DEM_MAX_SIZE_EXT_DATA) {\r
- callbackReturnCode = eventParam->ExtendedDataClassRef->ExtendedDataRecordClassRef[i]->CallbackGetExtDataRecord(&extData->data[storeIndex]);\r
+ callbackReturnCode = eventParam->ExtendedDataClassRef->ExtendedDataRecordClassRef[i]->CallbackGetExtDataRecord(&extData->data[storeIndex]); /** @req DEM282 */\r
if (callbackReturnCode != E_OK) {\r
// Callback data currently not available, clear space.\r
memset(&extData->data[storeIndex], 0xFF, recordSize);\r
else {\r
// Error: Size of extended data record is bigger than reserved space.\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GET_EXTENDED_DATA_ID, DEM_E_EXT_DATA_TOO_BIG);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GET_EXTENDED_DATA_ID, DEM_E_EXT_DATA_TOO_BIG); /** @req DEM117 */\r
#endif\r
break; // Break the loop\r
}\r
else {\r
// Error: Pre init extended data buffer full\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_STORE_EXT_DATA_PRE_INIT_ID, DEM_E_PRE_INIT_EXT_DATA_BUFF_FULL);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_STORE_EXT_DATA_PRE_INIT_ID, DEM_E_PRE_INIT_EXT_DATA_BUFF_FULL); /** @req DEM117 */\r
#endif\r
}\r
}\r
else {\r
// Error: Pri mem event buffer full\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_STORE_EVENT_PRI_MEM_ID, DEM_E_PRI_MEM_EVENT_BUFF_FULL);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_STORE_EVENT_PRI_MEM_ID, DEM_E_PRI_MEM_EVENT_BUFF_FULL); /** @req DEM117 */\r
#endif\r
}\r
}\r
switch (eventParam->EventClass->EventDestination[i])\r
{\r
case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
- storeEventPriMem(eventParam, eventStatus);\r
+ storeEventPriMem(eventParam, eventStatus); /** @req DEM010 */\r
break;\r
\r
case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
// Not yet supported\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET); /** @req DEM117 */\r
#endif\r
break;\r
default:\r
* Description: Store the extended data pointed by "extendedData" to the "priMemExtDataBuffer",\r
* if non existent a new entry is created.\r
*/\r
-static void storeExtendedDataPriMem(const Dem_EventParameterType *eventParam, ExtDataRecType *extendedData)\r
+static void storeExtendedDataPriMem(const Dem_EventParameterType *eventParam, ExtDataRecType *extendedData) /** @req DEM041 */\r
{\r
uint16 i;\r
imask_t state = McuE_EnterCriticalSection();\r
else {\r
// Error: Pri mem extended data buffer full\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_STORE_EXT_DATA_PRI_MEM_ID, DEM_E_PRI_MEM_EXT_DATA_BUFF_FULL);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_STORE_EXT_DATA_PRI_MEM_ID, DEM_E_PRI_MEM_EXT_DATA_BUFF_FULL); /** @req DEM117 */\r
#endif\r
}\r
}\r
case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
// Not yet supported\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET); /** @req DEM117 */\r
#endif\r
break;\r
\r
case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
// Not yet supported\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET); /** @req DEM117 */\r
#endif\r
break;\r
default:\r
updateEventStatusRec(eventParam, eventStatus, TRUE, &eventStatusLocal);\r
if (eventStatusLocal.errorStatusChanged) {\r
if (eventStatusLocal.eventStatusExtended & DEM_TEST_FAILED) {\r
- storeEventEvtMem(eventParam, &eventStatusLocal);\r
+ storeEventEvtMem(eventParam, &eventStatusLocal); /** @req DEM184 */\r
// Collect freeze frame data\r
getFreezeFrameData(eventParam, &freezeFrameLocal);\r
if (freezeFrameLocal.eventId != DEM_EVENT_ID_NULL) {\r
- storeFreezeFrameDataEvtMem(eventParam, &freezeFrameLocal);\r
+ storeFreezeFrameDataEvtMem(eventParam, &freezeFrameLocal); /** @req DEM190 */\r
}\r
\r
// Collect extended data\r
\r
lookupEventStatusRec(eventId, &eventStatusRecPtr);\r
if (eventStatusRecPtr != NULL) {\r
- eventStatusRecPtr->eventStatusExtended &= ~DEM_TEST_FAILED;\r
+ eventStatusRecPtr->eventStatusExtended &= ~DEM_TEST_FAILED; /** @req DEM187 */\r
}\r
\r
McuE_ExitCriticalSection(state);\r
// Get recorded status\r
getEventStatusRec(eventId, &eventStatusLocal);\r
if (eventStatusLocal.eventId == eventId) {\r
- *eventStatusExtended = eventStatusLocal.eventStatusExtended;\r
+ *eventStatusExtended = eventStatusLocal.eventStatusExtended; /** @req DEM051 */\r
}\r
else {\r
// Event Id not found, no report received.\r
// Get recorded status\r
getEventStatusRec(eventId, &eventStatusLocal);\r
if (eventStatusLocal.eventId == eventId) {\r
- if (eventStatusLocal.eventStatusExtended & DEM_TEST_FAILED) {\r
+ if (eventStatusLocal.eventStatusExtended & DEM_TEST_FAILED) { /** @req DEM052 */\r
*eventFailed = TRUE;\r
}\r
else {\r
// Get recorded status\r
getEventStatusRec(eventId, &eventStatusLocal);\r
if (eventStatusLocal.eventId == eventId) {\r
- if ( !(eventStatusLocal.eventStatusExtended & DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE)) {\r
+ if ( !(eventStatusLocal.eventStatusExtended & DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE)) { /** @req DEM053 */\r
*eventTested = TRUE;\r
}\r
else {\r
case DEM_NO_PRE_DEBOUNCE:\r
if (eventParam->EventClass->PreDebounceAlgorithmClass->PreDebounceAlgorithm.PreDebounceMonitorInternal != NULL) {\r
if (eventParam->EventClass->PreDebounceAlgorithmClass->PreDebounceAlgorithm.PreDebounceMonitorInternal->CallbackGetFDCntFnc != NULL) {\r
- returnCode = eventParam->EventClass->PreDebounceAlgorithmClass->PreDebounceAlgorithm.PreDebounceMonitorInternal->CallbackGetFDCntFnc(counter);\r
+ returnCode = eventParam->EventClass->PreDebounceAlgorithmClass->PreDebounceAlgorithm.PreDebounceMonitorInternal->CallbackGetFDCntFnc(counter); /** @req DEM204.None */ /** @req DEM264 */ /** @req DEM265 */\r
}\r
}\r
break;\r
\r
lookupEventStatusRec(eventId, &eventStatusRec);\r
if (eventStatusRec != NULL) {\r
- *counter = eventStatusRec->faultDetectionCounter;\r
+ *counter = eventStatusRec->faultDetectionCounter; /** @req DEM204.Counter */\r
} else {\r
*counter = 0;\r
}\r
case DEM_PRE_DEBOUNCE_FREQUENCY_BASED:\r
case DEM_PRE_DEBOUNCE_TIME_BASED:\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GETFAULTDETECTIONCOUNTER_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GETFAULTDETECTIONCOUNTER_ID, DEM_E_NOT_IMPLEMENTED_YET); /** @req DEM117 */\r
#endif\r
break;\r
\r
default:\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GETFAULTDETECTIONCOUNTER_ID, DEM_E_PARAM_DATA);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GETFAULTDETECTIONCOUNTER_ID, DEM_E_PARAM_DATA); /** @req DEM117 */\r
#endif\r
break;\r
}\r
* event connected to this cycle id.\r
* Returns E_OK if operation was successful else E_NOT_OK.\r
*/\r
-static Std_ReturnType setOperationCycleState(Dem_OperationCycleIdType operationCycleId, Dem_OperationCycleStateType cycleState)\r
+static Std_ReturnType setOperationCycleState(Dem_OperationCycleIdType operationCycleId, Dem_OperationCycleStateType cycleState) /** @req DEM338 */\r
{\r
uint16 i;\r
Std_ReturnType returnCode = E_OK;\r
for (i = 0; i < DEM_MAX_NUMBER_EVENT; i++) {\r
if ((eventStatusBuffer[i].eventId != DEM_EVENT_ID_NULL) && (eventStatusBuffer[i].eventParamRef->EventClass->OperationCycleRef == operationCycleId)) {\r
if (!(eventStatusBuffer[i].eventStatusExtended & DEM_TEST_FAILED_THIS_OPERATION_CYCLE) && !(eventStatusBuffer[i].eventStatusExtended & DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE)) {\r
- eventStatusBuffer[i].eventStatusExtended &= ~DEM_PENDING_DTC; // Clear pendingDTC bit\r
+ eventStatusBuffer[i].eventStatusExtended &= ~DEM_PENDING_DTC; // Clear pendingDTC bit /** @req DEM379.PendingClear\r
}\r
}\r
}\r
break;\r
default:\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_PARAM_DATA);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_PARAM_DATA); /** @req DEM117 */\r
#endif\r
returnCode = E_NOT_OK;\r
break;\r
}\r
else {\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_PARAM_DATA);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_PARAM_DATA); /** @req DEM117 */\r
#endif\r
returnCode = E_NOT_OK;\r
}\r
*/\r
void Dem_PreInit(void)\r
{\r
+ /** @req DEM180 */\r
int i, j;\r
\r
if (DEM_Config.ConfigSet == NULL) {\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_PREINIT_ID, DEM_E_CONFIG_PTR_INVALID);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_PREINIT_ID, DEM_E_CONFIG_PTR_INVALID); /** @req DEM117 */\r
#endif\r
return;\r
} else {\r
\r
disableDtcStorage.storageDisabled = FALSE;\r
\r
- setOperationCycleState(DEM_ACTIVE, DEM_CYCLE_STATE_START);\r
+ setOperationCycleState(DEM_ACTIVE, DEM_CYCLE_STATE_START); /** @req DEM047 */\r
\r
demState = DEM_PREINITIALIZED;\r
}\r
*/\r
void Dem_Shutdown(void)\r
{\r
- setOperationCycleState(DEM_ACTIVE, DEM_CYCLE_STATE_END);\r
+ setOperationCycleState(DEM_ACTIVE, DEM_CYCLE_STATE_END); /** @req DEM047 */\r
\r
- demState = DEM_UNINITIALIZED;\r
+ demState = DEM_UNINITIALIZED; /** @req DEM368 */\r
}\r
\r
\r
*/\r
void Dem_MainFunction(void)\r
{\r
+ /** @req DEM125 */\r
\r
}\r
\r
* Procedure: Dem_SetEventStatus\r
* Reentrant: Yes\r
*/\r
-Std_ReturnType Dem_SetEventStatus(Dem_EventIdType eventId, Dem_EventStatusType eventStatus)\r
+Std_ReturnType Dem_SetEventStatus(Dem_EventIdType eventId, Dem_EventStatusType eventStatus) /** @req DEM330 */\r
{\r
Std_ReturnType returnCode = E_OK;\r
\r
else\r
{\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_SETEVENTSTATUS_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_SETEVENTSTATUS_ID, DEM_E_UNINIT); /** @req DEM124.SetEventStatus */ /** @req DEM117 */\r
#endif\r
- returnCode = E_NOT_OK;\r
+ returnCode = E_NOT_OK; /** @req DEM370.SetEventStatus */\r
}\r
\r
return returnCode;\r
* Procedure: Dem_ResetEventStatus\r
* Reentrant: Yes\r
*/\r
-Std_ReturnType Dem_ResetEventStatus(Dem_EventIdType eventId)\r
+Std_ReturnType Dem_ResetEventStatus(Dem_EventIdType eventId) /** @req DEM331 */\r
{\r
Std_ReturnType returnCode = E_OK;\r
\r
else\r
{\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_RESETEVENTSTATUS_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_RESETEVENTSTATUS_ID, DEM_E_UNINIT); /** @req DEM124.ResetEventStatus */ /** @req DEM117 */\r
#endif\r
- returnCode = E_NOT_OK;\r
+ returnCode = E_NOT_OK; /** @req DEM370.ResetEventStatus */\r
}\r
\r
return returnCode;\r
* Procedure: Dem_GetEventStatus\r
* Reentrant: Yes\r
*/\r
-Std_ReturnType Dem_GetEventStatus(Dem_EventIdType eventId, Dem_EventStatusExtendedType *eventStatusExtended)\r
+Std_ReturnType Dem_GetEventStatus(Dem_EventIdType eventId, Dem_EventStatusExtendedType *eventStatusExtended) /** @req DEM332 */\r
{\r
Std_ReturnType returnCode = E_OK;\r
\r
else\r
{\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEVENTSTATUS_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEVENTSTATUS_ID, DEM_E_UNINIT); /** @req DEM124.GetEventStatus */ /** @req DEM117 */\r
#endif\r
- returnCode = E_NOT_OK;\r
+ returnCode = E_NOT_OK; /** @req DEM370.GetEventStatus */\r
}\r
\r
return returnCode;\r
* Procedure: Dem_GetEventFailed\r
* Reentrant: Yes\r
*/\r
-Std_ReturnType Dem_GetEventFailed(Dem_EventIdType eventId, boolean *eventFailed)\r
+Std_ReturnType Dem_GetEventFailed(Dem_EventIdType eventId, boolean *eventFailed) /** @req DEM333 */\r
{\r
Std_ReturnType returnCode = E_OK;\r
\r
else\r
{\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEVENTFAILED_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEVENTFAILED_ID, DEM_E_UNINIT); /** @req DEM124.GetEventFailed */ /** @req DEM117 */\r
#endif\r
- returnCode = E_NOT_OK;\r
+ returnCode = E_NOT_OK; /** @req DEM370.GetEventFailed */\r
}\r
\r
return returnCode;\r
else\r
{\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEVENTTESTED_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEVENTTESTED_ID, DEM_E_UNINIT); /** @req DEM124.GetEventTested */ /** @req DEM117 */\r
#endif\r
- returnCode = E_NOT_OK;\r
+ returnCode = E_NOT_OK; /** @req DEM370.GetEventTested */\r
}\r
\r
return returnCode;\r
else\r
{\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GETFAULTDETECTIONCOUNTER_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GETFAULTDETECTIONCOUNTER_ID, DEM_E_UNINIT); /** @req DEM124.GetFaultDetectionCounter */ /** @req DEM117 */\r
#endif\r
- returnCode = E_NOT_OK;\r
+ returnCode = E_NOT_OK; /** @req DEM370.GetFaultDetectionCounter */\r
}\r
\r
return returnCode;\r
else\r
{\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_UNINIT); /** @req DEM124.SetOperationCycleState */ /** @req DEM117 */\r
#endif\r
- returnCode = E_NOT_OK;\r
+ returnCode = E_NOT_OK; /** @req DEM370.SetOperationCycleState */\r
}\r
\r
return returnCode;\r
if (eventParam != NULL) {\r
if (checkDtcKind(dtcKind, eventParam)) {\r
if (eventParam->DTCClassRef != NULL) {\r
- *dtcOfEvent = eventParam->DTCClassRef->DTC;\r
+ *dtcOfEvent = eventParam->DTCClassRef->DTC; /** @req DEM269 */\r
returnCode = E_OK;\r
}\r
}\r
* Procedure: Dem_ReportErrorStatus\r
* Reentrant: Yes\r
*/\r
-void Dem_ReportErrorStatus( Dem_EventIdType eventId, Dem_EventStatusType eventStatus )\r
+void Dem_ReportErrorStatus( Dem_EventIdType eventId, Dem_EventStatusType eventStatus ) /** @req DEM107 */\r
{\r
\r
switch (demState) {\r
case DEM_PREINITIALIZED:\r
// Update status and check if is to be stored\r
if ((eventStatus == DEM_EVENT_STATUS_PASSED) || (eventStatus == DEM_EVENT_STATUS_FAILED)) {\r
- handlePreInitEvent(eventId, eventStatus);\r
+ handlePreInitEvent(eventId, eventStatus); /** @req DEM168 */\r
}\r
break;\r
\r
case DEM_INITIALIZED:\r
- (void)handleEvent(eventId, eventStatus);\r
+ (void)handleEvent(eventId, eventStatus); /** @req DEM167 */\r
break;\r
\r
case DEM_UNINITIALIZED:\r
default:\r
// Uninitialized can not do anything\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_REPORTERRORSTATUS_ID, DEM_E_UNINIT);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_REPORTERRORSTATUS_ID, DEM_E_UNINIT); /** @req DEM124.ReportErrorStatus */ /** @req DEM364 */ /** @req DEM117 */\r
#endif\r
break;\r
\r
* Procedure: Dem_GetDTCStatusAvailabilityMask\r
* Reentrant: No\r
*/\r
-Std_ReturnType Dem_GetDTCStatusAvailabilityMask(uint8 *dtcStatusMask)\r
+Std_ReturnType Dem_GetDTCStatusAvailabilityMask(uint8 *dtcStatusMask) /** @req DEM014 */\r
{\r
*dtcStatusMask = DEM_DTC_STATUS_AVAILABILITY_MASK; // User configuration mask\r
- *dtcStatusMask &= DEM_TEST_FAILED // Mask with supported bits\r
+ *dtcStatusMask &= DEM_TEST_FAILED // Mask with supported bits /** @req DEM060 */\r
| DEM_TEST_FAILED_THIS_OPERATION_CYCLE\r
| DEM_PENDING_DTC\r
// | DEM_CONFIRMED_DTC TODO: Add support for this bit\r
\r
// Check filterForFaultDetectionCounter parameter\r
if ((filterForFaultDetectionCounter == DEM_FILTER_FOR_FDC_YES) || (filterForFaultDetectionCounter == DEM_FILTER_FOR_FDC_NO)) {\r
- // Yes all parameters correct, set the new filters.\r
+ // Yes all parameters correct, set the new filters. /** @req DEM057 */\r
dtcFilter.dtcStatusMask = dtcStatusMask;\r
dtcFilter.dtcKind = dtcKind;\r
dtcFilter.dtcOrigin = dtcOrigin;\r
if (lookupDtcEvent(dtc, &eventRec)) {\r
if (checkDtcKind(dtcKind, eventRec->eventParamRef)) {\r
if (checkDtcOrigin(dtcOrigin,eventRec->eventParamRef)) {\r
- *status = eventRec->eventStatusExtended;\r
+ *status = eventRec->eventStatusExtended; /** @req DEM059 */\r
returnCode = DEM_STATUS_OK;\r
}\r
else {\r
- returnCode = DEM_STATUS_WRONG_DTCORIGIN;\r
+ returnCode = DEM_STATUS_WRONG_DTCORIGIN; /** @req DEM171 */\r
}\r
}\r
else {\r
}\r
}\r
else {\r
- returnCode = DEM_STATUS_WRONG_DTC;\r
+ returnCode = DEM_STATUS_WRONG_DTC; /** @req DEM172 */\r
}\r
\r
return returnCode;\r
\r
//Dem_EnableEventStatusUpdate();\r
\r
- *numberOfFilteredDTC = numberOfFaults;\r
+ *numberOfFilteredDTC = numberOfFaults; /** @req DEM061 */\r
\r
return DEM_NUMBER_OK;\r
}\r
Dem_ReturnGetNextFilteredDTCType returnCode = DEM_FILTERED_OK;\r
boolean dtcFound = FALSE;\r
\r
- // TODO: This job should be done in an more advanced way according to Dem288\r
+ // TODO: This job should be done in an more advanced way according to Dem217\r
while (!dtcFound && (dtcFilter.faultIndex != 0)) {\r
dtcFilter.faultIndex--;\r
if (eventStatusBuffer[dtcFilter.faultIndex].eventId != DEM_EVENT_ID_NULL) {\r
if (matchEventWithDtcFilter(&eventStatusBuffer[dtcFilter.faultIndex])) {\r
if (eventStatusBuffer[dtcFilter.faultIndex].eventParamRef->DTCClassRef != NULL) {\r
- *dtc = eventStatusBuffer[dtcFilter.faultIndex].eventParamRef->DTCClassRef->DTC;\r
+ *dtc = eventStatusBuffer[dtcFilter.faultIndex].eventParamRef->DTCClassRef->DTC; /** @req DEM216 */\r
*dtcStatus = eventStatusBuffer[dtcFilter.faultIndex].eventStatusExtended;\r
dtcFound = TRUE;\r
}\r
*/\r
Dem_ReturnTypeOfDtcSupportedType Dem_GetTranslationType(void)\r
{\r
- return DEM_TYPE_OF_DTC_SUPPORTED;\r
+ return DEM_TYPE_OF_DTC_SUPPORTED; /** @req DEM231 */\r
}\r
\r
\r
* Procedure: Dem_ClearDTC\r
* Reentrant: No\r
*/\r
-Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin)\r
+Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin) /** @req DEM009 */\r
{\r
Dem_ReturnClearDTCType returnCode = DEM_CLEAR_OK;\r
Dem_EventIdType eventId;\r
switch (dtcOrigin)\r
{\r
case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
+ /** @req DEM077 */\r
deleteEventPriMem(eventParam);\r
deleteFreezeFrameDataPriMem(eventParam);\r
deleteExtendedDataPriMem(eventParam);\r
// Not yet supported\r
returnCode = DEM_CLEAR_WRONG_DTCORIGIN;\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_CLEARDTC_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_CLEARDTC_ID, DEM_E_NOT_IMPLEMENTED_YET); /** @req DEM117 */\r
#endif\r
break;\r
default:\r
else {\r
// Fatal error, no event parameters found for the stored event!\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_CLEARDTC_ID, DEM_E_UNEXPECTED_EXECUTION);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_CLEARDTC_ID, DEM_E_UNEXPECTED_EXECUTION); /** @req DEM117 */\r
#endif\r
}\r
}\r
* Procedure: Dem_DisableDTCStorage\r
* Reentrant: No\r
*/\r
-Dem_ReturnControlDTCStorageType Dem_DisableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind)\r
+Dem_ReturnControlDTCStorageType Dem_DisableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind) /** @req DEM35 */\r
{\r
Dem_ReturnControlDTCStorageType returnCode = DEM_CONTROL_DTC_STORAGE_N_OK;\r
\r
if (dtcGroup == DEM_DTC_GROUP_ALL_DTCS) {\r
// Check dtcKind parameter\r
if ((dtcKind == DEM_DTC_KIND_ALL_DTCS) || (dtcKind == DEM_DTC_KIND_EMISSION_REL_DTCS)) {\r
+ /** @req DEM079 */\r
disableDtcStorage.dtcGroup = dtcGroup;\r
disableDtcStorage.dtcKind = dtcKind;\r
disableDtcStorage.storageDisabled = TRUE;\r
Dem_ReturnControlDTCStorageType Dem_EnableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind)\r
{\r
// TODO: Behavior is not defined if group or kind do not match active settings, therefore the filter is just switched off.\r
- disableDtcStorage.storageDisabled = FALSE;\r
+ disableDtcStorage.storageDisabled = FALSE; /** @req DEM080 */\r
\r
return DEM_CONTROL_DTC_STORAGE_OK;\r
}\r
case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
if (lookupExtendedDataPriMem(eventRec->eventId, &extData)) {\r
// Yes all conditions met, copy the extended data record to destination buffer.\r
- memcpy(destBuffer, &extData->data[posInExtData], extendedDataRecordClass->DataSize);\r
+ memcpy(destBuffer, &extData->data[posInExtData], extendedDataRecordClass->DataSize); /** @req DEM075 */\r
*bufSize = extendedDataRecordClass->DataSize;\r
returnCode = DEM_RECORD_OK;\r
}\r
// Not yet supported\r
returnCode = DEM_RECORD_WRONG_DTCORIGIN;\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
- Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEXTENDEDDATARECORDBYDTC_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ Det_ReportError(MODULE_ID_DEM, 0, DEM_GETEXTENDEDDATARECORDBYDTC_ID, DEM_E_NOT_IMPLEMENTED_YET); /** @req DEM117 */\r
#endif\r
break;\r
default:\r
if (checkDtcKind(dtcKind, eventRec->eventParamRef)) {\r
if (checkDtcOrigin(dtcOrigin, eventRec->eventParamRef)) {\r
if (lookupExtendedDataRecNumParam(extendedDataNumber, eventRec->eventParamRef, &extendedDataRecordClass, &posInExtData)) {\r
- *sizeOfExtendedDataRecord = extendedDataRecordClass->DataSize;\r
+ *sizeOfExtendedDataRecord = extendedDataRecordClass->DataSize; /** @req DEM076 */\r
returnCode = DEM_GET_SIZEOFEDRBYDTC_OK;\r
}\r
else {\r
\r
#include "Dem_Types.h"\r
#if defined(USE_DCM)\r
-#include "Dcm_Types.h"\r
+#include "Dcm_Types.h" /** @req DEM176.Dcm */\r
#endif\r
\r
\r
*/\r
\r
// InitMonitorForEvent\r
-typedef Std_ReturnType (*Dem_CallbackInitMonitorForEventFncType)(Dem_InitMonitorKindType InitMonitorKind);\r
+typedef Std_ReturnType (*Dem_CallbackInitMonitorForEventFncType)(Dem_InitMonitorKindType InitMonitorKind); /** @req DEM256 */\r
\r
// InitMonitorForFunction\r
-typedef Std_ReturnType (*Dem_CallbackInitMonitorForFunctionFncType)(void);\r
+typedef Std_ReturnType (*Dem_CallbackInitMonitorForFunctionFncType)(void); /** @req DEM258 */\r
\r
// EventStatusChanged\r
-typedef Std_ReturnType (*Dem_CallbackEventStatusChangedFncType)(Dem_EventStatusExtendedType EventStatusOld, Dem_EventStatusExtendedType EventStatusNew);\r
+typedef Std_ReturnType (*Dem_CallbackEventStatusChangedFncType)(Dem_EventStatusExtendedType EventStatusOld, Dem_EventStatusExtendedType EventStatusNew); /** @req DEM259 */\r
\r
// DTCStatusChanged\r
-typedef Std_ReturnType (*Dem_CallbackDTCStatusChangedFncType)(uint8 DTCStatusOld, uint8 DTCStatusNew);\r
+typedef Std_ReturnType (*Dem_CallbackDTCStatusChangedFncType)(uint8 DTCStatusOld, uint8 DTCStatusNew); /** @req DEM260 */\r
\r
-// DIDServices\r
+// DIDServices /** @req DEM261 */\r
#if defined(USE_DCM)\r
typedef Std_ReturnType (*Dem_CallbackConditionCheckReadFncType)(Dcm_NegativeResponseCodeType *Nrc);\r
typedef Std_ReturnType (*Dem_CallbackReadDataFncType)(uint8 *Data);\r
#endif\r
\r
// GetExtendedDataRecord\r
-typedef Std_ReturnType (*Dem_CallbackGetExtDataRecordFncType)(uint8 *ExtendedDataRecord);\r
+typedef Std_ReturnType (*Dem_CallbackGetExtDataRecordFncType)(uint8 *ExtendedDataRecord); /** @req DEM262 */\r
\r
// GetFaultDetectionCounter\r
-typedef Std_ReturnType (*Dem_CallbackGetFaultDetectionCounterFncType)(sint8 *EventIdFaultDetectionCounter);\r
+typedef Std_ReturnType (*Dem_CallbackGetFaultDetectionCounterFncType)(sint8 *EventIdFaultDetectionCounter); /** @req DEM263 */\r
\r
// GetPIDValue\r
-typedef Std_ReturnType (*Dem_CallbackGetPIDValueFncType)(uint8 *DataValueBuffer);\r
+typedef Std_ReturnType (*Dem_CallbackGetPIDValueFncType)(uint8 *DataValueBuffer); /** @req DEM326 */\r
\r
/*\r
* DemGeneral types\r
*/\r
+/** @req DEM128 */\r
\r
// 10.2.25 DemEnableCondition\r
typedef struct {\r
uint16 RecordNumber; // (1)\r
uint16 DataSize; // (1)\r
Dem_CallbackGetExtDataRecordFncType CallbackGetExtDataRecord;// (1)\r
-} Dem_ExtendedDataRecordClassType;\r
+} Dem_ExtendedDataRecordClassType; /** @req DEM135 */\r
\r
// 10.2.13 DemExtendedDataClass\r
typedef struct {\r
const Dem_ExtendedDataRecordClassType *const ExtendedDataRecordClassRef[DEM_MAX_NR_OF_RECORDS_IN_EXTENDED_DATA+1]; // (1..253)\r
-} Dem_ExtendedDataClassType;\r
+} Dem_ExtendedDataClassType; /** @req DEM135 */\r
\r
// 10.2.8 DemPidOrDid\r
typedef struct {\r
const uint8 *PidIndentifier; // (0..1)\r
Dem_CallbackGetPIDValueFncType PidReadFnc; // (0..1)\r
boolean Arc_EOL;\r
-} Dem_PidOrDidType;\r
+} Dem_PidOrDidType; /** @req DEM136 */\r
\r
// 10.2.18 DemFreezeFrameClass\r
typedef struct {\r
Dem_FreezeFrameKindType FFKind; // (1)\r
uint8 FFRecordNumber; // (1)\r
const Dem_PidOrDidType *FFIdClassRef; // (1..255)\r
-} Dem_FreezeFrameClassType;\r
+} Dem_FreezeFrameClassType; /** @req DEM136 */\r
\r
// 10.2.4 DemIndicator\r
typedef struct {\r
uint16 Indicator; // (1)\r
-} Dem_IndicatorType;\r
+} Dem_IndicatorType; /** @req DEM129 */\r
\r
// 10.2.28 DemNvramBlockId\r
typedef struct {\r
// 10.2.6 DemCallbackDTCStatusChanged\r
typedef struct {\r
Dem_CallbackDTCStatusChangedFncType CallbackDTCStatusChangedFnc; // (0..1)\r
-} Dem_CallbackDTCStatusChangedType;\r
+} Dem_CallbackDTCStatusChangedType; /** @req DEM140 */\r
\r
// 10.2.26 DemCallbackInitMForF\r
typedef struct {\r
const Dem_CallbackInitMForFType *CallbackInitMForF; // (0..*)\r
// Dem_DTCSeverityType DTCSeverity // (0..1) Optional\r
boolean Arc_EOL;\r
-} Dem_DTCClassType;\r
+} Dem_DTCClassType; /** @req DEM132 */\r
\r
// 10.2.5 DemCallbackEventStatusChanged\r
typedef struct {\r
Dem_CallbackEventStatusChangedFncType CallbackEventStatusChangedFnc; // (0..1)\r
-} Dem_CallbackEventStatusChangedType;\r
+} Dem_CallbackEventStatusChangedType; /** @req DEM140 */\r
\r
// 10.2.27 DemCallbackInitMForE\r
typedef struct {\r
Dem_CallbackInitMonitorForEventFncType CallbackInitMForEFnc; // (0..1)\r
-} Dem_CallbackInitMforEType;\r
+} Dem_CallbackInitMforEType; /** @req DEM130 */\r
\r
+// 10.2.15\r
typedef struct {\r
Dem_IndicatorStatusType IndicatorBehaviour; // (1)\r
Dem_IndicatorType *LinkedIndicator; // (1)\r
-} Dem_IndicatorAttributeType;\r
+} Dem_IndicatorAttributeType; /** @req DEM133 */\r
\r
// 10.2.23 DemPreDebounceMonitorInternal\r
typedef struct {\r
Dem_CallbackGetFaultDetectionCounterFncType CallbackGetFDCntFnc; // (1)\r
-} Dem_PreDebounceMonitorInternalType;\r
+} Dem_PreDebounceMonitorInternalType; /** @req DEM146 */\r
\r
// 10.2.21 DemPreDebounceCounterBased\r
typedef struct {\r
boolean JumpDown;\r
uint8 CountInStepSize;\r
uint8 CountOutStepSize;\r
-} Dem_PreDebounceCounterBasedType;\r
+} Dem_PreDebounceCounterBasedType; /** @req DEM144 */\r
\r
// 10.2.22 DemPreDebounceFrequencyBased\r
typedef struct {\r
// TODO: Fill out\r
} Dem_PreDebounceTimeBasedType;\r
\r
+// 10.2.20\r
typedef struct {\r
Dem_PreDebounceNameType PreDebounceName; // (1)\r
union {\r
const Dem_PreDebounceAlgorithmClassType *PreDebounceAlgorithmClass; // (0..255) (Only 0..1 supported)\r
const Dem_IndicatorAttributeType *IndicatorAttribute; // (0..255)\r
// Dem_OEMSPecific\r
-} Dem_EventClassType;\r
+} Dem_EventClassType; /** @req DEM131 */\r
\r
// 10.2.12 DemEventParameter\r
typedef struct {\r
const Dem_CallbackEventStatusChangedType *CallbackEventStatusChanged;// (0..*)\r
const Dem_DTCClassType *DTCClassRef; // (0..1)\r
boolean Arc_EOL;\r
-} Dem_EventParameterType;\r
+} Dem_EventParameterType; /** @req DEM130 */\r
\r
// 10.2.19 DemGroupOfDTC\r
typedef struct {\r
\r
// 10.2.10 DemOemIdClass\r
typedef struct {\r
- uint8 OemID; // (Pre+Post)\r
-} Dem_OemIdClassType;\r
+ uint8 OemID;\r
+} Dem_OemIdClassType; /** @req DEM141 */\r
\r
// 10.2.9 DemConfigSet\r
typedef struct {\r
const Dem_DTCClassType *DTCClass; // (1..16777214)\r
const Dem_GroupOfDtcType *GroupOfDtc; // (1.16777214)\r
const Dem_OemIdClassType *OemIdClass; // (0..*)\r
-} Dem_ConfigSetType;\r
+} Dem_ConfigSetType; /** @req DEM130 */\r
\r
// 10.2.2 Dem\r
typedef struct {\r
#include "Dem_Types.h"\r
#include "Dem_Cfg.h"\r
#include "Dem_Lcfg.h"\r
-#include "Dem_IntErrId.h"\r
+#include "Dem_IntErrId.h" /** @req DEM115 */\r
#include "Dem_IntEvtId.h"\r
+/** @req DEM153 */ /** @req DEM154 */ /* Realized in Dem_IntErrId.h and Dem_IntEvtId.h */\r
// #include "Rte_Dem.h"\r
\r
\r
#if (DEM_DEV_ERROR_DETECT == STD_ON)\r
-// Error codes produced by this module\r
+// Error codes reported by this module defined by AUTOSAR /** @req DEM116 */ /** @req DEM173 */\r
#define DEM_E_CONFIG_PTR_INVALID 0x01\r
#define DEM_E_PARAM_CONFIG 0x10\r
#define DEM_E_PARAM_ADDRESS 0x11\r
#define DEM_E_UNINIT 0x20\r
#define DEM_E_NODATAAVAILABLE 0x30\r
\r
+// Other error codes reported by this module\r
#define DEM_E_EVENT_STATUS_BUFF_FULL 0x40\r
#define DEM_E_EXT_DATA_TOO_BIG 0x41\r
#define DEM_E_PRE_INIT_EXT_DATA_BUFF_FULL 0x42\r
/*\r
* Interface for upper layer modules (8.3.1)\r
*/\r
-#if ( DEM_VERSION_INFO_API == STD_ON )\r
-#define Dem_GetVersionInfo(_vi) STD_GET_VERSION_INFO(_vi,DEM)\r
+#if ( DEM_VERSION_INFO_API == STD_ON ) /** @req DEM111 */\r
+#define Dem_GetVersionInfo(_vi) STD_GET_VERSION_INFO(_vi,DEM) /** @req DEM177 */ /** @req DEM110 */ /** @req DEM178 */\r
#endif /* DEM_VERSION_INFO_API */\r
\r
/*\r
* Interface ECU State Manager <-> DEM (8.3.2)\r
*/\r
-void Dem_PreInit( void );\r
-void Dem_Init( void );\r
-void Dem_Shutdown( void );\r
+void Dem_PreInit( void ); /** @req DEM179 */\r
+void Dem_Init( void ); /** @req DEM181 */\r
+void Dem_Shutdown( void ); /** @req DEM182 */\r
\r
\r
/*\r
* Interface for basic software scheduler\r
*/\r
-void Dem_MainFunction( void );\r
+void Dem_MainFunction( void ); /** @req DEM266 */\r
\r
\r
/*\r
* Interface SW-Components via RTE <-> DEM (8.3.3)\r
*/\r
-Std_ReturnType Dem_SetEventStatus(Dem_EventIdType eventId, uint8 eventStatus);\r
-Std_ReturnType Dem_ResetEventStatus(Dem_EventIdType eventId);\r
-Std_ReturnType Dem_GetEventStatus(Dem_EventIdType eventId, Dem_EventStatusExtendedType *eventStatusExtended);\r
-Std_ReturnType Dem_GetEventFailed(Dem_EventIdType eventId, boolean *eventFailed);\r
-Std_ReturnType Dem_GetEventTested(Dem_EventIdType eventId, boolean *eventTested);\r
-Std_ReturnType Dem_GetFaultDetectionCounter(Dem_EventIdType eventId, sint8 *counter);\r
-Std_ReturnType Dem_SetOperationCycleState(Dem_OperationCycleIdType OperationCycleId, Dem_OperationCycleStateType CycleState);\r
-Std_ReturnType Dem_GetDTCOfEvent(Dem_EventIdType eventId, Dem_DTCKindType dtcKind, uint32* dtcOfEvent);\r
+Std_ReturnType Dem_SetEventStatus(Dem_EventIdType eventId, uint8 eventStatus); /** @req DEM183 */\r
+Std_ReturnType Dem_ResetEventStatus(Dem_EventIdType eventId); /** @req DEM185 */\r
+Std_ReturnType Dem_GetEventStatus(Dem_EventIdType eventId, Dem_EventStatusExtendedType *eventStatusExtended); /** @req DEM195 */\r
+Std_ReturnType Dem_GetEventFailed(Dem_EventIdType eventId, boolean *eventFailed); /** @req DEM196 */\r
+Std_ReturnType Dem_GetEventTested(Dem_EventIdType eventId, boolean *eventTested); /** @req DEM197 */\r
+Std_ReturnType Dem_GetFaultDetectionCounter(Dem_EventIdType eventId, sint8 *counter); /** @req DEM203 */\r
+Std_ReturnType Dem_SetOperationCycleState(Dem_OperationCycleIdType OperationCycleId, Dem_OperationCycleStateType CycleState); /** @req DEM194 */\r
+Std_ReturnType Dem_GetDTCOfEvent(Dem_EventIdType eventId, Dem_DTCKindType dtcKind, uint32* dtcOfEvent); /** @req DEM198 */\r
\r
\r
/*\r
* Interface BSW-Components <-> DEM (8.3.4)\r
*/\r
-void Dem_ReportErrorStatus(Dem_EventIdType eventId ,uint8 eventStatus);\r
+void Dem_ReportErrorStatus(Dem_EventIdType eventId ,uint8 eventStatus); /** @req DEM206 */\r
\r
\r
/*\r
* Interface DCM <-> DEM (8.3.5)\r
*/\r
-Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin);\r
-Dem_ReturnSetDTCFilterType Dem_SetDTCFilter(uint8 dtcStatusMask,\r
- Dem_DTCKindType dtcKind,\r
- Dem_DTCOriginType dtcOrigin,\r
- Dem_FilterWithSeverityType filterWithSeverity,\r
- Dem_DTCSeverityType dtcSeverityMask,\r
- Dem_FilterForFDCType filterForFaultDetectionCounter);\r
-Dem_ReturnGetStatusOfDTCType Dem_GetStatusOfDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, Dem_EventStatusExtendedType* dtcStatus);\r
-Std_ReturnType Dem_GetDTCStatusAvailabilityMask(uint8 *dtcStatusMask);\r
-Dem_ReturnGetNumberOfFilteredDTCType Dem_GetNumberOfFilteredDtc(uint16* numberOfFilteredDTC);\r
-Dem_ReturnGetNextFilteredDTCType Dem_GetNextFilteredDTC(uint32* dtc, Dem_EventStatusExtendedType* dtcStatus);\r
-Dem_ReturnTypeOfDtcSupportedType Dem_GetTranslationType(void);\r
-Dem_ReturnControlDTCStorageType Dem_DisableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind);\r
-Dem_ReturnControlDTCStorageType Dem_EnableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind);\r
-Dem_ReturnGetExtendedDataRecordByDTCType Dem_GetExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint8 *destBuffer, uint8 *bufSize);\r
-Dem_ReturnGetSizeOfExtendedDataRecordByDTCType Dem_GetSizeOfExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint16 *sizeOfExtendedDataRecord);\r
+Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin); /** @req DEM241 */\r
+Dem_ReturnSetDTCFilterType Dem_SetDTCFilter(uint8 dtcStatusMask, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, Dem_FilterWithSeverityType filterWithSeverity, Dem_DTCSeverityType dtcSeverityMask, Dem_FilterForFDCType filterForFaultDetectionCounter); /** @req DEM208 */\r
+Dem_ReturnGetStatusOfDTCType Dem_GetStatusOfDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, Dem_EventStatusExtendedType* dtcStatus); /** @req DEM212 */\r
+Std_ReturnType Dem_GetDTCStatusAvailabilityMask(uint8 *dtcStatusMask); /** @req DEM213 */\r
+Dem_ReturnGetNumberOfFilteredDTCType Dem_GetNumberOfFilteredDtc(uint16* numberOfFilteredDTC); /** @req DEM214 */\r
+Dem_ReturnGetNextFilteredDTCType Dem_GetNextFilteredDTC(uint32* dtc, Dem_EventStatusExtendedType* dtcStatus); /** @req DEM215 */\r
+Dem_ReturnTypeOfDtcSupportedType Dem_GetTranslationType(void); /** @req DEM230 */\r
+Dem_ReturnControlDTCStorageType Dem_DisableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind); /** @req DEM242 */\r
+Dem_ReturnControlDTCStorageType Dem_EnableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind); /** @req DEM243 */\r
+Dem_ReturnGetExtendedDataRecordByDTCType Dem_GetExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint8 *destBuffer, uint8 *bufSize); /** @req DEM239 */\r
+Dem_ReturnGetSizeOfExtendedDataRecordByDTCType Dem_GetSizeOfExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint16 *sizeOfExtendedDataRecord); /** @req DEM240 */\r
\r
\r
\r