#ifndef Test_App_H
#define Test_App_H

#include "Rte_Dcm_Type.h"

extern uint16 VehicleSpeed_Data;
extern uint16 EngineLoad_Data;

extern FUNC(Std_ReturnType,DCM_APPL_CODE) RTE_VehicleSpeed_Data (uint8* Buffer);

extern Std_ReturnType RTE_EngineSpeed_Data(uint8* Buffer);

extern FUNC(void, TestDiag_CODE) RE_Swc_Dem_Periodic(void);
extern FUNC(void, TestDiag_CODE) RunnableEntity_dcm(void);

FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L1_CK_func(P2CONST(uint8, AUTOMATIC, RTE_APPL_DATA) Key,
                                                               VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L1_GS_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(uint8, AUTOMATIC, RTE_APPL_DATA) Seed,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L2_CK_func(P2CONST(uint8, AUTOMATIC, RTE_APPL_DATA) Key,
                                                               VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L2_GS_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(uint8, AUTOMATIC, RTE_APPL_DATA) Seed,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L3_CK_func(P2CONST(uint8, AUTOMATIC, RTE_APPL_DATA) Key,
                                                               VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L3_GS_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(uint8, AUTOMATIC, RTE_APPL_DATA) Seed,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L4_CK_func(P2CONST(uint8, AUTOMATIC, RTE_APPL_DATA) Key,
                                                               VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_DSP_SEC_LEV_L4_GS_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                               CONSTP2VAR(uint8, AUTOMATIC, RTE_APPL_DATA) Seed,
                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_RoutineServices_DcmDspRoutine_CheckProgCond_Result_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                                                                CONSTP2VAR(Dcm_RequestDataOut_DcmDspRoutine_CheckPgmPreCond_DcmDspRequestRoutineResultsOutSignal_0Type, AUTOMATIC, RTE_APPL_DATA) dataOut_DcmDspRequestRoutineResultsOutSignal_0,
                                                                                                CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_RoutineServices_DcmDspRoutine_CheckProgCond_Start_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                                                               CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_RoutineServices_DcmDspRoutine_CheckProgCond_Stop_func(VAR(Dcm_StopDataIn_DcmDspRoutine_CheckPgmPreCond_DcmDspStopRoutineInSignal_0Type, AUTOMATIC) dataIn_DcmDspStopRoutineInSignal_0,
                                                                                              VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                                                              CONSTP2VAR(Dcm_StopDataOut_DcmDspRoutine_CheckPgmPreCond_DcmDspStopRoutineOutSignal_0Type, AUTOMATIC, RTE_APPL_DATA) dataOut_DcmDspStopRoutineOutSignal_0,
                                                                                              CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_RoutineServices_DcmDspRoutine_Test_Result_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                                                       CONSTP2VAR(Dcm_RequestDataOut_DcmDspRoutine_Test_DcmDspRequestRoutineResultsOutSignal_0Type, AUTOMATIC, RTE_APPL_DATA) dataOut_DcmDspRequestRoutineResultsOutSignal_0,
                                                                                       CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_RoutineServices_DcmDspRoutine_Test_Start_func(VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                                                      CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
FUNC(Std_ReturnType, Diag_SWC_CODE) Swc_RoutineServices_DcmDspRoutine_Test_Stop_func(VAR(Dcm_StopDataIn_DcmDspRoutine_Test_DcmDspStopRoutineInSignal_0Type, AUTOMATIC) dataIn_DcmDspStopRoutineInSignal_0,
                                                                                     VAR(Dcm_OpStatusType, AUTOMATIC) OpStatus,
                                                                                     CONSTP2VAR(Dcm_StopDataOut_DcmDspRoutine_Test_DcmDspStopRoutineOutSignal_0Type, AUTOMATIC, RTE_APPL_DATA) dataOut_DcmDspStopRoutineOutSignal_0,
                                                                                     CONSTP2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_APPL_DATA) ErrorCode);
#define Diag_SWC_STOP_SEC_CODE

#endif
