* General requirements\r
*/\r
/** @req DCM054.Partially */ /** @req DCM055.Partially */ /** @req DCM110 */ /** @req DCM107 */ /** @req DCM332 */\r
-/** @req DCM012 */ /** @req DCM044 */ /** @req DCM364 */ /** @req DCM041 */\r
+/** @req DCM012 */ /** @req DCM044 */ /** @req DCM364 */ /** @req DCM040 */ /** @req DCM041 */\r
/** @req DCM042 */ /** @req DCM049 */\r
/** @req DCM033 */\r
/** @req DCM171 */\r
+/** @req DCM333 */ /** @req DCM334 */\r
\r
#include <string.h>\r
#include "Dcm.h"\r
/*\r
* Interface for basic software scheduler\r
*/\r
-void Dcm_MainFunction(void)\r
+void Dcm_MainFunction(void) /** @req DCM362 */\r
{\r
DsdMain();\r
DspMain();\r
\r
static void selectServiceFunction(uint8 sid)\r
{\r
+ /** @req DCM442.Partially */\r
switch (sid) /** @req DCM221 */\r
{\r
case SID_DIAGNOSTIC_SESSION_CONTROL:\r
runtime->diagReqestRxPduId = dcmRxPduId;\r
DsdDslDataIndication( // qqq: We are inside a critical section.\r
&(runtime->diagnosticRequestFromTester),\r
- protocolRow->DslProtocolSIDTable,\r
+ protocolRow->DslProtocolSIDTable, /** @req DCM035 */\r
protocolRx->DslProtocolAddrType,\r
mainConnection->DslProtocolTx->DcmDslProtocolTxPduId,\r
&(runtime->diagnosticResponseFromDsd),\r
case PROVIDED_TO_PDUR: {\r
ComM_DCM_InactivateDiagnostic(); /** @req DCM164 */\r
startS3SessionTimer(runtime, protocolRow); /** @req DCM141 */\r
- releaseExternalRxTxBuffers(protocolRow, runtime); /** @req DCM118 *//** @req DCM353 *//** @req DCM354 */\r
+ releaseExternalRxTxBuffers(protocolRow, runtime); /** @req DCM118 *//** @req DCM352 *//** @req DCM353 *//** @req DCM354 */\r
externalBufferReleased = TRUE;\r
DEBUG( DEBUG_MEDIUM, "Released external buffer OK!\n");\r
DsdDataConfirmation(mainConnection->DslProtocolTx->DcmDslProtocolTxPduId, result); /** @req DCM117 *//** @req DCM235 */\r
Dem_ReturnSetDTCFilterType setDtcFilterResult;\r
\r
// Setup the DTC filter\r
- switch (pduRxData->SduDataPtr[1]) /** @reg DCM293 */\r
+ switch (pduRxData->SduDataPtr[1]) /** @req DCM293 */\r
{\r
case 0x01: // reportNumberOfDTCByStatusMask\r
setDtcFilterResult = Dem_SetDTCFilter(pduRxData->SduDataPtr[2], DEM_DTC_KIND_ALL_DTCS, DEM_DTC_ORIGIN_PRIMARY_MEMORY, DEM_FILTER_WITH_SEVERITY_NO, VALUE_IS_NOT_USED, DEM_FILTER_FOR_FDC_NO);\r
uint8 dtcStatusMask;\r
TxDataType *txData = (TxDataType*)pduTxData->SduDataPtr;\r
\r
- /** @reg DCM376 */\r
+ /** @req DCM376 */\r
Dem_GetNumberOfFilteredDtc(&numberOfFilteredDtc);\r
Dem_GetDTCStatusAvailabilityMask(&dtcStatusMask);\r
\r
} TxDataType;\r
\r
// Setup the DTC filter\r
- switch (pduRxData->SduDataPtr[1]) /** @reg DCM378 */\r
+ switch (pduRxData->SduDataPtr[1]) /** @req DCM378 */\r
{\r
case 0x02: // reportDTCByStatusMask\r
setDtcFilterResult = Dem_SetDTCFilter(pduRxData->SduDataPtr[2], DEM_DTC_KIND_ALL_DTCS, DEM_DTC_ORIGIN_PRIMARY_MEMORY, DEM_FILTER_WITH_SEVERITY_NO, VALUE_IS_NOT_USED, DEM_FILTER_FOR_FDC_NO);\r
Dem_EventStatusExtendedType dtcStatus;\r
uint16 nrOfDtcs = 0;\r
\r
- /** @reg DCM377 */\r
+ /** @req DCM377 */\r
Dem_GetDTCStatusAvailabilityMask(&dtcStatusMask);\r
\r
// Create positive response (ISO 14229-1 table 252)\r
uint8 endRecNum;\r
\r
// Switch on sub function\r
- switch (pduRxData->SduDataPtr[1]) /** @reg DCM378 */\r
+ switch (pduRxData->SduDataPtr[1]) /** @req DCM378 */\r
{\r
case 0x06: // reportDTCExtendedDataRecordByDTCNumber\r
dtcOrigin = DEM_DTC_ORIGIN_PRIMARY_MEMORY;\r
\r
void DspUdsReadDtcInformation(const PduInfoType *pduRxData, PduInfoType *pduTxData)\r
{\r
- /** @reg DCM248 */\r
+ /** @req DCM248 */\r
// Sub function number 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15\r
const uint8 sduLength[0x16] = {0, 3, 3, 6, 6, 3, 6, 4, 4, 5, 2, 2, 2, 2, 2, 3, 6, 3, 3, 3, 2, 2};\r
\r
const Dcm_DspDidReadType *DspDidRead; // (0..1)\r
const Dcm_DspDidWriteType *DspDidWrite; // (0..1)\r
const Dcm_DspDidControlType *DspDidControl; // (0..1)\r
-} Dcm_DspDidAccessType;\r
+} Dcm_DspDidAccessType; /** @req DCM609 */\r
\r
// 10.2.24\r
typedef struct {\r
\r
// 10.2.21\r
typedef struct {\r
- uint8 DspMaxDidToRead; // (0..1)\r
+ uint8 DspMaxDidToRead; // (0..1) /** @req DCM638 */\r
// Containers\r
const Dcm_DspDidType *DspDid; // (0..*)\r
const Dcm_DspDidInfoType *DspDidInfo; // (0..*)\r