#ifndef TYPES_DEM_H
#define TYPES_DEM_H
#include "Std_Types.h"

#define DEM_TYPES_AR_RELEASE_MAJOR_VERSION      4
#define DEM_TYPES_AR_RELEASE_MINOR_VERSION      0
#define DEM_TYPES_AR_RELEASE_REVISION_VERSION   3
#define DEM_TYPES_SW_MAJOR_VERSION              1
#define DEM_TYPES_SW_MINOR_VERSION              0
#define DEM_TYPES_SW_PATCH_VERSION              0



typedef uint8 Dem_EventStatusType;
typedef uint8 Dem_ReturnControlDTCSettingType;
typedef uint8 Dem_InitMonitorReasonType;
typedef uint32 Dem_DTCGroupType;
typedef uint8  Dem_DTCKindType;

#define DEM_EVENT_STATUS_PASSED     0x00U
#define DEM_EVENT_STATUS_FAILED     0x01U
#define DEM_CONTROL_DTC_SETTING_OK		0x00
#define DEM_CONTROL_DTC_SETTING_N_OK	0x01
#define DEM_CONTROL_DTC_WRONG_DTCGROUP	0x02
#define DEM_DTC_GROUP_ALL_DTCS              0xFFFFFFFFu
#define DEM_DTC_KIND_ALL_DTCS                  0x01


/* component specific extension to the Std_ReturnType */
#define DEM_PENDING                  4u
#define DEM_CLEAR_BUSY               5u
#define DEM_CLEAR_MEMORY_ERROR       6u
#define DEM_CLEAR_FAILED             7u
#define DEM_WRONG_DTC                8u
#define DEM_WRONG_DTCORIGIN          9u
#define DEM_E_NO_DTC_AVAILABLE      10u
#define DEM_E_NO_FDC_AVAILABLE      14u
#define DEM_BUFFER_TOO_SMALL        21u
#define DEM_BUSY                    22u
#define DEM_NO_SUCH_ELEMENT         48u


#endif /* #ifndef DEM_TYPES_H */
