]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Solved ticket refs #108
authorpete <devnull@localhost>
Fri, 20 Aug 2010 09:02:38 +0000 (11:02 +0200)
committerpete <devnull@localhost>
Fri, 20 Aug 2010 09:02:38 +0000 (11:02 +0200)
diagnostic/Dcm/Dcm.c
diagnostic/Dcm/Dcm_Dsl.c
diagnostic/Dcm/Dcm_Dsp.c
diagnostic/Dcm/Dcm_Internal.h
include/Dcm.h

index d11beae82e39f99e2caa04f4a52310e3937e2f69..6cf072c6f81f16407f902d85d106012886be9876 100644 (file)
  *  General requirements\r
  */\r
 /** @req DCM054.Partially */ /** @req DCM055.Partially */ /** @req DCM110 */ /** @req DCM107 */ /** @req DCM332 */\r
-/** @req DCM012 */ /** @req DCM044 */ /** @req DCM364 */ /** @req DCM040 */ /** @req DCM041 */\r
+/** @req DCM012 */ /** @req DCM044 */ /** @req DCM364 */ /** @req DCM041 */\r
 /** @req DCM042 */ /** @req DCM049 */\r
 /** @req DCM033 */\r
 /** @req DCM171 */\r
 /** @req DCM333 */ /** @req DCM334 */\r
 /** @req DCM048 */\r
+ /** @req DCM040.Uninit */\r
+ /** @req DCM040.Param */\r
+ /** @req DCM043 */\r
+ /** @req DCM048 */\r
 \r
 #include <string.h>\r
 #include "Dcm.h"\r
