]> rtime.felk.cvut.cz Git - arc.git/blobdiff - diagnostic/Dcm/Dcm_Dsp.c
Dem, Changed types to match tool output.
[arc.git] / diagnostic / Dcm / Dcm_Dsp.c
index f9ca0a6709596bead2061cc669357a3fb64e37fb..c852abf47761dc5a215446a78eb4a1bc2a103649 100644 (file)
@@ -734,7 +734,7 @@ static Dcm_NegativeResponseCodeType udsReadDtcInfoSub_0x04(const PduInfoType *pd
                        for (index = 0; pEventParaTemp->FreezeFrameClassRef[index] != NULL; index++){\r
                                if (pEventParaTemp->FreezeFrameClassRef[index]->FFRecordNumber == RecordNumber) {\r
                                        // Calculate the Number of Dids in FF\r
-                                       for (FFIdNumber = 0; pEventParaTemp->FreezeFrameClassRef[index]->FFIdClassRef[FFIdNumber].Arc_EOL != FALSE; FFIdNumber++) {\r
+                                       for (FFIdNumber = 0; pEventParaTemp->FreezeFrameClassRef[index]->FFIdClassRef[FFIdNumber]->Arc_EOL != FALSE; FFIdNumber++) {\r
                                                ;\r
                                        }\r
                                }\r
@@ -945,7 +945,7 @@ static boolean lookupDid(uint16 didNr, const Dcm_DspDidType **didPtr)
                dspDid++;\r
        }\r
 \r
-       if (!dspDid->Arc_EOL) {\r
+       if (!dspDid->Arc_EOL && (!dspDid->DspDidInfoRef->DspDidDynamicllyDefined)) {\r
                didFound = TRUE;\r
                *didPtr = dspDid;\r
        }\r
@@ -1264,8 +1264,8 @@ static Dcm_NegativeResponseCodeType writeDidData(const Dcm_DspDidType *didPtr, c
 \r
                                        if (result == E_OK) {\r
                                                if (didLen == writeDidLen) {    /** @req DCM473 */\r
-                                                       result = didPtr->DspDidWriteDataFnc(&pduRxData->SduDataPtr[3], (uint8)didLen, &errorCode);      /** @req DCM395 */\r
-                                                       if ((result != E_OK) && (errorCode == DCM_E_POSITIVERESPONSE)) {\r
+                                                       result = didPtr->DspDidWriteDataFnc(&pduRxData->SduDataPtr[3], (uint8)didLen, &responseCode);   /** @req DCM395 */\r
+                                                       if( result != E_OK && responseCode == DCM_E_POSITIVERESPONSE ) {\r
                                                                responseCode = DCM_E_CONDITIONSNOTCORRECT;\r
                                                        }\r
                                                }\r
@@ -2198,9 +2198,7 @@ static Dcm_NegativeResponseCodeType DspSavePeriodicData(uint16 didNr, uint32 per
        if(responseCode == DCM_E_POSITIVERESPONSE)\r
        {\r
                dspPDidRef.dspPDid[PdidBufferNr].PeriodicDid = (uint8)didNr & DCM_DID_LOW_MASK;\r
-                       /* REVIEW JB 2012-06-05: Why is TxCounter set to PdidBufferNr - it seems wrong. */\r
-               dspPDidRef.dspPDid[PdidBufferNr].PDidTxCounter = PdidBufferNr*3;\r
-\r
+               dspPDidRef.dspPDid[PdidBufferNr].PDidTxCounter = 0;\r
                dspPDidRef.dspPDid[PdidBufferNr].PDidTxCounterNumber = periodicTransmitCounter;\r
        }\r
        return responseCode;\r
@@ -2745,23 +2743,16 @@ void DspDynamicallyDefineDataIdentifier(const PduInfoType *pduRxData,PduInfoType
 static Dcm_NegativeResponseCodeType DspIOControlReturnControlToECU(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
 {\r
        Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
-       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidReturnControlToEcu == TRUE)\r
+       if(pduRxData->SduLength > 4)\r
        {\r
-               if(pduRxData->SduLength > 4)\r
+               if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
                {\r
-                       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+                       if(((DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidReturnControlToEcu->DspDidControlOptionRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
                        {\r
-                               if(((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
+                               if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
                                {\r
-                                       if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
-                                       {\r
-                                               DidPtr->DspDidReturnControlToEcuFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
-                                               \r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                                       }\r
+                                       DidPtr->DspDidReturnControlToEcuFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
+\r
                                }\r
                                else\r
                                {\r
@@ -2775,32 +2766,32 @@ static Dcm_NegativeResponseCodeType DspIOControlReturnControlToECU(const Dcm_Dsp
                }\r
                else\r
                {\r
-                       if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
-                       {\r
+                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
+               {\r
 \r
-                               if(DidPtr->DspDidControlRecordSize != NULL)\r
-                               {\r
-                                       DidPtr->DspDidReturnControlToEcuFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
-                                       pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
-                               }\r
-                               else\r
-                               {\r
-                                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                               }\r
+                       if(DidPtr->DspDidControlRecordSize != NULL)\r
+                       {\r
+                               DidPtr->DspDidReturnControlToEcuFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
+                               pduTxData->SduLength = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidReturnControlToEcu->DspDidControlStatusRecordSize + 4;\r
                        }\r
                        else\r
                        {\r
                                responseCode = DCM_E_REQUESTOUTOFRANGE;\r
                        }\r
                }\r
-       }\r
-       else\r
-       {\r
-               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               else\r
+               {\r
+                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               }\r
        }\r
        if(responseCode == DCM_E_POSITIVERESPONSE)\r
        {\r
-               pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+               pduTxData->SduLength = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidReturnControlToEcu->DspDidControlStatusRecordSize + 4;\r
                pduTxData->SduDataPtr[3] = DCM_RETURN_CONTROL_TO_ECU;\r
        }\r
        \r
@@ -2810,22 +2801,15 @@ static Dcm_NegativeResponseCodeType DspIOControlReturnControlToECU(const Dcm_Dsp
 static Dcm_NegativeResponseCodeType DspIOControlResetToDefault(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
 {\r
        Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
-       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidResetToDefault == TRUE)\r
+       if(pduRxData->SduLength > 4)\r
        {\r
-               if(pduRxData->SduLength > 4)\r
+               if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
                {\r
-                       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+                       if(((DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidResetToDefault->DspDidControlOptionRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
                        {\r
-                               if(((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
+                               if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
                                {\r
-                                       if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
-                                       {\r
-                                               DidPtr->DspDidResetToDeaultFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                                       }\r
+                                       DidPtr->DspDidResetToDefaultFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
                                }\r
                                else\r
                                {\r
@@ -2839,32 +2823,32 @@ static Dcm_NegativeResponseCodeType DspIOControlResetToDefault(const Dcm_DspDidT
                }\r
                else\r
                {\r
-                       if(DidPtr->DspDidResetToDeaultFnc != NULL)\r
-                       {\r
+                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               if(DidPtr->DspDidResetToDefaultFnc != NULL)\r
+               {\r
 \r
-                               if(DidPtr->DspDidControlRecordSize != NULL)\r
-                               {\r
-                                       DidPtr->DspDidResetToDeaultFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
-                                       pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
-                               }\r
-                               else\r
-                               {\r
-                                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                               }\r
+                       if(DidPtr->DspDidControlRecordSize != NULL)\r
+                       {\r
+                               DidPtr->DspDidResetToDefaultFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
+                               pduTxData->SduLength = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidResetToDefault->DspDidControlStatusRecordSize + 4;\r
                        }\r
                        else\r
                        {\r
                                responseCode = DCM_E_REQUESTOUTOFRANGE;\r
                        }\r
                }\r
-       }\r
-       else\r
-       {\r
-               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               else\r
+               {\r
+                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               }\r
        }\r
        if(responseCode == DCM_E_POSITIVERESPONSE)\r
        {\r
-               pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize+4;\r
+               pduTxData->SduLength = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidResetToDefault->DspDidControlStatusRecordSize+4;\r
                pduTxData->SduDataPtr[3] = DCM_RESET_TO_DEFAULT;\r
        }\r
        return responseCode;\r
@@ -2876,22 +2860,15 @@ static Dcm_NegativeResponseCodeType DspIOControlResetToDefault(const Dcm_DspDidT
 static Dcm_NegativeResponseCodeType DspIOControlFreezeCurrentState(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
 {\r
        Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
-       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidFreezeCurrentState == TRUE)\r
+       if(pduRxData->SduLength > 4)\r
        {\r
-               if(pduRxData->SduLength > 4)\r
+               if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
                {\r
-                       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+                       if(((DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidFreezeCurrentState->DspDidControlOptionRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
                        {\r
-                               if(((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
+                               if(DidPtr->DspDidFreezeCurrentStateFnc != NULL)\r
                                {\r
-                                       if(DidPtr->DspDidFreezeCurrentStateFnc != NULL)\r
-                                       {\r
-                                               DidPtr->DspDidFreezeCurrentStateFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                                       }\r
+                                       DidPtr->DspDidFreezeCurrentStateFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
                                }\r
                                else\r
                                {\r
@@ -2905,32 +2882,32 @@ static Dcm_NegativeResponseCodeType DspIOControlFreezeCurrentState(const Dcm_Dsp
                }\r
                else\r
                {\r
-                       if(DidPtr->DspDidFreezeCurrentStateFnc != NULL)\r
-                       {\r
+                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               if(DidPtr->DspDidFreezeCurrentStateFnc != NULL)\r
+               {\r
 \r
-                               if(DidPtr->DspDidControlRecordSize != 0)\r
-                               {\r
-                                       DidPtr->DspDidFreezeCurrentStateFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
-                                       pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
-                               }\r
-                               else\r
-                               {\r
-                                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                               }\r
+                       if(DidPtr->DspDidControlRecordSize != 0)\r
+                       {\r
+                               DidPtr->DspDidFreezeCurrentStateFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
+                               pduTxData->SduLength = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidFreezeCurrentState->DspDidControlStatusRecordSize + 4;\r
                        }\r
                        else\r
                        {\r
                                responseCode = DCM_E_REQUESTOUTOFRANGE;\r
                        }\r
                }\r
-       }\r
-       else\r
-       {\r
-               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               else\r
+               {\r
+                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+               }\r
        }\r
        if(responseCode == DCM_E_POSITIVERESPONSE)\r
        {\r
-               pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+               pduTxData->SduLength = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidFreezeCurrentState->DspDidControlStatusRecordSize + 4;\r
                pduTxData->SduDataPtr[3] = DCM_FREEZE_CURRENT_STATE;\r
        }\r
        \r
@@ -2940,41 +2917,34 @@ static Dcm_NegativeResponseCodeType DspIOControlFreezeCurrentState(const Dcm_Dsp
 static Dcm_NegativeResponseCodeType DspIOControlShortTeamAdjustment(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
 {\r
        Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
-       uint8 didControlOptionRecordSize = DidPtr->DspDidControlRecordSize->DspDidControlOptionRecordSize;\r
-       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidShortTermAdjustment == TRUE)\r
+       uint8 didControlOptionRecordSize = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidShortTermAdjustment->DspDidControlOptionRecordSize;\r
+       if(pduRxData->SduLength > 4)\r
        {\r
-               if(pduRxData->SduLength > 4)\r
+               if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
                {\r
-                       if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+                       if(((((DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidShortTermAdjustment->DspDidControlEnableMaskRecordSize + 7)) >> 3) + (didControlOptionRecordSize)) == (pduRxData->SduLength - 4))\r
                        {\r
-                               if(((((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7)) >> 3) + (didControlOptionRecordSize)) == (pduRxData->SduLength - 4))\r
+                               if(DidPtr->DspDidShortTermAdjustmentFnc != NULL)\r
                                {\r
-                                       if(DidPtr->DspDidShortTermAdjustmentFnc != NULL)\r
-                                       {\r
-                                               DidPtr->DspDidShortTermAdjustmentFnc(&pduRxData->SduDataPtr[4],&pduRxData->SduDataPtr[4 + didControlOptionRecordSize],&pduTxData->SduDataPtr[4],&responseCode);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                                       }\r
+                                       DidPtr->DspDidShortTermAdjustmentFnc(&pduRxData->SduDataPtr[4],&pduRxData->SduDataPtr[4 + didControlOptionRecordSize],&pduTxData->SduDataPtr[4],&responseCode);\r
                                }\r
-                               else if((didControlOptionRecordSize) == (pduRxData->SduLength - 4))\r
+                               else\r
                                {\r
-                                       if(DidPtr->DspDidShortTermAdjustmentFnc != NULL)\r
-                                       {\r
-                                               DidPtr->DspDidShortTermAdjustmentFnc(&pduRxData->SduDataPtr[4],NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               responseCode = DCM_E_REQUESTOUTOFRANGE;\r
-                                       }\r
+                                       responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+                               }\r
+                       }\r
+                       else if((didControlOptionRecordSize) == (pduRxData->SduLength - 4))\r
+                       {\r
+                               if(DidPtr->DspDidShortTermAdjustmentFnc != NULL)\r
+                               {\r
+                                       DidPtr->DspDidShortTermAdjustmentFnc(&pduRxData->SduDataPtr[4],NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
                                }\r
                                else\r
                                {\r
                                        responseCode = DCM_E_REQUESTOUTOFRANGE;\r
                                }\r
                        }\r
-                       else \r
+                       else\r
                        {\r
                                responseCode = DCM_E_REQUESTOUTOFRANGE;\r
                        }\r
@@ -2990,7 +2960,7 @@ static Dcm_NegativeResponseCodeType DspIOControlShortTeamAdjustment(const Dcm_Ds
        }\r
        if(responseCode == DCM_E_POSITIVERESPONSE)\r
        {\r
-               pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+               pduTxData->SduLength = DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidShortTermAdjustment->DspDidControlStatusRecordSize + 4;\r
                pduTxData->SduDataPtr[3] = DCM_SHORT_TERM_ADJUSTMENT;\r
        }\r
        \r