AUTOSAR Classic Diagnostic Services
Die Diagnostic Services der AUTOSAR Classic Platform implementieren normierte Diagnoseprotokolle nach ISO 14229 (UDS) und ISO 15765-4 (OBD), Fehlererkennung und -speicherung im Fehlerspeicher (DEM), Entwicklungsfehler-Tracing (DET) sowie strukturiertes Logging (DLT).
Инициализация и состояние
Dcm_GetVersionInfoDcm_InitDem_GetVersionInfoDem_InitDet_GetVersionInfoDet_InitDlt_GetVersionInfoDlt_InitFiM_GetVersionInfoFiM_InitСервисы · Get…
Сервисы · Set…
Сервисы · Dcm…
Сервисы · J1939…
Сервисы · Process…
Сервисы · Read…
Сервисы · Write…
Сервисы · Reset…
Сервисы · Dem…
Сервисы · Start…
Сервисы · Clear…
Сервисы · Com…
Сервисы · Report…
Сервисы · Request…
Сервисы · Select…
Сервисы · Stop…
Сервисы · Прочее
CBFidStatusChangedDcm_BndMWriteBlockFinishDcm_CsmAsyncJobFinishedDcm_KeyMAsyncCertificateVerifyFinishedDcm_TriggerOnEventDem_CallbackEventSyncStorageProcessedDem_DisableDTCRecordUpdateDem_DisableDTCSettingDem_EnableDTCRecordUpdateDem_EnableDTCSettingDem_PreInitDem_PrestoreFreezeFrameDem_RepIUMPRDenReleaseDem_RepIUMPRFaultDetectDem_RestartOperationCycleDem_ShutdownDlt_DetForwardErrorTraceDlt_SendLogMessageDlt_SendTraceMessageDlt_StoreConfigurationDlt_TxFunctionDlt_UnregisterContextXxx_CompareKeyXxx_ConditionCheckReadXxx_ConditionCheckRead#2Xxx_ConfirmationXxx_FreezeCurrentStateXxx_FreezeCurrentState#2Xxx_IndicationXxx_IsDidAvailableXxx_ReturnControlToECUXxx_ShortTermAdjustmentXxx_ShortTermAdjustment#2Обратные вызовы
Dcm_CopyRxDataDcm_CopyTxDataDcm_StartOfReceptionDcm_TpRxIndicationDcm_TpTxConfirmationDcm_TxConfirmationDlt_CopyRxDataDlt_CopyTxDataDlt_RxIndicationDlt_StartOfReceptionDlt_TpRxIndicationDlt_TpTxConfirmationDlt_TriggerTransmitDlt_TxConfirmationCallout-функции и ожидаемые интерфейсы
<DetReportRuntimeErrorCallout><DetReportTransientFaultCallout><User_Error_Hooks>Циклические
Dcm_MainFunctionDem_MainFunctionFiM_MainFunctionТипы
ControlDTCSettingModeSwitchInterfaceDcm_AuthenticationRoleTypeDcm_CommunicationModeTypeDcm_ConfigTypeDcm_ConfirmationStatusTypeDcm_DataArrayTypeDcm_DidSupportedTypeDcm_EcuStartModeTypeDcm_ExtendedOpStatusTypeDcm_FileAndDirNameTypeDcm_IdContextTypeDcm_InfoTypeDcm_InputOutputControlParameterTypeDcm_IOOperationResponseTypeDcm_MsgAddInfoTypeDcm_MsgContextTypeDcm_MsgItemTypeDcm_MsgLenTypeDcm_MsgTypeDcm_NegativeResponseCodeTypeDcm_OpStatusTypeDcm_ProgConditionsTypeDcm_ProtocolTypeDcm_RequestDataArrayTypeDcm_ResponseDataArrayTypeDcm_ReturnReadMemoryTypeDcm_ReturnWriteMemoryTypeDcm_SecLevelTypeDcm_SesCtrlTypeDcm_StatusTypeDcmCommunicationControlDcmControlDTCSettingDcmDiagnosticSessionControlDcmEcuResetDcmModeRapidPowerShutDownDcmResponseOnEventDcmSecurityAccessDem_ComponentIdTypeDem_ConfigTypeDem_DataArrayTypeDem_DataPrimitiveTypeDem_DataTypeDem_DebounceResetStatusTypeDem_DTCFormatTypeDem_DTCKindTypeDem_DTCOriginTypeDem_DTCRequestTypeDem_DTCTranslationFormatTypeDem_DTRControlTypeDem_EventIdTypeDem_EventStatusTypeDem_IndicatorStatusTypeDem_InitMonitorReasonTypeDem_IumprDenomCondIdTypeDem_IumprDenomCondStatusTypeDem_J1939DcmDiagnosticReadiness1TypeDem_J1939DcmDiagnosticReadiness2TypeDem_J1939DcmDiagnosticReadiness3TypeDem_J1939DcmDTCStatusFilterTypeDem_J1939DcmLampStatusTypeDem_J1939DcmSetClearFilterTypeDem_J1939DcmSetFreezeFrameFilterTypeDem_MaxDataValueTypeDem_MonitorDataTypeDem_PID21valueTypeDem_PID31valueTypeDem_PID4DvalueTypeDem_PID4EvalueTypeDem_RatioIdTypeDet_ConfigTypeDiagnosticSessionControlModeSwitchInterfaceDlt_ApplicationIdInfoTypeDlt_ApplicationIDTypeDlt_AssignmentOperationDlt_ConfigTypeDlt_ContextIdInfoTypeDlt_ContextIDTypeDlt_LogInfoTypeDlt_MessageArgumentCountDlt_MessageIDTypeDlt_MessageLogInfoTypeDlt_MessageLogLevelTypeDlt_MessageNetworkTraceInfoTypeDlt_MessageOptionsTypeDlt_MessageTraceInfoTypeDlt_MessageTraceTypeDlt_MessageTypeDlt_SessionIDTypeEcuResetModeSwitchInterfaceFiM_ConfigTypeFiM_FunctionIdTypeModeRapidPowerShutDownModeSwitchInterfaceSecurityAccessModeSwitchInterfaceTypeФункции
<DetReportRuntimeErrorCallout><DetReportTransientFaultCallout><User_Error_Hooks>CBFidStatusChangedDcm_BndMWriteBlockFinishDcm_ComM_FullComModeEnteredDcm_ComM_NoComModeEnteredDcm_ComM_SilentComModeEnteredDcm_CopyRxDataDcm_CopyTxDataDcm_CsmAsyncJobFinishedDcm_DemTriggerOnDTCStatusDcm_GetActiveProtocolDcm_GetProgConditionsDcm_GetSecurityLevelDcm_GetSesCtrlTypeDcm_GetVersionInfoDcm_GetVinDcm_InitDcm_KeyMAsyncCertificateVerifyFinishedDcm_MainFunctionDcm_ProcessRequestAddFileDcm_ProcessRequestDeleteFileDcm_ProcessRequestReadDirDcm_ProcessRequestReadFileDcm_ProcessRequestReplaceFileDcm_ReadFileOrDirDcm_ReadMemoryDcm_ResetToDefaultSessionDcm_SetActiveDiagnosticDcm_SetDeauthenticatedRoleDcm_SetProgConditionsDcm_StartOfReceptionDcm_TpRxIndicationDcm_TpTxConfirmationDcm_TriggerOnEventDcm_TxConfirmationDcm_WriteFileDcm_WriteMemoryDem_CallbackEventSyncStorageProcessedDem_ClearDTCDem_ClearPrestoredFreezeFrameDem_DcmGetAvailableOBDMIDsDem_DcmGetDTCOfOBDFreezeFrameDem_DcmGetDTRDataDem_DcmGetInfoTypeValue08Dem_DcmGetInfoTypeValue0BDem_DcmGetNumTIDsOfOBDMIDDem_DcmReadDataOfOBDFreezeFrameDem_DcmReadDataOfPID01Dem_DcmReadDataOfPID1CDem_DcmReadDataOfPID21Dem_DcmReadDataOfPID30Dem_DcmReadDataOfPID31Dem_DcmReadDataOfPID41Dem_DcmReadDataOfPID4DDem_DcmReadDataOfPID4EDem_DcmReadDataOfPID91Dem_DisableDTCRecordUpdateDem_DisableDTCSettingDem_EnableDTCRecordUpdateDem_EnableDTCSettingDem_GetB1CounterDem_GetComponentFailedDem_GetCycleQualifiedDem_GetDataOfPID21Dem_GetDebouncingOfEventDem_GetDTCByOccurrenceTimeDem_GetDTCOfEventDem_GetDTCSelectionResultDem_GetDTCSelectionResultForClearDTCDem_GetDTCSeverityAvailabilityMaskDem_GetDTCStatusAvailabilityMaskDem_GetDTCSuppressionDem_GetEventAvailableDem_GetEventExtendedDataRecordExDem_GetEventFreezeFrameDataExDem_GetEventMemoryOverflowDem_GetEventUdsStatusDem_GetFaultDetectionCounterDem_GetFunctionalUnitOfDTCDem_GetIndicatorStatusDem_GetIUMPRDenConditionDem_GetMonitorStatusDem_GetNextExtendedDataRecordDem_GetNextFilteredDTCDem_GetNextFilteredDTCAndFDCDem_GetNextFilteredDTCAndSeverityDem_GetNextFilteredRecordDem_GetNextFreezeFrameDataDem_GetNumberOfEventMemoryEntriesDem_GetNumberOfFilteredDTCDem_GetNumberOfFreezeFrameRecordsDem_GetSeverityOfDTCDem_GetSizeOfExtendedDataRecordSelectionDem_GetSizeOfFreezeFrameSelectionDem_GetStatusOfDTCDem_GetTranslationTypeDem_GetVersionInfoDem_InitDem_J1939DcmClearDTCDem_J1939DcmFirstDTCwithLampStatusDem_J1939DcmGetNextDTCwithLampStatusDem_J1939DcmGetNextFilteredDTCDem_J1939DcmGetNextFilteredRatioDem_J1939DcmGetNextFreezeFrameDem_J1939DcmGetNextSPNInFreezeFrameDem_J1939DcmGetNumberOfFilteredDTCDem_J1939DcmReadDiagnosticReadiness1Dem_J1939DcmReadDiagnosticReadiness2Dem_J1939DcmReadDiagnosticReadiness3Dem_J1939DcmSetDTCFilterDem_J1939DcmSetFreezeFrameFilterDem_J1939DcmSetRatioFilterDem_MainFunctionDem_PreInitDem_PrestoreFreezeFrameDem_ReadDataOfPID01Dem_RepIUMPRDenReleaseDem_RepIUMPRFaultDetectDem_ResetEventDebounceStatusDem_ResetEventStatusDem_RestartOperationCycleDem_SelectDTCDem_SelectExtendedDataRecordDem_SelectFreezeFrameDataDem_SetComponentAvailableDem_SetCycleQualifiedDem_SetDataOfPID21Dem_SetDataOfPID31Dem_SetDataOfPID4DDem_SetDataOfPID4EDem_SetDTCFilterDem_SetDTCSuppressionDem_SetDTRDem_SetEnableConditionDem_SetEventAvailableDem_SetEventConfirmationThresholdCounterDem_SetEventDisabledDem_SetEventFailedWithSyncFreezeFrameDem_SetEventStatusDem_SetEventStatusWithMonitorDataDem_SetFreezeFrameRecordFilterDem_SetIUMPRDenConditionDem_SetPtoStatusDem_SetStorageConditionDem_SetWIRStatusDem_ShutdownDet_GetVersionInfoDet_InitDet_ReportErrorDet_ReportRuntimeErrorDet_ReportTransientFaultDet_StartDlt_CopyRxDataDlt_CopyTxDataDlt_DetForwardErrorTraceDlt_GetDefaultLogLevelDlt_GetLogInfoDlt_GetTraceStatusDlt_GetVersionInfoDlt_InitDlt_ResetToFactoryDefaultDlt_RxIndicationDlt_SendLogMessageDlt_SendTraceMessageDlt_SetDefaultLogLevelDlt_SetLogLevelDlt_SetMessageFilteringDlt_SetTraceStatusDlt_StartOfReceptionDlt_StoreConfigurationDlt_TpRxIndicationDlt_TpTxConfirmationDlt_TriggerTransmitDlt_TxConfirmationDlt_TxFunctionDlt_UnregisterContextFiM_DemInitFiM_DemTriggerOnComponentStatusFiM_DemTriggerOnMonitorStatusFiM_GetFunctionPermissionFiM_GetVersionInfoFiM_InitFiM_MainFunctionFiM_SetFunctionAvailableXxx_ClearDTCCheckFncXxx_CompareKeyXxx_ConditionCheckReadXxx_ConditionCheckRead#2Xxx_ConfirmationXxx_FreezeCurrentStateXxx_FreezeCurrentState#2Xxx_GetInfotypeValueDataXxx_GetScalingInformationXxx_GetScalingInformation#2Xxx_GetSecurityAttemptCounterXxx_GetSeedXxx_GetSeed#2Xxx_IndicationXxx_IsDidAvailableXxx_ProcessRequestDownloadXxx_ProcessRequestTransferExitXxx_ProcessRequestUploadXxx_ProcessTransferDataReadXxx_ProcessTransferDataWriteXxx_ReadDataXxx_ReadData#2Xxx_ReadData#3Xxx_ReadDataLengthXxx_ReadDataLength#2Xxx_ReadDidDataXxx_ReadDidRangeDataLengthXxx_RequestControlXxx_RequestResultsXxx_RequestResultsConfirmationXxx_ResetToDefaultXxx_ResetToDefault#2Xxx_ReturnControlToECUXxx_SetSecurityAttemptCounterXxx_ShortTermAdjustmentXxx_ShortTermAdjustment#2Xxx_StartXxx_StartConfirmationXxx_StartProtocolXxx_StopXxx_StopConfirmationXxx_StopProtocolXxx_WriteDataXxx_WriteData#2Xxx_WriteData#3Xxx_WriteData#4Xxx_WriteDidDataТипы
ControlDTCSettingModeSwitchInterfaceDcm_AuthenticationRoleTypeDcm_CommunicationModeTypeDcm_ConfigTypeDcm_ConfirmationStatusTypeDcm_DataArrayTypeDcm_DidSupportedTypeDcm_EcuStartModeTypeDcm_ExtendedOpStatusTypeDcm_FileAndDirNameTypeDcm_IdContextTypeDcm_InfoTypeDcm_InputOutputControlParameterTypeDcm_IOOperationResponseTypeDcm_MsgAddInfoTypeDcm_MsgContextTypeDcm_MsgItemTypeDcm_MsgLenTypeDcm_MsgTypeDcm_NegativeResponseCodeTypeDcm_OpStatusTypeDcm_ProgConditionsTypeDcm_ProtocolTypeDcm_RequestDataArrayTypeDcm_ResponseDataArrayTypeDcm_ReturnReadMemoryTypeDcm_ReturnWriteMemoryTypeDcm_SecLevelTypeDcm_SesCtrlTypeDcm_StatusTypeDcmCommunicationControlDcmControlDTCSettingDcmDiagnosticSessionControlDcmEcuResetDcmModeRapidPowerShutDownDcmResponseOnEventDcmSecurityAccessDem_ComponentIdTypeDem_ConfigTypeDem_DataArrayTypeDem_DataPrimitiveTypeDem_DataTypeDem_DebounceResetStatusTypeDem_DTCFormatTypeDem_DTCKindTypeDem_DTCOriginTypeDem_DTCRequestTypeDem_DTCTranslationFormatTypeDem_DTRControlTypeDem_EventIdTypeDem_EventStatusTypeDem_IndicatorStatusTypeDem_InitMonitorReasonTypeDem_IumprDenomCondIdTypeDem_IumprDenomCondStatusTypeDem_J1939DcmDiagnosticReadiness1TypeDem_J1939DcmDiagnosticReadiness2TypeDem_J1939DcmDiagnosticReadiness3TypeDem_J1939DcmDTCStatusFilterTypeDem_J1939DcmLampStatusTypeDem_J1939DcmSetClearFilterTypeDem_J1939DcmSetFreezeFrameFilterTypeDem_MaxDataValueTypeDem_MonitorDataTypeDem_PID21valueTypeDem_PID31valueTypeDem_PID4DvalueTypeDem_PID4EvalueTypeDem_RatioIdTypeDet_ConfigTypeDiagnosticSessionControlModeSwitchInterfaceDlt_ApplicationIdInfoTypeDlt_ApplicationIDTypeDlt_AssignmentOperationDlt_ConfigTypeDlt_ContextIdInfoTypeDlt_ContextIDTypeDlt_LogInfoTypeDlt_MessageArgumentCountDlt_MessageIDTypeDlt_MessageLogInfoTypeDlt_MessageLogLevelTypeDlt_MessageNetworkTraceInfoTypeDlt_MessageOptionsTypeDlt_MessageTraceInfoTypeDlt_MessageTraceTypeDlt_MessageTypeDlt_SessionIDTypeEcuResetModeSwitchInterfaceFiM_ConfigTypeFiM_FunctionIdTypeModeRapidPowerShutDownModeSwitchInterfaceSecurityAccessModeSwitchInterfaceTypeКарта тем
DCM
123DEM
141DET
10Dlt
42Для этого релиза нет данных об элементах
DCM
Called by BndM to indicate that a block write operation has finished.
void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);This call informs the DCM module about a ComM mode change to COMM_FULL_ COMMUNICATION.
void Dcm_ComM_FullComModeEntered (uint8 NetworkId);This call informs the DCM module about a ComM mode change to COMM_NO_ COMMUNICATION.
void Dcm_ComM_NoComModeEntered (uint8 NetworkId);This call informs the DCM module about a ComM mode change to COMM_SILENT_ COMMUNICATION.
void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.
BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.
BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);Can be called from CSM upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the CSM ECUC configuration for asynchronous jobs. Only one such callback is available, the DCM detects the job that has finished by evaluating the job parameter. API availability: This API will be available only if ({ecuc(DCM/DCM Dsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).
Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.
Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);This function returns the active UDS protocol details
Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);The Dcm_GetProgConditions callout is called upon DCM initialization and allows to determine if a response ($50 or $51) has to be sent. The context parameters are defined in Dcm_Prog ConditionsType.
Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);This function provides the active security level value.
Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);This function provides the active session control type value.
Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);Returns the version information of this module
void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);Function to get the VIN (as defined in SAE J1979-DA)
Std_ReturnType Dcm_GetVin (uint8* Data);Service for basic initialization of DCM module.
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the DCM detects the certificate that has finished by evaluating the certId parameter. API availability: This API will be available only if ({ecuc(DCM/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).
Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);This service is used for processing the tasks of the main loop.
void Dcm_MainFunction (void);Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).
Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager
Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).
Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x04 (ReadFile).
Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x03 (ReplaceFile).
Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function. DCM shall call this function when data shall be sent as a response to UDS service TransferData if there's an ongoing RequestFileTransfer process started with 0x04 (ReadFile) or 0x05 (ReadDir).
Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData
Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.
Std_ReturnType Dcm_ResetToDefaultSession (void);Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.
Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request. The context parameter are defined in Dcm_ProgConditionsType.
Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.
BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.
void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.
void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);The call to this function allows to trigger an event linked to a ResponseOnEvent request. On the function call, the DCM will execute the associated service if the corresponding Mode of the Roe EventId is 'ROE started'.
Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.
void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);Callout function. DCM shall call this function when data is received using UDS service Transfer Data if there's an ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).
Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData
Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.
Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)
Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.
Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.
Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function confirms to the application the successful transmission or a transmission error of a diagnostic service.
Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function requests to the application to freeze the current state of an IOControl.
Std_ReturnType Xxx_FreezeCurrentState ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to freeze the current state of an IOControl.
Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);The function provides the data related to the requested Infotype.
Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);This function requests to the application for the scaling information of a Data.
Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application for the scaling information of a Data.
Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);Read the attempt counter for a specific security level from the application
Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);Request to application for asynchronous provision of seed value
Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous provision of seed value
Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);This function indicates to the application that a service is about to be executed and allows the application to reject the execution of the service request
Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function requests if a specific DID is available within the range or not.
Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);Callout function. DCM shall call this callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.
Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function. DCM shall call this callout function to terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.
Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);Callout function. DCM shall call this callout function to start an upload process. This service is needed for the implementation of UDS service RequestUpload.
Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData
Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData
Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.
Std_ReturnType Xxx_ReadData (uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.
Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.
Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to return the data length in byte of a Data.
Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);This function requests the application to return the data length in byte of a Data.
Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);This function requests to the application a data value of a DID
Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);This function requests the application to return the data length of a DID Range.
Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output. This is typically used to implement OBD Service $08
Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);This function requests to the application the result of a routine execution
Std_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function indicates the transmission of a response to a RequestRoutineResults request
Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function requests to the application to reset an IOControl to default value.
Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to reset an IOControl to default value.
Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to return control to ECU of an IOControl.
Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);Set the attempt counter for a specific security level in the application
Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);This function requests to the application to adjust the IO signal.
Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to adjust the IO signal.
Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to start the execution of a routine.
Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️This function indicates the transmission of a response to a StartRoutine request
Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.
Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function requests to the application to stop the execution of a routine
Std_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function indicates the transmission of a response to a StopRoutine request
Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function informs the application of the protocol stop.
Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function requests the application to write a data value of a DID.
Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.
Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.
Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.
Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.
Std_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode
Manager
This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.
Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader
This message context identifier can be used to determine the relation between request and response confirmation.
Additional information on message request. Datastructure: Bitfield
This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.
Base type for diagnostic message item
Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.
Base type for diagnostic message (request, positive or negative response)
Type Dcm_NegativeResponseCodeType.
Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.
Type Dcm_ProtocolType.
Return values of Callout Dcm_ReadMemory
Return type of callout Dcm_WriteMemory
Security Level type definition
Session type definition. 0, 127 and all values above 127 are reserved by ISO.
Base item type to transport status information.
ModeDeclarationGroup representing the different communication control states
ModeDeclarationGroup representing the enable/disable state for DTC storage
ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(DCM/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}
ModeDeclarationGroup representing the different ECU reset types
ModeDeclarationGroup representing the enable/disable state of rapid power shutdown
ModeDeclarationGroup representing the state of a Response On Event
ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(DCM/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level
DEM
Called by the DEM after the internal processing of Dem_SetEventFailedWithSyncFreezeFrame is done and a further call of Dem_SetEventFailedWithSyncFreezeFrame with the same event ID can be processed by the DEM. Tags: atp.Status=draft
Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);Clears single DTCs, as well as groups of DTCs.
Std_ReturnType Dem_ClearDTC (uint8 ClientId);Clears a prestored freeze frame of a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(DEM/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)
Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);Reports the value of a requested "availability-OBDMID" to the DCM upon a Service $06 request. Derived from that the tester displays the supported tests a mechanic can select from. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);Gets DTC by freeze frame record number. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmGetDTCOfOBDFreezeFrame (uint8 FrameNumber, uint32* DTC, Dem_DTCFormatType DTCFormat);Reports a DTR data along with TID-value, UaSID, test result with lower and upper limit. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Service is used for requesting IUMPR data according to InfoType $08. This interface is derived from the prototype _GetInfotypeValueData() defined by the DCM. Therefore Dcm_Op StatusType and Std_ReturnType are contained. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);Service is used for requesting IUMPR data according to InfoType $0B. This interface is derived from the prototype _GetInfotypeValueData() defined by the DCM. Therefore Dcm_Op StatusType and Std_ReturnType are contained. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmGetInfoTypeValue0B (Dcm_OpStatusType OpStatus, uint8* Iumprdata0B, uint8* Iumprdata0BBufferSize);Gets the number of TIDs per (functional) OBDMID. This can be used by the DCM to iteratively request for OBD/TID result data within a loop from 0....numberOfTIDs-1 API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);Gets data element per PID and index of the most important freeze frame being selected for the output of service $02. The function stores the data in the provided DestBuffer. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmReadDataOfOBDFreezeFrame (uint8 PID, uint8 DataElementIndexOfPID, uint8* DestBuffer, uint16* BufSize);Service to report the value of PID $01 computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);Service to report the value of PID $1C computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);Service to report the value of PID $21 computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);Service to report the value of PID $30 computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);Service to report the value of PID $31 computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)
Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);Service to report the value of PID $41 computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);Service to report the value of PID $4D computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)
Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);Service to report the value of PID $4E computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)
Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);Service to report the value of PID $91 computed by the DEM. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);Disables the event memory update of a specific DTC (only one at one time).
Std_ReturnType Dem_DisableDTCRecordUpdate (uint8 ClientId);Disables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.
Std_ReturnType Dem_DisableDTCSetting (uint8 ClientId);Enables the event memory update of the DTC disabled by Dem_DisableDTCRecordUpdate() before. Note: As the call to Dem_EnableDTCRecordUpdate is the last action in the sequence of disabling/enabling a DTC, the caller is not interested in the return value. Therefore E_OK should be returned even if the DTC is enabled asynchronously.
Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);(Re)-Enables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.
Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);Service to report the value of the B1 counter computed by the DEM. API is needed in WWH-OBD relevant ECUs only
Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);Gets the failed status of a DemComponent.
Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);Returns the qualification state of the dependent operation cycle. API Availability: This API will be available only if any of the ({ecuc(DEM/DemGeneral/DEM OperationCycle.DemLeadingCycleRef)} != NULL)
Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);Service to get the value of PID $21 from the DEM by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral/DemGeneral OBD.DemOBDCentralizedPID21Handling)} == true) && ({ecuc(DEM/DemGeneral.Dem OBDSupport)} == DEM_OBD_MASTER_ECU)
Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);Gets the debouncing status of an event. This function shall not be used for EventId with native debouncing within their functions. It is rather for EventIds using debouncing within the DEM.
Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);Gets the DTC by occurrence time. There is no explicit parameter for the DTC-origin as the origin always is DEM_DTC_ORIGIN_PRIMARY_MEMORY.
Std_ReturnType Dem_GetDTCByOccurrenceTime (uint8 ClientId, Dem_DTCRequestType DTCRequest, uint32* DTC);Gets the DTC of an event.
Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.
Std_ReturnType Dem_GetDTCSelectionResult (uint8 ClientId);Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs, respecting the settings if the DEM shall clear only all DTCs.
Std_ReturnType Dem_GetDTCSelectionResultForClearDTC (uint8 ClientId);Gets the DTC Severity availability mask.
Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);Gets the DTC Status availability mask of the selected fault memory.
Std_ReturnType Dem_GetDTCStatusAvailabilityMask (uint8 ClientId, Dem_UdsStatusByteType* DTCStatusMask, Dem_DTCOriginType DTCOrigin);Returns the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemSuppressionSupport)} == DEM_DTC_SUPPRESSION)
Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);Get the Event's availability.
Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);Gets the data of an extended data record by event.
Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);Gets the data of a freeze frame by event.
Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);Gets the event memory overflow indication status.
Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);Gets the current UDS status byte assigned to the DTC for the event
Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);Gets the fault detection counter of an event. This API can only be used through the RTE, and therefore no declaration is exported via Dem.h.
Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);Gets the functional unit of the requested DTC.
Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);Gets the indicator status derived from the UDS status. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral/DemEventMemory Set/DemIndicator)} != NULL)
Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to retrieve the condition status from the DEM of the ECU where the conditions are computed. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);Gets the current monitor status for an event.
Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord. The function stores the data in the provided DestBuffer.
Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);Gets the next filtered DTC matching the filter criteria. For UDS services, the interface has an asynchronous behavior, because a large number of DTCs has to be processed.
Std_ReturnType Dem_GetNextFilteredDTC (uint8 ClientId, uint32* DTC, uint8* DTCStatus);Gets the next filtered DTC and its associated Fault Detection Counter (FDC) matching the filter criteria. The interface has an asynchronous behavior, because a large number of DTCs has to be processed and the FDC might be received asynchronously from a SW-C, too.
Std_ReturnType Dem_GetNextFilteredDTCAndFDC (uint8 ClientId, uint32* DTC, sint8* DTCFaultDetectionCounter);Gets the next filtered DTC and its associated Severity matching the filter criteria. The interface has an asynchronous behavior, because a large number of DTCs has to be processed.
Std_ReturnType Dem_GetNextFilteredDTCAndSeverity (uint8 ClientId, uint32* DTC, uint8* DTCStatus, Dem_DTCSeverityType* DTCSeverity, uint8* DTCFunctionalUnit);Gets the next freeze frame record number and its associated DTC stored in the event memory. The interface has an asynchronous behavior, because NvRAM access might be required.
Std_ReturnType Dem_GetNextFilteredRecord (uint8 ClientId, uint32* DTC, uint8* RecordNumber);Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData. The function stores the data in the provided DestBuffer.
Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);Returns the number of entries currently stored in the requested event memory.
Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);Gets the number of a filtered DTC.
Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);This function returns the number of all freeze frame records currently stored in the primary event memory
Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);Gets the severity of the requested DTC. For large configurations and DTC-calibration, the interface behavior can be asynchronous (splitting the DTC-search into segments).
Std_ReturnType Dem_GetSeverityOfDTC (Dem_DTCSeverityType* DTCSeverity, uint8 ClientId);Gets the size of Extended Data Record by DTC selected by the call of Dem_SelectExtended DataRecord.
Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);Gets the size of freeze frame data by DTC selected by the call of Dem_SelectFreezeFrame Data.
Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);Gets the status of a DTC. For large configurations and DTC-calibration, the interface behavior can be asynchronous (splitting the DTC-search into segments). The DTCs of OBD Events Suppression shall be reported as Dem_WRONG_DTC.
Std_ReturnType Dem_GetStatusOfDTC (uint8 ClientId, uint8* DTCStatus);Gets the supported DTC formats of the ECU.The supported formats are configured via DEM TypeOfDTCSupported.
Dem_DTCTranslationFormatType Dem_GetTranslationType (uint8 ClientId);Returns the version information of this module. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemVersionInfoApi)} == true)
void Dem_GetVersionInfo (Std_VersionInfoType* versioninfo);Initializes or reinitializes this module.
void Dem_Init (const Dem_ConfigType* ConfigPtr);Clears the status of all event(s) related to the specified DTC(s), as well as all associated event memory entries for these event(s).
Std_ReturnType Dem_J1939DcmClearDTC (Dem_J1939DcmSetClearFilterType DTCTypeFilter, Dem_DTCOriginType DTCOrigin, uint8 ClientId);The function sets the filter to the first applicable DTC for the DM31 response for a specific node.
void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);Gets the next filtered J1939 DTC for DM31 including current LampStatus.
Std_ReturnType Dem_J1939DcmGetNextDTCwithLampStatus (Dem_J1939DcmLampStatusType* LampStatus, uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);Gets the next filtered J1939 DTC.
Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);Gets the next filtered Ratio.
Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);Gets next SPN.
Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);Gets the number of currently filtered DTCs set by the function Dem_J1939DcmSetDTCFilter.
Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);Service to report the value of Diagnostic Readiness 1 (DM05) computed by the DEM.
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness1 (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 2 (DM21) computed by the DEM.
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness2 (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 3 (DM26) computed by the DEM.
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness3 (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);The function sets the DTC filter for a specific node and returns the composite lamp status of the filtered DTCs.
Std_ReturnType Dem_J1939DcmSetDTCFilter (Dem_J1939DcmDTCStatusFilterType DTCStatusFilter, Dem_DTCKindType DTCKind, Dem_DTCOriginType DTCOrigin, uint8 ClientId, Dem_J1939DcmLampStatusType* LampStatus);The function sets the FreezeFrame filter for a specific node.
Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);The function sets the Ratio filter for a specific node and returns the corresponding Ignition Cycle Counter and General Denominator.
Std_ReturnType Dem_J1939DcmSetRatioFilter (uint16* IgnitionCycleCounter, uint16* OBDMonitoringConditionsEncountered, uint8 ClientId);Processes all not event based DEM internal functions.
void Dem_MainFunction (void);Initializes the internal states necessary to process events reported by BSW-modules.
void Dem_PreInit (void);Captures the freeze frame data for a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(DEM/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)
Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);Service to report the value of PID $01 computed by the DEM. API is needed in OBD relevant ECUs only
Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);Service is used to release a denominator of a specific monitor. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);Service for reporting that faults are possibly found because all conditions are fullfilled. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_RepIUMPRFaultDetect (Dem_RatioIdType RatioID);Control the internal debounce counter/timer by BSW modules and SW-Cs. The event qualification will not be affected by these debounce state changes. This API is available for BSW modules as soon as Dem_PreInit has been completed (refer to SWS_Dem_00438 and SWS_Dem_00167).
Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);Resets the event failed status. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.
Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);Sets an operation cycle state. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. The interface has an asynchronous behavior to avoid exceeding of typical timing requirements on APIs if a large number of events has to be processed and during the re-initializations of the related monitors. The asynchronous acknowledgements are the related InitMonitorForEvent callbacks.
Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);Selects a DTC or DTC group as target for further operations.
Std_ReturnType Dem_SelectDTC (uint8 ClientId, uint32 DTC, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin);Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.
Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.
Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);Set the availability of a specific DemComponent.
Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.
Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);Service to set the value of PID $21 in the DEM by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);Service to set the value of PID $31 in the DEM by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);Service to set the value of PID $4D in the DEM by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);Service to set the value of PID $4E in the DEM by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);Sets the DTC Filter. The server shall perform a bit-wise logical AND-ing operation between the parameter DTCStatusMask and the current UDS status in the server. In addition to the DTCStatus AvailabilityMask, the server shall return all DTCs for which the result of the AND-ing operation is non-zero [i.e. (statusOfDTC & DTCStatusMask) != 0]. The server shall process only the DTC Status bits that it is supporting. OBD Events Suppression shall be ignored for this computation. If no DTCs within the server match the masking criteria specified in the clients request, no DTC or status information shall be provided following the DTCStatusAvailabilityMask byte in the positive response message (((statusOfDTC & DTCStatusMask) != 0) && ((severity & DTCSeverityMask) != 0)) == TRUE
Std_ReturnType Dem_SetDTCFilter (uint8 ClientId, uint8 DTCStatusMask, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin, boolean FilterWithSeverity, Dem_DTCSeverityType DTCSeverityMask, boolean FilterForFaultDetectionCounter);Set the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemSuppression Support)} == DEM_DTC_SUPPRESSION)
Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);Reports a DTR result with lower and upper limit. The internal eventstatus serves as master whether the DTR values are forwarded or ignored, also taking the DTRUpdateKind into account. The EventId that is related to the DTR is assigned per configuration (and derived from ServiceNeeds). Processing takes enable/storage conditions into account. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);Sets an enable condition. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral/DemEnable Condition)} != NULL)
Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);Set the available status of a specific Event.
Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);Set the failure confirmation threshold of an event.
Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);Service for reporting the event as disabled to the DEM for the PID $41 computation. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetEventDisabled (Dem_EventIdType EventId);If called the DEM sets the event to failed and this failed event requires that a snapshot record is captured, the DEM synchronously retrieves the data within the call of this API. Tags: atp.Status=draft
void Dem_SetEventFailedWithSyncFreezeFrame (Dem_EventIdType EventId);Called by SW-Cs or BSW modules to report monitor status information to the DEM. BSW modules calling Dem_SetEventStatus can safely ignore the return value. This API will be available only if ({DEM/DemConfigSet/DemEventParameter/DemEventReportingType} == STANDARD_REPORTING)
Std_ReturnType Dem_SetEventStatus (Dem_EventIdType EventId, Dem_EventStatusType EventStatus);This API will be available only if ({DEM/DemConfigSet/DemEventParameter/DemEvent ReportingType} == STANDARD_REPORTING_WITH_MONITOR_DATA)
Std_ReturnType Dem_SetEventStatusWithMonitorData (Dem_EventIdType EventId, Dem_EventStatusType EventStatus, Dem_MonitorDataType monitorData0, Dem_MonitorDataType monitorData1);Sets a freeze frame record filter.
Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to forward the condition status to a DEM of a particular ECU. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(DEM/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
Std_ReturnType Dem_SetPtoStatus (boolean PtoStatus);Sets a storage condition. API Availability: This API will be available only if ({ecuc(DEM/DemGeneral/DemStorage Condition)} != NULL)
Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);Sets the WIR status bit via failsafe SW-Cs. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.
Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);Shuts down this module.
void Dem_Shutdown (void);Identification of a DemComponent by assigned ComponentId. The ComponentId is automatically assigned by the DEM.
This type of the external data structure shall contain the post build initialization data for the DEM.
Array data type definition for external data elements
Data type definition for external data elements
This type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().
This type is used to select the format of the DTC value.
This type is used to filter DTCs for their kind.
This enum is used to define the location of the events. The definition and use of the different memory types is OEM-specific.
This type is used to request a DTC with specific attributes.
DTC translation format as defined in ISO14229-1.
Control parameter for the interpretation of the reported test results.
Identification of an event by assigned EventId. The EventId is assigned by the DEM. Example: 1 refers to monitor x, 2 refers to monitor y, etc.
This type contains all monitor test result values, which can be reported via Dem_SetEventStatus().
Indicator mode used by Dem_GetIndicatorStatus().
(Re-)Initialization reason returned by the callback _DemInitMonitorFor().
This type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.
This type contains all possible states of an additional IUMPR denominator condition to be broadcasted among OBD-relevant ECUs.
This structure represents all data elemets of the DM05 message. The encoding shall be done acording SAE J1939-73
This structure represents all data elemets of the DM21 message. The encoding shall be done acording SAE J1939-73
This structure represents all data elemets of the DM26 message. The encoding shall be done acording SAE J1939-73
The type to distinguish which DTCs should be filtered.
For details refer SAE J1939-73
The type to distinguish which DTCs gets cleared
The type to distinguish which DTCs gets cleared
This type is used to pass monitoring data to the DEM.
OBD specific ratio Id (related to a specific event, a FID, and an IUMPR group). This type depends on the DEM configuration.
DET
-
Std_ReturnType <DetReportRuntimeErrorCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);-
Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);-
Std_ReturnType <User_Error_Hooks> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);Returns the version information of this module.
void Det_GetVersionInfo (Std_VersionInfoType* versioninfo);Service to initialize the Default Error Tracer.
void Det_Init (const Det_ConfigType* ConfigPtr);Service to report development errors.
Std_ReturnType Det_ReportError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);Service to report runtime errors. If a callout has been configured then this callout shall be called.
Std_ReturnType Det_ReportRuntimeError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, faultErrorTracer uint8 ErrorId);Service to report transient faults. If a callout has been configured than this callout shall be called and the returned value of the callout shall be returned. Otherwise it returns immediately with E_ OK.
Std_ReturnType Det_ReportTransientFault (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);Service to start the Default Error Tracer.
void Det_Start (void);Configuration data structure of the DET module.
Dlt
Service Dlt_CopyRxData.
BufReq_ReturnType Dlt_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);Service Dlt_CopyTxData.
BufReq_ReturnType Dlt_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);Returns the Default Log Level currently used by the Dlt module. The returned Log Level might differ from the one which is stored no n volatile.
Std_ReturnType Dlt_GetDefaultLogLevel (Dlt_MessageLogLevelType* defaultLogLevel);Called to request information about registered Application Ids, their Context Ids and the corresponding log level.
Std_ReturnType Dlt_GetLogInfo (uint8 options, Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, uint8* status, Dlt_LogInfoType* logInfo);Returns the current Trace Status for a given tuple Application Id/ Context Id.
Std_ReturnType Dlt_GetTraceStatus (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, boolean* traceStatus);Returns the version information of this module.
void Dlt_GetVersionInfo (Std_VersionInfoType* versioninfo);Dlt is using the NVRam Manager and is to be initialized very late in the ECU startup phase. The Dlt_ Init() function should be called after the NVRam Manager is initialized.
void Dlt_Init (const Dlt_ConfigType* config);The service Dlt_ Reset To Factory Default sets the Log Level and Trace Status back to the pers istently stored default values. If the feature Nv MRAM support is enabled, all stored Dlt values in the Nv M are deleted.
Std_ReturnType Dlt_ResetToFactoryDefault (void);Indication of a received PDU from a lower layer communication interface module.
void Dlt_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);The service represents the interface to be used by basic software modules or by software component to send Log Messages.
Std_ReturnType Dlt_SendLogMessage (Dlt_SessionIDType sessionId, const Dlt_MessageLogInfoType* logInfo, const uint8* logData, uint16 logDataLength);The service represents the interface to be used by basic software modules or by software components to trace parameters.
Std_ReturnType Dlt_SendTraceMessage (Dlt_SessionIDType sessionId, const Dlt_MessageTraceInfoType* traceInfo, const uint8* traceData, uint16 traceDataLength);Called to modify the pass through range for Log Messages for all not explicit set Context Ids.
Std_ReturnType Dlt_SetDefaultLogLevel (Dlt_MessageLogLevelType newLogLevel);This service is used to change the Log Level for the given tuple of Application ID/ Context ID.
Std_ReturnType Dlt_SetLogLevel (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, Dlt_MessageLogLevelType newLogLevel);Switches on/ off the mes sage filtering functionality of the Dlt module.
Std_ReturnType Dlt_SetMessageFiltering (boolean status);The service Dlt_ Set Trace Status sets the trace status for a specific tuple of Application ID and Context ID.
Std_ReturnType Dlt_SetTraceStatus (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, boolean newTraceStatus);This function is called at the start of receiving an N -
BufReq_ReturnType Dlt_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);Copies the current Dlt configuration to Nv RAM by calling Nv M_ Write Block().
Std_ReturnType Dlt_StoreConfiguration (void);Called after an I - PDU has been received via the TP API, the result indicates whether the transmission was successful or not.
void Dlt_TpRxIndication (PduIdType id, Std_ReturnType result);This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was succe ssful or not.
void Dlt_TpTxConfirmation (PduIdType id, Std_ReturnType result);Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.
Std_ReturnType Dlt_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
void Dlt_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);-
void Dlt_TxFunction (void);The service has to be called when a software module is going to be stopped. Available vi a Dlt.h
Std_ReturnType Dlt_UnregisterContext (Dlt_SessionIDType sessionId, Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId);Information about Applications
This type describes the Application Id. 0x00000000 means the so - called wildcard.
Adding or removing a Log Channel assignment for the given tuple of Application Id/ Context Id.
This is the type of the data structure containing the initialization data for Dlt.
Context Information
This type describes the Context Id. 0x00000000 means the so - called wildcard.
-
This type describes the count of arguments provided to a message.
Contains the unique Message Id for a message. This is only relevant in non - verbose mode.
This type describes the log lev el for each log message.
This type describes transported type of a Dlt BUSMESSAGE.
Bitfield
This type describes labels for trace messages.
This type describes the type of the message.
This type identifies the session.
This type describes the Log Channel name.
FiM
Service CBFidStatusChanged.
Std_ReturnType CBFidStatusChanged(FiM_FidStatusChangeType Status, boolean Permission);This service re-initializes the FIM.
void FiM_DemInit(void);Triggers on changes of the component failed status.
void FiM_DemTriggerOnComponentStatus(Dem_ComponentIdType ComponentId, boolean ComponentFailedStatus);This service is provided to be called by the DEM in order to inform the Fim about monitor status changes.
void FiM_DemTriggerOnMonitorStatus(Dem_EventIdType EventId);This service reports the permission state to the functionality.
Std_ReturnType FiM_GetFunctionPermission(FiM_FunctionIdType FID, boolean* Permission);This service returns the version information of this module.
void FiM_GetVersionInfo(Std_VersionInfoType* versioninfo);This service initializes the FIM.
void FiM_Init(const FiM_ConfigType* FiMConfigPtr);Service FiM_MainFunction.
void FiM_MainFunction(void);This service sets the availability of a function. The function is only available if FiMAvailability Support is configured as True.
Std_ReturnType FiM_SetFunctionAvailable(FiM_FunctionIdType FID, boolean Availability);This type defines a data structure for the post build parameters of the FIM. At initialization the FIM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initializsation.
Type for the FunctionID Variation –
Руководство по кластеруСОЗДАНО ИИ
Центральный кластер для обработки диагностических служб UDS и OBD, сохранения событий, а также трассировки системных ошибок.
Центральный кластер для обработки диагностических служб UDS и OBD, сохранения событий, а также трассировки системных ошибок.
Модульный кластер Diagnostic Services (DCM, DEM, DET, Dlt) объединяет обработку протоколов для диагностических служб UDS и OBD, а также централизованное управление ошибками и трассировку в AUTOSAR Classic Platform (SWS DiagnosticCommunicationManager с. 56). Поступающие запросы тестера DCM обрабатывает через буферы PduR и запрашивает данные состояния, снапшотов и Freeze Frame у DEM ([SWS_Dcm_00094], [SWS_Dem_00215]). Параллельно DET и Dlt регистрируют ошибки разработки и журналы времени выполнения для диагностики неисправностей ([SWS_Det_00181], [SWS_Dlt_00241]).
Модульный кластер Diagnostic Services в AUTOSAR Classic Platform состоит из четырех модулей: DCM, DEM, DET и Dlt. Он формирует центральный фундамент для обработки внешних диагностических сессий (UDS согласно ISO 14229, OBD согласно ISO 15031-5), для управления ошибками в электронном блоке управления (ECU), а также для мониторинга разработки и эксплуатации (SWS DiagnosticCommunicationManager с. 56, SWS DiagnosticEventManager с. 247).
Диагностические запросы от тестеров инициируются модулем PduR посредством Dcm_StartOfReception и после приема передаются в DCM через Dcm_TpRxIndication ([SWS_Dcm_00094], [SWS_Dcm_00093]). DCM декодирует протоколы и напрямую обращается к DEM для опроса статуса, списков DTC или данных Freeze Frame (например, через Dem_GetStatusOfDTC или Dem_GetNextFilteredDTC) ([SWS_Dem_00212], [SWS_Dem_00215]). Асинхронные интерфейсы сигнализируют через DEM_PENDING или DCM_E_PENDING о том, что вычисления продолжаются в контексте циклических MainFunctions ([SWS_Dem_00236], [SWS_Dcm_00539]).
Контекстная диаграмма: интеграция модулей кластера DCM, DEM, DET и DLT в архитектуру AUTOSAR. Источники: SWS DiagnosticEventManager с. 247, SWS DiagnosticCommunicationManager с. 55
DEM квалифицирует ошибки с помощью устранения дребезга по времени или по счетчику ([SWS_Dem_00426], [SWS_Dem_00683]) и управляет первичной и пользовательской памятью с настраиваемыми стратегиями вытеснения ([SWS_Dem_00400]). Параллельно DET регистрирует ошибки разработки через Det_ReportError ([SWS_Det_00009]), в то время как модуль Dlt фильтрует сообщения логирования и трассировки через Dlt_SendLogMessage и предоставляет их по сконфигурированным каналам логов ([SWS_Dlt_00241], [SWS_Dlt_00740]).
Диаграмма последовательности: процесс запроса статуса UDS-DTC между тестером, DCM и DEM. Источники: SWS DiagnosticCommunicationManager с. 55, [SWS_Dem_00215]
Режимы работы DCM преимущественно синхронизируются модулем ComM через функции обратного вызова, такие как Dcm_ComM_FullComModeEntered и Dcm_ComM_NoComModeEntered ([SWS_Dcm_00356], [SWS_Dcm_00360]). Энергонезависимые состояния DEM и Dlt сохраняют через модуль NvM ([SWS_Dem_00181], [SWS_Dlt_00453]).
1. Системная архитектура и роль модульного кластера
Модульный кластер Diagnostic Services в AUTOSAR Classic Platform объединяет все ключевые функции для бортовой и внебортовой диагностики, регистрации ошибок и системного мониторинга на уровне System Services. Он состоит из четырех модулей Basic Software: DCM (Diagnostic Communication Manager), DEM (Diagnostic Event Manager), DET (Default Error Tracer) и Dlt (Diagnostic Log and Trace). Совместно эти модули образуют стандартизированное связующее звено между внешними диагностическими тестерами автомобиля, внутренним функциональным программным обеспечением и стандартизированными протоколами согласно ISO 14229 (UDS), а также ISO 15031-5 / SAE J1979 (OBD) (SWS DiagnosticCommunicationManager с. 56, SWS DiagnosticEventManager с. 186).
DCM функционирует как протокольный менеджер для диагностических запросов от тестеров. Внутренне он делится на субмодули Diagnostic Session Layer (DSL), Diagnostic Service Dispatcher (DSD) и Diagnostic Service Processing (DSP). DCM выполняет управление сессиями и уровнями безопасности ([SWS_Dcm_00338], [SWS_Dcm_00339]), принимает диагностические PDU через модуль PduR ([SWS_Dcm_00094]) и перенаправляет требования, относящиеся к службам, в прикладные SW-C или в DEM ([SWS_Dcm_00111]). DEM функционирует как центральная диагностическая память: он обрабатывает сообщения об ошибках от мониторов, выполняет алгоритмы устранения дребезга ([SWS_Dem_00426], [SWS_Dem_00683]), управляет кодами неисправностей (Diagnostic Trouble Codes, DTC), масками состояния ([SWS_Dem_00213]), а также соответствующими записями снапшотов и расширенных данных (Snapshot и Extended Data Records) ([SWS_Dem_00039], [SWS_Dem_00239]).
В дополнение к этому DET берет на себя регистрацию ошибок разработки, времени выполнения и переходных ошибок Basic Software ([SWS_Det_00181], [SWS_Det_01003]), тогда как модуль Dlt агрегирует, фильтрует и передает внешним инструментам стандартизированные сообщения протоколирования и трассировки от приложений и модулей BSW ([SWS_Dlt_00224], [SWS_Dlt_00241], [SWS_Dlt_00243]).
Контекстная диаграмма: интеграция модулей кластера DCM, DEM, DET и DLT в архитектуру AUTOSAR. Источники: SWS DiagnosticEventManager с. 247, SWS DiagnosticCommunicationManager с. 55, SWS DiagnosticLogAndTrace с. 46
2. Взаимодействие и пути интеракции между модулями
Основной внешний путь взаимодействия инициируется входящими диагностическими сообщениями тестера. Когда транспортный протокол сигнализирует о новых диагностических данных через PduR, последний вызывает Dcm_StartOfReception ([SWS_Dcm_00094], [SWS_Dcm_01672]). При достаточной емкости буфера DCM резервирует ресурсы и подтверждает вызов с помощью BUFREQ_OK; в противном случае передача отклоняется с BUFREQ_E_OVFL или BUFREQ_E_NOT_OK ([SWS_Dcm_00444], [SWS_Dcm_00642]). После полного приема I-PDU модуль PduR вызывает Dcm_TpRxIndication, после чего полезная нагрузка передается из DSL в DSD ([SWS_Dcm_00093], [SWS_Dcm_00111]).
Для таких диагностических запросов, как служба UDS 0x19 (ReadDTCInformation) или службы OBD ($01, $02, $03, $06), DCM синхронно и асинхронно обращается к стандартизированным интерфейсам DEM (AUTOSAR SWS DiagnosticEventManager с. 370, AUTOSAR SWS DCM с. 87). Так, DCM считывает информацию о состоянии через Dem_GetStatusOfDTC ([SWS_Dem_00212]) или последовательно фильтрует DTC с помощью Dem_GetNextFilteredDTC ([SWS_Dem_00215]) либо Dem_GetNextFilteredDTCAndFDC ([SWS_Dem_00227]). Данные Freeze Frame и расширенные записи запрашиваются через Dem_GetSizeOfFreezeFrameSelection, Dem_GetNextFreezeFrameData, а также Dem_GetNextExtendedDataRecord ([SWS_Dem_00071], [SWS_Dem_00074], [SWS_Dem_00236], [SWS_Dem_00239]). Для связанных с выбросами PID модуль DEM предоставляет специфические буферы данных, например для PID $01 через Dem_DcmReadDataOfPID01 ([SWS_Dem_00318]) или результатов тестов OBDMID через Dem_DcmGetAvailableOBDMIDs и Dem_DcmGetDTRData ([SWS_Dem_00766], [SWS_Dem_00768]).
Параллельно с этим SW-C и модули BSW передают сообщения о событиях в DEM через Dem_SetEventStatus ([SWS_Dem_00183]) или сбрасывают состояния устранения дребезга с помощью Dem_ResetEventDebounceStatus ([SWS_Dem_00683]). Ошибки при проверке параметров или недопустимые вызовы API внутри кластера все задействованные модули сообщают в DET через Det_ReportError ([SWS_Det_00009], [SWS_Det_00501]). Для расширенной трассировки приложения передают структурированные сообщения в Dlt через Dlt_SendLogMessage ([SWS_Dlt_00241], [SWS_Dlt_00236]) или Dlt_SendTraceMessage ([SWS_Dlt_00243], [SWS_Dlt_00237]).
Диаграмма последовательности: процесс запроса статуса UDS-DTC между тестером, DCM и DEM. Источники: SWS DiagnosticCommunicationManager с. 55, AUTOSAR SWS DiagnosticEventManager с. 370, [SWS_Dem_00215]
3. Синхронизация, реентерабельность и контексты задач
Кластер сочетает синхронные вызовы интерфейсов для быстрого опроса состояния с асинхронными паттернами для ресурсоемких процессов обработки. Низкоуровневые функции обратного вызова PduR, такие как Dcm_TpRxIndication или Dlt_TxConfirmation, потенциально могут выполняться из контекста прерывания ([SWS_Dcm_00093], [SWS_Dlt_00273]). Они не должны содержать блокирующих вычислений, а лишь сигнализируют о событиях ответственным модулям.
Циклическая обработка осуществляется на уровне задач с помощью основных функций, тактируемых через SchM, таких как Dem_MainFunction (SWS DiagnosticEventManager с. 247). В них обрабатываются устранение дребезга по времени ([SWS_Dem_00426]), операции записи NvM и очистка памяти. Во избежание асинхронных конфликтов такие API, как Dem_GetStatusOfDTC или Dem_GetNextFilteredDTC, спроектированы реентерабельными относительно различных экземпляров ClientId, однако строго нереентерабельными для одного и того же ClientId ([SWS_Dem_00212], [SWS_Dem_00215]). Аналогично ведет себя Dem_SetEventStatus, который может вызываться реентерабельно для различных EventId ([SWS_Dem_00183]).
При длительных операциях, таких как считывание обширных наборов данных снапшотов или операции с памятью (например, Dcm_ReadMemory, Dcm_WriteMemory), возвращаемые значения, такие как DEM_PENDING или DCM_E_PENDING, сигнализируют о том, что обработка еще продолжается и должна быть завершена последующими вызовами в циклическом контексте задачи ([SWS_Dem_00215], [SWS_Dem_00236], [SWS_Dcm_00539], [SWS_Dcm_00540]).
4. Типичные жизненные циклы и режимы работы
Жизненный цикл модулей кластера подчиняется строгому порядку инициализации и деинициализации. На ранней фазе запуска Det_Start запускает Error Tracer ([SWS_Det_00010]). DEM проходит двухэтапную инициализацию: после Dem_PreInit разрешены базовые мониторинги и устранение дребезга ([SWS_Dem_00683]); полная инициализация Dem_Init происходит после запуска NvM ([SWS_Dem_00181]). Dlt_Init вызывается после NvM для восстановления сохраненных состояний фильтров и каналов через NvM_ReadBlock ([SWS_Dlt_00239], [SWS_Dlt_00453]). При завершении работы системы (System-Shutdown) DEM сохраняет содержимое своей памяти ошибок через Dem_Shutdown ([SWS_Dem_00182]).
В процессе работы Communication Manager (ComM) управляет коммуникационными режимами DCM через функции обратного вызова: Dcm_ComM_FullComModeEntered активирует регулярную готовность к приему и передаче, а также периодические идентификаторы ([SWS_Dcm_00360], SWS DiagnosticCommunicationManager с. 479). Dcm_ComM_SilentComModeEntered отключает обычную передачу ([SWS_Dcm_00358]), а Dcm_ComM_NoComModeEntered блокирует любую коммуникацию ([SWS_Dcm_00356]). При перепрограммировании или сбросе ECU через Dcm_SetProgConditions и Dcm_GetProgConditions происходит обмен параметрами передачи загрузчику (Bootloader) ([SWS_Dcm_00543], [SWS_Dcm_00544]). Сброс в стандартную сессию может быть принудительно выполнен в любое время через Dcm_ResetToDefaultSession ([SWS_Dcm_00520]).
Диаграмма состояний: состояния коммуникации DCM под управлением ComM. Источники: AUTOSAR CP SWS DiagnosticCommunicationManager с. 478, [SWS_Dcm_00356], [SWS_Dcm_00358], [SWS_Dcm_00360]
5. Обработка ошибок, трассировка DET и деградация
Архитектура диагностики и обработки ошибок строго разграничивает ошибки разработки (DET) и операционные системные дефекты (DEM). Ошибки времени выполнения и ошибки разработки DET перехватывает через сконфигурированные пользовательские коллауты ([SWS_Det_00181], [SWS_Det_00501]). Переходные ошибки сигнализировались через Det_ReportTransientFault ([SWS_Det_01003]). В DCM ошибки передачи перехватываются при отсутствии подтверждения через Dcm_TxConfirmation, после чего буферы отправки освобождаются, а тайм-ауты сбрасываются ([SWS_Dcm_00351], ErrorDescription с. 26).
В DEM функциональные ошибки квалифицируются через фильтры устранения дребезга ([SWS_Dem_00427], [SWS_Dem_00683]). Сохранение или устранение дребезга может целенаправленно подавляться условиями разрешения и сохранения (Dem_SetEnableCondition, Dem_SetStorageCondition) ([SWS_Dem_00201], [SWS_Dem_00556]). Если память событий рискует переполниться, срабатывает стратегия вытеснения (Displacement), при которой заменяются существующие записи более низкого приоритета или пассивные записи ([SWS_Dem_00400], [SWS_Dem_00401], AUTOSAR SWS DiagnosticEventManager с. 98). О переполнениях памяти клиентам сообщается через Dem_GetEventMemoryOverflow ([SWS_Dem_00559]). Для деактивации аварийных режимов Dem_ResetEventStatus позволяет досрочно сбросить статус Failed ([SWS_Dem_00185], SWS DiagnosticEventManager с. 79).
Модуль Dlt поддерживает анализ ошибок посредством динамической фильтрации уровней логирования (Dlt_SetDefaultLogLevel) и состояний трассировки (Dlt_SetTraceStatus, Dlt_SetMessageFiltering) ([SWS_Dlt_00254], [SWS_Dlt_00740], [SWS_Dlt_00770]). Конфигурации могут сохраняться на постоянной основе (Dlt_StoreConfiguration) или сбрасываться до заводского состояния через Dlt_ResetToFactoryDefault ([SWS_Dlt_00736], [SWS_Dlt_00739]). Интерпретация: прямое сопряжение между DET и Dlt для автоматизированной пересылки сообщений об ошибках в релизе R20-11, предположительно, осуществляется через стандартизированные хуки коллаутов или трассировку приложений (SWS DefaultErrorTracer с. 1). Вопрос Q-c1cf364915fb6635 (открытый)
Настоящее руководство нормативно обобщает ключевую архитектуру и функциональное взаимодействие Diagnostic Services (DCM, DEM, DET, Dlt) согласно спецификациям AUTOSAR R20-11.
Module im Cluster
Debugging (Dbg)
AUTOSAR Classic System Services-Modul Debugging (Dbg, Spezifikation: AUTOSAR_SWS_Debugging.pdf).
Diagnostic Communication Manager (DCM)
The DCM implements unified diagnostic services according to ISO 14229-1 (UDS) and ISO 15765-4 (OBD). It manages diagnostic sessions, security levels, and service routing.
Diagnostic Event Manager (DEM)
The DEM is responsible for processing and storing diagnostic events, fault memories, DTC statuses, and associated freeze frame data.
Default Error Tracer (DET)
The DET handles development errors, runtime errors, and transient faults across all BSW modules and SW-Cs.
Diagnostic Log and Trace (DLT)
The DLT module collects log messages and trace points and formats them into standardized DLT frames for external tooling.
Function Inhibition Manager (FiM)
AUTOSAR Classic System Services-Modul Function Inhibition Manager (FiM, Spezifikation: AUTOSAR_CP_SWS_FunctionInhibitionManager.pdf, AUTOSAR_SWS_FIM.pdf, AUTOSAR_SWS_FunctionInhibitionManager.pdf).
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал