* Procedure: Dem_ReportErrorStatus\r
* Reentrant: Yes\r
*/\r
-void Dem_ReportErrorStatus( Dem_EventIdType eventId, Dem_EventStatusType eventStatus ) /** @req DEM107 *//** @req DEM206 */\r
+void Dem_ReportErrorStatus( Dem_EventIdType eventId, Dem_EventStatusType eventStatus ) /** @req DEM206 */\r
{\r
\r
switch (demState) {\r
storeFreezeFrameDataPerMem();\r
break;\r
\r
- case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
-\r
- break;\r
-\r
case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
+ case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
// Not yet supported\r
returnCode = DEM_CLEAR_WRONG_DTCORIGIN;\r
if (checkDtcKind(dtcKind, eventRec->eventParamRef)) {\r
if (checkDtcOrigin(dtcOrigin, eventRec->eventParamRef)) {\r
if (lookupFreezeFrameDataRecNumParam(recordNumber, eventRec->eventParamRef, &FFDataRecordClass)) {\r
- if(lookupFreezeFrameDataSize(recordNumber, &FFDataRecordClass, &FFDataSize)){\r
- if (*bufSize >= FFDataSize) {\r
- switch (dtcOrigin)\r
- {\r
- case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
- if (lookupFreezeFrameDataPriMem(eventRec->eventId,recordNumber, &freezeframe)) {\r
- memcpy(destBuffer, freezeframe->data, FFDataSize); /** @req DEM071 */\r
- *bufSize = FFDataSize;\r
- returnCode = DEM_GET_FFDATABYDTC_OK;\r
- }\r
- else {\r
- *bufSize = 0;\r
- returnCode = DEM_GET_FFDATABYDTC_OK;\r
- }\r
- break;\r
-\r
- case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
- case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
- case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
- // Not yet supported\r
- returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCORIGIN;\r
- DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GETFREEZEFRAMEDATARECORDBYDTC_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
- break;\r
- default:\r
- returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCORIGIN;\r
- break;\r
+ lookupFreezeFrameDataSize(recordNumber, &FFDataRecordClass, &FFDataSize);\r
+ if (*bufSize >= FFDataSize) {\r
+ switch (dtcOrigin)\r
+ {\r
+ case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
+ if (lookupFreezeFrameDataPriMem(eventRec->eventId,recordNumber, &freezeframe)) {\r
+ memcpy(destBuffer, freezeframe->data, FFDataSize); /** @req DEM071 */\r
+ *bufSize = FFDataSize;\r
+ returnCode = DEM_GET_FFDATABYDTC_OK;\r
}\r
- }\r
- else{\r
- returnCode = DEM_GET_FFDATABYDTC_BUFFERSIZE;\r
+ else {\r
+ *bufSize = 0;\r
+ returnCode = DEM_GET_FFDATABYDTC_OK;\r
+ }\r
+ break;\r
+\r
+ case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
+ case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
+ case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
+ // Not yet supported\r
+ returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCORIGIN;\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GETFREEZEFRAMEDATARECORDBYDTC_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ break;\r
+ default:\r
+ returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCORIGIN;\r
+ break;\r
}\r
}\r
- else {\r
+ else{\r
returnCode = DEM_GET_FFDATABYDTC_BUFFERSIZE;\r
}\r
}\r
if (lookupFreezeFrameDataRecNumParam(recordNumber, eventRec->eventParamRef, &FFDataRecordClass)) {\r
if(FFDataRecordClass->FFIdClassRef != NULL){\r
for(i=0; (i < DEM_MAX_NR_OF_RECORDS_IN_FREEZEFRAME_DATA) && (!(FFDataRecordClass->FFIdClassRef[i].Arc_EOL)); i++){\r
- if(didNum < *arraySize){\r
- dataId[didNum] = &FFDataRecordClass->FFIdClassRef[i].DidIdentifier;/** @req DEM073 */\r
- didNum++;\r
- returnCode = DEM_GET_ID_OK;\r
- }else{\r
- returnCode = DEM_GET_ID_WRONG_FF_TYPE;\r
- }\r
+ dataId[didNum] = &FFDataRecordClass->FFIdClassRef[i].DidIdentifier;/** @req DEM073 */\r
+ didNum++;\r
+ returnCode = DEM_GET_ID_OK;\r
+\r
}\r
*arraySize = didNum;\r
}\r
-\r
+ else {\r
+ returnCode = DEM_GET_ID_WRONG_FF_TYPE;\r
+ }\r
}\r
else{\r
returnCode = DEM_GET_ID_WRONG_FF_TYPE;\r
if (checkDtcOrigin(dtcOrigin, eventRec->eventParamRef)) {\r
if (lookupFreezeFrameDataRecNumParam(recordNumber, eventRec->eventParamRef, &FFDataRecordClass)) {\r
if(FFDataRecordClass->FFIdClassRef != NULL){\r
+ /* Note - there is a function called lookupFreezeFrameDataSize that can be used here */\r
for(i = 0; (i < DEM_MAX_NR_OF_RECORDS_IN_FREEZEFRAME_DATA) && (!(FFDataRecordClass->FFIdClassRef[i].Arc_EOL)); i++){\r
/* read out the did size */\r
if(FFDataRecordClass->FFIdClassRef[i].DidReadDataLengthFnc != NULL){\r
returnCode = DEM_GET_SIZEOFFF_OK;\r
}\r
}\r
+ else {\r
+ returnCode = DEM_GET_SIZEOFFF_WRONG_RNUM;\r
+ }\r
}\r
else{\r
returnCode = DEM_GET_SIZEOFFF_WRONG_RNUM;\r