@@ -85,6 +89,8 @@ void Dcm_Init(void) /** @req DCM037 */
  */\r
 void Dcm_MainFunction(void) /** @req DCM362 */\r
 {\r
+       VALIDATE_NO_RV(dcmState == DCM_INITIALIZED, DCM_MAIN_ID, DCM_E_UNINIT);\r
+\r
        DsdMain();\r
        DspMain();\r
        DslMain();\r
@@ -97,6 +103,9 @@ BufReq_ReturnType Dcm_ProvideRxBuffer(PduIdType dcmRxPduId, PduLengthType tpSduL
 {\r
        BufReq_ReturnType returnCode = BUFREQ_OK;\r
 \r
+       VALIDATE_RV(dcmState == DCM_INITIALIZED, DCM_PROVIDE_RX_BUFFER_ID, DCM_E_UNINIT, BUFREQ_NOT_OK);\r
+       VALIDATE_RV(dcmRxPduId < DCM_DSL_RX_PDU_ID_LIST_LENGTH, DCM_PROVIDE_RX_BUFFER_ID, DCM_E_PARAM, BUFREQ_NOT_OK);\r
+\r
        returnCode = DslProvideRxBufferToPdur(dcmRxPduId, tpSduLength, (const PduInfoType**)pduInfoPtr);\r
 \r
        return returnCode;\r
@@ -105,6 +114,9 @@ BufReq_ReturnType Dcm_ProvideRxBuffer(PduIdType dcmRxPduId, PduLengthType tpSduL
 \r
 void Dcm_RxIndication(PduIdType dcmRxPduId, NotifResultType result)\r
 {\r
+       VALIDATE_NO_RV(dcmState == DCM_INITIALIZED, DCM_RX_INDICATION_ID, DCM_E_UNINIT);\r
+       VALIDATE_NO_RV(dcmRxPduId < DCM_DSL_RX_PDU_ID_LIST_LENGTH, DCM_RX_INDICATION_ID, DCM_E_PARAM);\r
+\r
        DslRxIndicationFromPduR(dcmRxPduId, result);\r
 }\r
 \r
@@ -113,6 +125,8 @@ Std_ReturnType Dcm_GetActiveProtocol(Dcm_ProtocolType *protocolId)
 {\r
        Std_ReturnType returnCode = E_OK;\r
 \r
+       VALIDATE_RV(dcmState == DCM_INITIALIZED, DCM_GET_ACTIVE_PROTOCOL_ID, DCM_E_UNINIT, E_NOT_OK);\r
+\r
        returnCode = DslGetActiveProtocol(protocolId);\r
 \r
        return returnCode;\r
@@ -123,6 +137,8 @@ Std_ReturnType Dcm_GetSecurityLevel(Dcm_SecLevelType *secLevel)
 {\r
        Std_ReturnType returnCode = E_OK;\r
 \r
+       VALIDATE_RV(dcmState == DCM_INITIALIZED, DCM_GET_SECURITY_LEVEL_ID, DCM_E_UNINIT, E_NOT_OK);\r
+\r
        returnCode = DslGetSecurityLevel(secLevel);\r
 \r
        return returnCode;\r
@@ -133,6 +149,8 @@ Std_ReturnType Dcm_GetSesCtrlType(Dcm_SesCtrlType *sesCtrlType)
 {\r
        Std_ReturnType returnCode = E_OK;\r
 \r
+       VALIDATE_RV(dcmState == DCM_INITIALIZED, DCM_GET_SES_CTRL_TYPE_ID, DCM_E_UNINIT, E_NOT_OK);\r
+\r
        returnCode = DslGetSesCtrlType(sesCtrlType);\r
 \r
        return returnCode;\r
@@ -142,6 +160,9 @@ BufReq_ReturnType Dcm_ProvideTxBuffer(PduIdType dcmTxPduId, PduInfoType **pduInf
 {\r
        BufReq_ReturnType returnCode = BUFREQ_OK;\r
 \r
+       VALIDATE_RV(dcmState == DCM_INITIALIZED, DCM_PROVIDE_TX_BUFFER_ID, DCM_E_UNINIT, BUFREQ_NOT_OK);\r
+       VALIDATE_RV(dcmTxPduId < DCM_DSL_TX_PDU_ID_LIST_LENGTH, DCM_PROVIDE_TX_BUFFER_ID, DCM_E_PARAM, BUFREQ_NOT_OK);\r
+\r
        returnCode = DslProvideTxBuffer(dcmTxPduId, (const PduInfoType**)pduInfoPtr, length);\r
 \r
        return returnCode;\r
@@ -149,6 +170,9 @@ BufReq_ReturnType Dcm_ProvideTxBuffer(PduIdType dcmTxPduId, PduInfoType **pduInf
 \r
 void Dcm_TxConfirmation(PduIdType dcmTxPduId, NotifResultType result)\r
 {\r
+       VALIDATE_NO_RV(dcmState == DCM_INITIALIZED, DCM_TX_CONFIRMATION_ID, DCM_E_UNINIT);\r
+       VALIDATE_NO_RV(dcmTxPduId < DCM_DSL_TX_PDU_ID_LIST_LENGTH, DCM_TX_CONFIRMATION_ID, DCM_E_PARAM);\r
+\r
        DslTxConfirmation(dcmTxPduId, result);\r
 }\r
 \r
index 98830f0d7e597ee4cb79540cabf797bfd968075e..70b3c658e06ea5be6d7c2c8c481be250c8849b36 100644 (file)
@@ -119,7 +119,7 @@ static void changeDiagnosticSession(Dcm_DslRunTimeProtocolParametersType *runtim
                break;\r
 \r
        default:\r
-               DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_CHANGE_DIAGNOSTIC_SESSION, DCM_E_PARAM_DATA);\r
+               DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_CHANGE_DIAGNOSTIC_SESSION_ID, DCM_E_PARAM);\r
                DEBUG(DEBUG_MEDIUM, "Old session invalid");\r
                break;\r
        }\r
@@ -134,7 +134,7 @@ static void changeDiagnosticSession(Dcm_DslRunTimeProtocolParametersType *runtim
                break;\r
 \r
        default:\r
-               DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_CHANGE_DIAGNOSTIC_SESSION, DCM_E_PARAM_DATA);\r
+               DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_CHANGE_DIAGNOSTIC_SESSION_ID, DCM_E_PARAM);\r
                DEBUG(DEBUG_MEDIUM, "New session invalid");\r
                break;\r
        }\r
index 4525740c3d90e28e9369b17e27175faba76cbb86..96e611459d9d103361bd127fb594a6d9bed48435 100644 (file)
@@ -1095,7 +1095,7 @@ void DspDcmConfirmation(PduIdType confirmPduId)
 #if ( MCU_PERFORM_RESET_API == STD_ON )\r
                        Mcu_PerformReset();\r
 #else\r
-                       DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_UDS_RESET, DCM_E_NOT_SUPPORTED);\r
+                       DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_UDS_RESET_ID, DCM_E_NOT_SUPPORTED);\r
 #endif\r
                }\r
        }\r
index 84b0aa7d02739d4c57283c633d7fcd7e8d540576..dab055ef87973393ac13bfc57a0b2686401604ba 100644 (file)
           return E_NOT_OK; \\r
         }\r
 \r
+#define VALIDATE_RV(_exp,_api,_err,_rv ) \\r
+        if( !(_exp) ) { \\r
+          Det_ReportError(MODULE_ID_DCM, 0, _api, _err); \\r
+          return _rv; \\r
+        }\r
+\r
 #define VALIDATE_NO_RV(_exp,_api,_err ) \\r
   if( !(_exp) ) { \\r
           Det_ReportError(MODULE_ID_DCM, 0, _api, _err); \\r
@@ -40,6 +46,7 @@
 \r
 #else\r
 #define VALIDATE(_exp,_api,_err )\r
+#define VALIDATE_RV(_exp,_api,_err,_rv )\r
 #define VALIDATE_NO_RV(_exp,_api,_err )\r
 #undef DET_REPORTERROR\r
 #define DET_REPORTERROR(_x,_y,_z,_q)\r
index c9af6985f0578edf683372134f93b8c54003d944..31aff56f702050ab03e50741f467f6c59b964607 100644 (file)
 #include "Dcm_Cbk.h"\r
 \r
 #if (DCM_DEV_ERROR_DETECT == STD_ON)\r
-// Error codes produced by this module\r
+// Error codes produced by this module defined by Autosar\r
+#define DCM_E_INTERFACE_TIMEOUT                                0x01\r
+#define DCM_E_INTERFACE_VALUE_OUT_OF_RANGE     0x02\r
+#define DCM_E_INTERFACE_BUFFER_OVERFLOW                0x03\r
+#define DCM_E_INTERFACE_PROTOCOL_MISMATCH      0x04\r
+#define DCM_E_UNINIT                                           0x05\r
+#define DCM_E_PARAM                                                    0x06\r
+\r
+// Other error codes reported by this module\r
 #define DCM_E_CONFIG_INVALID                           0x41\r
-#define DCM_E_UNEXPECTED_PARAM                         0x42\r
 #define DCM_E_NOT_SUPPORTED                                    0xfe\r
 #define DCM_E_NOT_IMPLEMENTED_YET                      0xff\r
 \r
-// Service ID in this module\r
+// Service IDs in this module defined by Autosar\r
 #define DCM_INIT_ID                                                    0x01\r
-#define DCM_HANDLE_RESPONSE_TRANSMISSION       0x80\r
-#define DCM_UDS_READ_DTC_INFO                          0x81\r
-#define DCM_UDS_RESET                                          0x82\r
-#define DCM_CHANGE_DIAGNOSTIC_SESSION          0x88\r
+#define DCM_PROVIDE_RX_BUFFER_ID                       0x02\r
+#define DCM_RX_INDICATION_ID                           0x03\r
+#define DCM_PROVIDE_TX_BUFFER_ID                       0x04\r
+#define DCM_TX_CONFIRMATION_ID                         0x05\r
+#define DCM_GET_SES_CTRL_TYPE_ID                       0x06\r
+#define DCM_GET_SECURITY_LEVEL_ID                      0x0d\r
+#define DCM_GET_ACTIVE_PROTOCOL_ID                     0x0f\r
+#define DCM_COMM_NO_COM_MODE_ENTERED_ID                0x21\r
+#define DCM_COMM_SILENT_COM_MODE_ENTERED_ID    0x22\r
+#define DCM_COMM_FULL_COM_MODE_ENTERED_ID      0x23\r
+#define DCM_MAIN_ID                                                    0x25\r
+\r
+// Other service IDs reported by this module\r
+#define DCM_HANDLE_RESPONSE_TRANSMISSION_ID    0x80\r
+#define DCM_UDS_READ_DTC_INFO_ID                       0x81\r
+#define DCM_UDS_RESET_ID                                       0x82\r
+#define DCM_CHANGE_DIAGNOSTIC_SESSION_ID       0x88\r
 #define DCM_GLOBAL_ID                                          0xff\r
 \r
 #endif\r