Diagnostic Event Manager (DEM)
The DEM is responsible for processing and storing diagnostic events, fault memories, DTC statuses, and associated freeze frame data.
Funktionen — Übersicht
void Dem_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.void Dem_PreInit (void);Initializes the internal states necessary to process events reported by BSW-modules.void Dem_Init (const Dem_ConfigType* ConfigPtr);Initializes or reinitializes this module.void Dem_Shutdown (void);Shuts down this module.Std_ReturnType Dem_ClearDTC (uint8 ClientId);Clears single DTCs, as well as groups of DTCs.Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);Clears a prestored freeze frame of a specific event.Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);Gets the failed status of a DemComponent.Std_ReturnType Dem_GetDTCSelectionResult (uint8 ClientId);Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.Std_ReturnType Dem_GetDTCSelectionResultForClearDTC (uint8 ClientId);Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs, respecting the settings if...Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);Gets the current UDS status byte assigned to the DTC for the eventStd_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);Gets the current monitor status for an event.Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);Gets the debouncing status of an event.Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);Gets the DTC of an event.Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);Returns the suppression status of a specific DTC.Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);Get the Event's availability.Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);Gets the fault detection counter of an event.Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);Gets the indicator status derived from the UDS status.Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);Gets the data of a freeze frame by event.Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);Gets the data of an extended data record by event.Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);Gets the event memory overflow indication status.Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);Returns the number of entries currently stored in the requested event memory.Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);Control the internal debounce counter/timer by BSW modules and SW-Cs.Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);Resets the event failed status.Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);Sets an operation cycle state.Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);Captures the freeze frame data for a specific event.Std_ReturnType Dem_SelectDTC (uint8 ClientId, uint32 DTC, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin);Selects a DTC or DTC group as target for further operations.Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);Set the availability of a specific DemComponent.Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);Set the suppression status of a specific DTC.Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);Sets an enable condition.Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);Set the available status of a specific Event.Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);Set the failure confirmation threshold of an event.Std_ReturnType Dem_SetEventStatus (Dem_EventIdType EventId, Dem_EventStatusType EventStatus);Called by SW-Cs or BSW modules to report monitor status information to the Dem.Std_ReturnType Dem_SetEventStatusWithMonitorData (Dem_EventIdType EventId, Dem_EventStatusType EventStatus, Dem_MonitorDataType monitorData0, Dem_MonitorDataType monitorData1);This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEvent ReportingType} ==...Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);Sets a storage condition.Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);Sets the WIR status bit via failsafe SW-Cs.void Dem_SetEventFailedWithSyncFreezeFrame (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...Dem_DTCTranslationFormatType Dem_GetTranslationType (uint8 ClientId);Gets the supported DTC formats of the ECU.Std_ReturnType Dem_GetDTCStatusAvailabilityMask (uint8 ClientId, Dem_UdsStatusByteType* DTCStatusMask, Dem_DTCOriginType DTCOrigin);Gets the DTC Status availability mask of the selected fault memory.Std_ReturnType Dem_GetStatusOfDTC (uint8 ClientId, uint8* DTCStatus);Gets the status of a DTC.Std_ReturnType Dem_GetSeverityOfDTC (Dem_DTCSeverityType* DTCSeverity, uint8 ClientId);Gets the severity of the requested DTC.Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);Gets the functional unit of the requested DTC.Std_ReturnType Dem_SetDTCFilter (uint8 ClientId, uint8 DTCStatusMask, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin, boolean FilterWithSeverity, Dem_DTCSeverityType DTCSeverityMask, boolean FilterForFaultDetectionCounter);Sets the DTC Filter.Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);Gets the number of a filtered DTC.Std_ReturnType Dem_GetNextFilteredDTC (uint8 ClientId, uint32* DTC, uint8* DTCStatus);Gets the next filtered DTC matching the filter criteria.Std_ReturnType Dem_GetNextFilteredDTCAndFDC (uint8 ClientId, uint32* DTC, sint8* DTCFaultDetectionCounter);Gets the next filtered DTC and its associated Fault Detection Counter (FDC) matching the filter criteria.Std_ReturnType Dem_GetNextFilteredDTCAndSeverity (uint8 ClientId, uint32* DTC, uint8* DTCStatus, Dem_DTCSeverityType* DTCSeverity, uint8* DTCFunctionalUnit);Gets the next filtered DTC and its associated Severity matching the filter criteria.Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);Sets a freeze frame record filter.Std_ReturnType Dem_GetNextFilteredRecord (uint8 ClientId, uint32* DTC, uint8* RecordNumber);Gets the next freeze frame record number and its associated DTC stored in the event memory.Std_ReturnType Dem_GetDTCByOccurrenceTime (uint8 ClientId, Dem_DTCRequestType DTCRequest, uint32* DTC);Gets the DTC by occurrence time.Std_ReturnType Dem_DisableDTCRecordUpdate (uint8 ClientId);Disables the event memory update of a specific DTC (only one at one time).Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);Enables the event memory update of the DTC disabled by Dem_DisableDTCRecordUpdate() before.Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);Gets the size of Extended Data Record by DTC selected by the call of Dem_SelectExtended DataRecord.Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);Gets the size of freeze frame data by DTC selected by the call of Dem_SelectFreezeFrame Data.Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord.Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData.Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);This function returns the number of all freeze frame records currently stored in the primary event memoryStd_ReturnType Dem_DisableDTCSetting (uint8 ClientId);Disables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);(Re)-Enables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);Service is used for requesting IUMPR data according to InfoType $08.Std_ReturnType Dem_DcmGetInfoTypeValue0B (Dcm_OpStatusType OpStatus, uint8* Iumprdata0B, uint8* Iumprdata0BBufferSize);Service is used for requesting IUMPR data according to InfoType $0B.Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);Service to report the value of PID $01 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);Service to report the value of PID $1C computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);Service to report the value of PID $21 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);Service to report the value of PID $30 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);Service to report the value of PID $31 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);Service to report the value of PID $41 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);Service to report the value of PID $4D computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);Service to report the value of PID $4E computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);Service to report the value of PID $91 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfOBDFreezeFrame (uint8 PID, uint8 DataElementIndexOfPID, uint8* DestBuffer, uint16* BufSize);Gets data element per PID and index of the most important freeze frame being selected for the output of service $02.Std_ReturnType Dem_DcmGetDTCOfOBDFreezeFrame (uint8 FrameNumber, uint32* DTC, Dem_DTCFormatType DTCFormat);Gets DTC by freeze frame record number.Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);Reports the value of a requested "availability-OBDMID" to the DCM upon a Service $06 request.Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);Gets the number of TIDs per (functional) OBDMID.Std_ReturnType Dem_DcmGetDTRData (uint8 Obdmid, uint8 TIDindex, uint8* TIDvalue, uint8* UaSID, uint16* Testvalue, uint16* Lowlimvalue, uint16* Upplimvalue);Reports a DTR data along with TID-value, UaSID, test result with lower and upper limit.Std_ReturnType Dem_J1939DcmSetDTCFilter (Dem_J1939DcmDTCStatusFilterType DTCStatusFilter, Dem_DTCKindType DTCKind, Dem_DTCOriginType DTCOrigin, uint8 ClientId, Dem_J1939DcmLampStatusType* LampStatus);The function sets the DTC filter for a specific node and returns the composite lamp status of the filtered DTCs.Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);Gets the number of currently filtered DTCs set by the function Dem_J1939DcmSetDTCFilter.Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);Gets the next filtered J1939 DTC.void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);The function sets the filter to the first applicable DTC for the DM31 response for a specific node.Std_ReturnType Dem_J1939DcmGetNextDTCwithLampStatus (Dem_J1939DcmLampStatusType* LampStatus, uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);Gets the next filtered J1939 DTC for DM31 including current LampStatus.Std_ReturnType Dem_J1939DcmClearDTC (Dem_J1939DcmSetClearFilterType DTCTypeFilter, Dem_DTCOriginType DTCOrigin, uint8 ClientId);Clears the status of all event(s) related to the specified DTC(s), as well as all associated event memory entries for these...Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);The function sets the FreezeFrame filter for a specific node.Std_ReturnType Dem_J1939DcmGetNextFreezeFrame (uint32* J1939DTC, uint8* OccurenceCounter, uint8* DestBuffer, uint16* BufSize, uint8 ClientId);Gets next freeze frame data.Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);Gets next SPN.Std_ReturnType Dem_J1939DcmSetRatioFilter (uint16* IgnitionCycleCounter, uint16* OBDMonitoringConditionsEncountered, uint8 ClientId);The function sets the Ratio filter for a specific node and returns the corresponding Ignition Cycle Counter and General...Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);Gets the next filtered Ratio.Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 1 (DM05) computed by the Dem.Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 2 (DM21) computed by the Dem.Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 3 (DM26) computed by the Dem.Std_ReturnType Dem_SetEventDisabled (Dem_EventIdType EventId);Service for reporting the event as disabled to the Dem for the PID $41 computation.Std_ReturnType Dem_RepIUMPRFaultDetect (Dem_RatioIdType RatioID);Service for reporting that faults are possibly found because all conditions are fullfilled.Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to...Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to...Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);Service is used to release a denominator of a specific monitor.Std_ReturnType Dem_SetPtoStatus (boolean PtoStatus);API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);Service to report the value of PID $01 computed by the Dem.Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);Service to get the value of PID $21 from the Dem by a software component.Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);Service to set the value of PID $21 in the Dem by a software component.Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);Service to set the value of PID $31 in the Dem by a software component.Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);Service to set the value of PID $4D in the Dem by a software component.Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);Service to set the value of PID $4E in the Dem by a software component.Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);Returns the qualification state of the dependent operation cycle.Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);Gets the DTC Severity availability mask.Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);Service to report the value of the B1 counter computed by the Dem.Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);Reports a DTR result with lower and upper limit.Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);Called by the Dem after the internal processing of Dem_SetEventFailedWithSyncFreezeFrame is done and a further call of...void Dem_MainFunction (void);Processes all not event based Dem internal functions.
Typen — Übersicht
Dem_ComponentIdTypeIdentification of a DemComponent by assigned ComponentId.struct Dem_ConfigTypeThis type of the external data structure shall contain the post build initialization data for the Dem.Dem_DTCKindTypeThis type is used to filter DTCs for their kind.Dem_DTCRequestTypeThis type is used to request a DTC with specific attributes.Dem_DTCTranslationFormatTypeDTC translation format as defined in ISO14229-1.Dem_J1939DcmDTCStatusFilterTypeThe type to distinguish which DTCs should be filtered.Dem_J1939DcmSetClearFilterTypeThe type to distinguish which DTCs gets clearedDem_J1939DcmSetFreezeFrameFilterTypeThe type to distinguish which DTCs gets clearedenum Dem_J1939DcmLampStatusTypeFor details refer SAE J1939-73struct Dem_J1939DcmDiagnosticReadiness1TypeThis structure represents all data elemets of the DM05 message.struct Dem_J1939DcmDiagnosticReadiness2TypeThis structure represents all data elemets of the DM21 message.struct Dem_J1939DcmDiagnosticReadiness3TypeThis structure represents all data elemets of the DM26 message.Dem_DataTypeData type definition for external data elementsDem_DataPrimitiveTypeDem_DataArrayTypeArray data type definition for external data elementsenum Dem_DTCOriginTypeThis enum is used to define the location of the events.enum Dem_DebounceResetStatusTypeThis type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().Dem_DTRControlTypeControl parameter for the interpretation of the reported test results.Dem_EventIdTypeIdentification of an event by assigned EventId.enum Dem_EventStatusTypeThis type contains all monitor test result values, which can be reported via Dem_SetEventStatus().Dem_DTCFormatTypeThis type is used to select the format of the DTC value.enum Dem_InitMonitorReasonType(Re-)Initialization reason returned by the callback _DemInitMonitorFor().Dem_IumprDenomCondIdTypeThis type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.enum Dem_IumprDenomCondStatusTypeThis type contains all possible states of an additional IUMPR denominator condition to be broadcasted among OBD-relevant ECUs.Dem_MaxDataValueTypeDem_MonitorDataTypeThis type is used to pass monitoring data to the Dem.enum Dem_IndicatorStatusTypeIndicator mode used by Dem_GetIndicatorStatus().Dem_PID21valueTypeDem_PID31valueTypeDem_RatioIdTypeOBD specific ratio Id (related to a specific event, a FID, and an IUMPR group).Dem_PID4DvalueTypeDem_PID4EvalueType
Funktionen & Typen — Detailansicht
function Dem_GetVersionInfo [SWS_Dem_00177] 📄 PDF
void Dem_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemVersionInfoApi)} == true)
function Dem_PreInit [SWS_Dem_00179] 📄 PDF
void Dem_PreInit (void);
Initializes the internal states necessary to process events reported by BSW-modules.
Die Funktion Dem_PreInit dient während des Systemhochlaufs zur Vorinitialisierung der internen Zustände des DEM-Moduls, die für die frühe Verarbeitung von Ereignismeldungen aus BSW-Modulen erforderlich sind ([SWS_Dem_00179], [SWS_Dem_00180]). Der Aufruf erfolgt synchron, ist nicht reentrant und besitzt weder Übergabeparameter noch einen Rückgabewert ([SWS_Dem_00179]).
Mit dem Aufruf von Dem_PreInit werden die internen Entprellmechanismen einschließlich Zählern und Timern initialisiert ([SWS_Dem_01213]). Ist ein DEM-internes Entprellen konfiguriert, setzt das Modul den entsprechenden Entprellalgorithmus zurück ([SWS_Dem_00438]).
Nach erfolgreichem Abschluss von Dem_PreInit und vor dem Aufruf von Dem_Init sind ausgewählte Schnittstellen und Verhaltensweisen freigegeben:
- Ereignisstatus und Entprellung: Aufrufe von
Dem_SetEventStatuswerden zur Entprellung mit den ZuständenDEM_EVENT_STATUS_PREPASSEDundDEM_EVENT_STATUS_PREFAILEDunterstützt ([SWS_Dem_01212]). Alle vorDem_Initgemeldeten Ereignisse lösen jedoch keine Callbacks zur Statusänderung des Monitors aus ([SWS_Dem_01289]). - Entprellstatus steuern: Die Funktion
Dem_ResetEventDebounceStatuszum Zurücksetzen oder Einfrieren von Entprellzählern steht BSW-Modulen nach Abschluss vonDem_PreInitzur Verfügung ([SWS_Dem_00180], [SWS_Dem_00683]). - Bestätigungsschwellen und Betriebszyklen: Das DEM unterstützt nach
Dem_PreInitAufrufe vonDem_SetEventConfirmationThresholdCounter([SWS_Dem_01242]). Ein Aufruf vonDem_RestartOperationCycleist ebenfalls erst ab diesem Zeitpunkt zulässig; wird ein Betriebszyklus vorDem_Initneu gestartet, erfolgt die eigentliche Verarbeitung des Neustarts erst nachDem_Init([SWS_Dem_01318]).
Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_Init [SWS_Dem_00181] 📄 PDF
void Dem_Init (const Dem_ConfigType* ConfigPtr);
Initializes or reinitializes this module.
Die synchrone, nicht reentrante Funktion Dem_Init initialisiert oder reinitialisiert das Diagnostic Event Manager (DEM)-Modul vollständig gemäß [SWS_Dem_00181]. Nach Abschluss dieses Aufrufs ist das DEM voll betriebsbereit ([SWS_Dem_00340]). Über den Eingabeparameter ConfigPtr wird in VARIANT-POST-BUILD ein Zeiger auf den Post-Build-Konfigurationsdatensatz übergeben ([SWS_Dem_00181]).
Im Rahmen des Initialisierungsablaufs führt Dem_Init wesentliche Wiederherstellungs- und Synchronisationsschritte durch:
- Zustands- und Monitorinitialisierung: Die Monitor- und Komponentenstati werden initialisiert ([SWS_Dem_01324]). Während Aufrufe von
Dem_GetMonitorStatusvor Abschluss der InitialisierungE_NOT_OKliefern ([SWS_Dem_01326]), gebenDem_GetMonitorStatusundDem_GetComponentFailednach diesem ZeitpunktE_OKzurück ([SWS_Dem_01324]). - Nichtflüchtiger Speicher (NVM): Sofern konfiguriert (
DemDebounceCounterStorage == True), stellt das DEM spätestens inDem_Initden internen Entprellzähler wieder her ([SWS_Dem_00675]). Ebenso werden vorkonfigurierte Freeze-Frame-Daten vor Rückkehr der Funktion aus dem NVM geladen ([SWS_Dem_01322]), wofür das DEM auf NvM-APIs wieNvM_ReadBlockzurückgreift ([SWS_Dem_00164]). Durch den Aufruf vonDem_Initwird zudem die Sperre des Ereignisspeichers nach einem vorherigenDem_Shutdownaufgehoben ([SWS_Dem_00102]). - Zusammenspiel und Pufferung: Ist
DemTriggerFiMReportsaufTruegesetzt, ruftDem_Initexklusiv zu diesem ZeitpunktFiM_DemInitauf, um die Berechtigungen im Function Inhibition Manager zu initialisieren ([SWS_Dem_01189]). Ereignisse, die vorDem_Initgepuffert wurden ([SWS_Dem_00167], [SWS_Dem_01079]), lösen vorDem_Initkeine Monitor-Statuswechsel-Callbacks aus ([SWS_Dem_01289]). Ein vorDem_InitviaDem_RestartOperationCycleangeforderter Zyklus-Neustart wird erst nachDem_Initabgearbeitet ([SWS_Dem_01318]).
Bezüglich der Fehlerbehandlung gilt: Wurde Dem_Shutdown aufgerufen, quittiert das DEM bei aktiver Entwicklungserkennung Aufrufe der meisten APIs mit dem Fehler DEM_E_UNINIT, bis Dem_Init erneut ausgeführt wird ([SWS_Dem_00368]).
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_Shutdown [SWS_Dem_00182] 📄 PDF
void Dem_Shutdown (void);
Shuts down this module.
Die synchrone und nicht-reentrante Funktion Dem_Shutdown dient dem geordneten Herunterfahren des Moduls Diagnostic Event Manager ([SWS_Dem_00182]). Sie besitzt weder Eingangs- noch Rückgabeparameter ([SWS_Dem_00182]). Der Aufrufkontext dürfte vermutlich im Rahmen der zentralen Steuergeräte-Abschaltsequenz liegen. Frage Q-a0e6a5700c49d786 (offen)
Beim Aufruf schließt Dem_Shutdown alle noch ausstehenden Operationen des DEM-Moduls ab, um die internen Zustände und Daten für die Übertragung in das NVRAM vorzubereiten ([SWS_Dem_00102]). Für veränderte nichtflüchtige Daten stößt das DEM die Speicherung im NVRAM vor oder während Dem_Shutdown an ([SWS_Dem_00341]). Soweit erforderlich, verwendet das Modul für das Sichern und Wiederherstellen von Daten zwischen Dem_Init und Dem_Shutdown die Schnittstellen NvM_WriteBlock und NvM_ReadBlock des NVRAM Managers ([SWS_Dem_00164]). Wurde das DEM so konfiguriert, dass vorab gespeicherte Freeze-Frame-Daten nichtflüchtig abgelegt werden, erfolgt diese Speicherung einmalig und spätestens während Dem_Shutdown ([SWS_Dem_01321]).
Mit der Durchführung des Shutdowns wird der Ereignisspeicher gesperrt und darf bis zu einem erneuten Aufruf von Dem_Init nicht mehr modifiziert werden ([SWS_Dem_00102]). Zudem gelten nachfolgende Fehlerbedingungen bei aktivierter Entwicklungserkennung (Development Error Detection):
- Wird nach
Dem_Shutdowneine DEM-API aufgerufen – ausgenommenDem_SetEventStatus,Dem_ResetEventDebounceStatus,Dem_GetVersionInfoundDem_MainFunction–, setzt das Modul den FehlercodeDEM_E_UNINITbis zum nächstenDem_Init([SWS_Dem_00368]). - Werden
Dem_SetEventStatusoderDem_ResetEventDebounceStatusnachDem_Shutdownfür Events aufgerufen, bei denenDemDebounceCounterStorageaufTruegesetzt ist, meldet das DEM den FehlercodeDEM_E_WRONG_CONDITION([SWS_Dem_00676]).
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Verbindlich sind die Festlegungen der jeweiligen AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Dem_ClearDTC [SWS_Dem_00665] 📄 PDF
Std_ReturnType Dem_ClearDTC (uint8 ClientId);
Clears single DTCs, as well as groups of DTCs.
Die asynchrone Funktion Dem_ClearDTC dient dem Löschen einzelner Diagnose-Fehlercodes (DTCs) oder ganzer DTC-Gruppen im Diagnostic Event Manager [SWS_Dem_00665]. Vor dem Aufruf muss die Zielauswahl aus DTC, Format und Speicherort mittels Dem_SelectDTC für die jeweilige ClientId festgelegt worden sein [SWS_Dem_01253]. Die Funktion ist für unterschiedliche ClientId-Werte reentrant, für denselben Client jedoch nicht reentrant [SWS_Dem_00665].
Der Löschvorgang wird mit E_OK bestätigt, sobald er erfolgreich abgeschlossen ist [SWS_Dem_00665]. Solange die Bereinigung läuft, liefert die API DEM_PENDING zurück, woraufhin der Aufrufer die Funktion zu einem späteren Zeitpunkt erneut aufrufen muss [SWS_Dem_00665]. Ist für denselben Client parallel eine andere von Dem_SelectDTC abhängige Operation aktiv, wird DEM_BUSY gemeldet [SWS_Dem_00665]. Mehrere parallele Client-Anfragen verarbeitet das DEM intern [SWS_Dem_00661], wobei konkurrierende Aufrufe während eines laufenden Löschprozesses DEM_PENDING [SWS_Dem_00664] oder DEM_CLEAR_BUSY [SWS_Dem_00665] erhalten können.
Fehlerhafte Aufrufe quittiert die API mit spezifischen Rückgabewerten:
E_NOT_OK: Es wurde zuvor kein DTC ausgewählt [SWS_Dem_00665].DEM_WRONG_DTC: Der DTC existiert nicht [SWS_Dem_00665], ist unterdrückt [SWS_Dem_01100] oder die KonfigurationDemClearDTCLimitationerzwingtDEM_ONLY_CLEAR_ALL_DTCS[SWS_Dem_00670].DEM_WRONG_DTCORIGIN: Der gewählte Speicherort existiert nicht [SWS_Dem_00665].DEM_CLEAR_FAILEDbzw.DEM_CLEAR_MEMORY_ERROR: Das Löschen schlug fehl oder es trat ein Fehler beim Löschen im Festspeicher auf [SWS_Dem_00665].
Im Rahmen der Löschung werden bei kombinierten DTCs alle verknüpften Events bereinigt [SWS_Dem_00440] und deren Monitor-Initialisierung via InitMonitorForEvent mit DEM_INIT_MONITOR_CLEAR angestoßen [SWS_Dem_00680]. Bei gesetztem DemTriggerMonitorInitBeforeClearOk erfolgt die Rückgabe von E_OK erst nach diesem Trigger [SWS_Dem_00573]. Werden alle DTCs eines Ereignisspeichers gelöscht, setzt das DEM dessen Überlaufanzeige zurück [SWS_Dem_00399]; zudem werden bei OBD-Service $04 nicht zugeordnete DTR-Daten zurückgesetzt [SWS_Dem_00764] und nicht speichergebundene Events bereinigt [SWS_Dem_01249].
Dieser Text wurde von einer KI generiert und dient der technischen Orientierung.
Implementer's Guide folgt (Komplexität I2)
function Dem_ClearPrestoredFreezeFrame [SWS_Dem_00193] 📄 PDF
Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);
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)
Verwendung und Aufrufkontext
Die synchrone Funktion Dem_ClearPrestoredFreezeFrame löscht einen zuvor zwischengespeicherten Freeze-Frame zu einem bestimmten Diagnoseereignis ([SWS_Dem_00193]). Der Aufruf erfolgt ausschließlich über das RTE; eine Deklaration in der Header-Datei Dem.h wird nicht bereitgestellt ([SWS_Dem_00193]). Das API ist nur dann im System implementiert, wenn mindestens ein Ereignis für die Vorab-Speicherung konfiguriert wurde (Konfigurationsparameter DemFFPrestorageSupported) ([SWS_Dem_00193], [SWS_Dem_00334]). Die Funktion liefert E_OK bei erfolgreichem Löschen zurück und E_NOT_OK, wenn der Vorgang fehlschlägt ([SWS_Dem_00193]).
Nebenläufigkeit und Einschränkungen
Die Schnittstelle ist reentrant für unterschiedliche Ereignis-IDs (EventId), darf jedoch für dieselbe EventId nicht nebenläufig ausgeführt werden ([SWS_Dem_00193]). Ein Aufruf mit Ereignissen, die als Slave-Ereignisse (DemMultiEventTriggeringSlaveEventRef) oder als Ersatzereignisse (DemStorageConditionReplacementEventRef) konfiguriert sind, wird nicht unterstützt; das Verhalten des DEM ist hierbei undefiniert ([SWS_Dem_01339]). Ist ein Ereignis als nicht verfügbar gesetzt, wird es wie ein nicht konfiguriertes Ereignis behandelt ([SWS_Dem_01108]); Interpretation: Der Aufruf dürfte in diesem Fall mit E_NOT_OK abgewiesen werden. Frage Q-d8ebaf6883138fdf (offen)
Zusammenspiel bei Multi-Event-Triggering
Sofern DemMultiEventTriggering konfiguriert ist und die Funktion für ein Master-Ereignis (DemMultiEventTriggeringMasterEventRef) aufgerufen wird, triggert das DEM den Löschaufruf mit identischen Parametern automatisch für alle zugeordneten Slave-Ereignisse (DemMultiEventTriggeringSlaveEventRef) ([SWS_Dem_01250]).
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic Release R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_GetComponentFailed [SWS_Dem_01115] 📄 PDF
Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);
Gets the failed status of a DemComponent.
function Dem_GetDTCSelectionResult [SWS_Dem_91023] 📄 PDF
Std_ReturnType Dem_GetDTCSelectionResult (uint8 ClientId);
Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.
function Dem_GetDTCSelectionResultForClearDTC [SWS_Dem_91020] 📄 PDF
Std_ReturnType Dem_GetDTCSelectionResultForClearDTC (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.
function Dem_GetEventUdsStatus [SWS_Dem_91008] 📄 PDF
Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);
Gets the current UDS status byte assigned to the DTC for the event
function Dem_GetMonitorStatus [SWS_Dem_91007] 📄 PDF
Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);
Gets the current monitor status for an event.
function Dem_GetDebouncingOfEvent [SWS_Dem_00730] 📄 PDF
Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);
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.
function Dem_GetDTCOfEvent [SWS_Dem_00198] 📄 PDF
Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);
Gets the DTC of an event.
function Dem_GetDTCSuppression [SWS_Dem_91025] 📄 PDF
Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);
Returns the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppressionSupport)} == DEM_DTC_SUPPRESSION)
function Dem_GetEventAvailable [SWS_Dem_91040] 📄 PDF
Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);
Get the Event's availability.
function Dem_GetFaultDetectionCounter [SWS_Dem_00203] 📄 PDF
Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);
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.
function Dem_GetIndicatorStatus [SWS_Dem_00205] 📄 PDF
Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);
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)
function Dem_GetEventFreezeFrameDataEx [SWS_Dem_01191] 📄 PDF
Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);
Gets the data of a freeze frame by event.
function Dem_GetEventExtendedDataRecordEx [SWS_Dem_01190] 📄 PDF
Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);
Gets the data of an extended data record by event.
function Dem_GetEventMemoryOverflow [SWS_Dem_00559] 📄 PDF
Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);
Gets the event memory overflow indication status.
function Dem_GetNumberOfEventMemoryEntries [SWS_Dem_00652] 📄 PDF
Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);
Returns the number of entries currently stored in the requested event memory.
function Dem_ResetEventDebounceStatus [SWS_Dem_00683] 📄 PDF
Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);
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).
Die synchrone Funktion Dem_ResetEventDebounceStatus dient BSW-Modulen und Software-Komponenten (SW-Cs) dazu, den internen Entprellzähler oder -timer eines Diagnose-Events gezielt einzufrieren oder zurückzusetzen, ohne die Event-Qualifizierung zu beeinflussen [SWS_Dem_00683].
Verwendung und Parameter
Über den Parameter DebounceResetStatus wird die gewünschte Aktion gesteuert: Der Wert DEM_DEBOUNCE_STATUS_FREEZE friert den internen Entprelltimer ein [SWS_Dem_00685], während DEM_DEBOUNCE_STATUS_RESET den zugehörigen Fehlermerkwertzähler (Fault Detection Counter) zurücksetzt [SWS_Dem_00684] [SWS_Dem_00927]. Die Funktion liefert E_OK bei erfolgreicher Ausführung zurück und E_NOT_OK ausschließlich im Fall eines Entwicklungsfehlers [SWS_Dem_00683].
Fehlerbehandlung und Lebenszyklus
Die API ist für BSW-Module bereits nach Abschluss von Dem_PreInit verfügbar und daher von der allgemeinen Initialisierungsprüfung vor vollständiger Initialisierung ausgenommen [SWS_Dem_00124] [SWS_Dem_00683]. Bei aktivierter Entwicklungserkennung gelten folgende Bedingungen:
- Wird die Funktion vor der Vorinitialisierung aufgerufen, meldet das DEM den Fehler
DEM_E_UNINIT[SWS_Dem_00364]. - Erfolgt der Aufruf für Events mit persistentem Entprellzähler (
DemDebounceCounterStorageauf True) vorDem_Initoder nachDem_Shutdown, wirdDEM_E_WRONG_CONDITIONgesetzt [SWS_Dem_00676]. - Ist ein Event als nicht verfügbar markiert, wird es wie ein nicht konfiguriertes Event behandelt [SWS_Dem_01108].
Nebenläufigkeit und Einschränkungen
Dem_ResetEventDebounceStatus ist für unterschiedliche EventId-Werte reentrant, für denselben Event jedoch nicht reentrant [SWS_Dem_00683]. Bei konfiguriertem DemMultiEventTriggering löst ein Aufruf mit einem Master-Event identische Aufrufe für alle zugeordneten Slave-Events aus [SWS_Dem_01250]. Direkte Aufrufe für reine interne Slave-Events oder über DemStorageConditionReplacementEventRef referenzierte Events werden nicht unterstützt und führen zu undefiniertem Verhalten [SWS_Dem_01339].
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_ResetEventStatus [SWS_Dem_00185] 📄 PDF
Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);
Resets the event failed status. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.
Die Funktion Dem_ResetEventStatus dient dem Zurücksetzen des Fehlerstatus eines Diagnose-Events und steht ausschließlich über die RTE zur Verfügung [SWS_Dem_00185]. Der Aufruf erfolgt mit der EventId und besitzt eine asynchrone Semantik: Bei erfolgreicher Annahme der Anforderung liefert die Funktion E_OK zurück [SWS_Dem_00185]. Das DEM-Modul setzt daraufhin zeitlich versetzt das Status-Bit 0 (TestFailed) auf 0 zurück und setzt bei entsprechender Konfiguration den internen Entprellalgorithmus auf dessen Initialwerte [SWS_Dem_00187].
Die Anforderung schlägt mit dem Rückgabewert E_NOT_OK fehl, wenn das Event im aktuellen Betriebszyklus bereits getestet wurde (UDS-Status-Bit 6 ist 0) [SWS_Dem_00185], [SWS_Dem_00638], oder wenn das Event als nicht verfügbar konfiguriert bzw. gesetzt ist [SWS_Dem_01108]. Ein Aufruf vor der vollständigen Initialisierung des DEM führt selbst bei aktivierter Entwicklungserkennung (DemDevErrorDetect) nicht zur Meldung des Fehlers DEM_E_UNINIT [SWS_Dem_00124].
Hinsichtlich der Nebenläufigkeit ist Dem_ResetEventStatus für unterschiedliche EventId-Werte reentrant, für dieselbe EventId hingegen nicht reentrant [SWS_Dem_00185]. Ist DemMultiEventTriggering konfiguriert und wird die Funktion mit einem Master-Event aufgerufen, triggert das DEM denselben Aufruf automatisch für alle verknüpften Slave-Events [SWS_Dem_01250]. Direkte Aufrufe mit einer EventId, die als Slave-Event oder als DemStorageConditionReplacementEventRef konfiguriert ist, werden nicht unterstützt und führen zu undefiniertem Verhalten [SWS_Dem_01339].
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_RestartOperationCycle [SWS_Dem_00194] 📄 PDF
Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);
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.
Die Funktion Dem_RestartOperationCycle dient dem Neustart eines Betriebszyklus ([SWS_Dem_00194]). Der Aufruf erfolgt ausschließlich über die RTE, weshalb keine Deklaration über die Dem.h exportiert wird ([SWS_Dem_00194]).
Semantik und Parameter
Über den Eingangsparameter OperationCycleId wird der neu zu startende Betriebszyklus identifiziert (z. B. Power Cycle oder Driving Cycle) ([SWS_Dem_00194]). Die Funktion arbeitet reentrant sowie asynchron ([SWS_Dem_00194]):
E_OK: Das Setzen des Betriebszyklus wurde akzeptiert und wird asynchron weiterverarbeitet ([SWS_Dem_00194]).E_NOT_OK: Die Anforderung zum Setzen des Zyklus wurde abgelehnt ([SWS_Dem_00194]).
Zusammenspiel und asynchroner Ablauf
Das asynchrone Verhalten verhindert Verletzungen typischer Zeitanforderungen, wenn eine große Anzahl von Events verarbeitet und Monitore reinitialisiert werden müssen ([SWS_Dem_00194]). Als asynchrone Rückmeldungen fungieren die zugehörigen Callbacks InitMonitorForEvent ([SWS_Dem_00194]). Im Zuge des Neustarts reinitialisiert das DEM die Diagnose-Monitore aller betroffenen Events durch Aufruf ihres Callbacks InitMonitorForEvent mit dem Parameter InitMonitorReason gesetzt auf DEM_INIT_MONITOR_RESTART ([SWS_Dem_00679]).
Wird ein Betriebszyklus über Dem_RestartOperationCycle neu gestartet, müssen zudem alle davon abhängigen Betriebszyklen ebenfalls neu gestartet werden, sofern sie qualifiziert sind ([SWS_Dem_01224]).
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Maßgeblich ist die AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Dem_PrestoreFreezeFrame [SWS_Dem_00188] 📄 PDF
Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);
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)
Die Funktion dient dem synchronen Erfassen und Zwischenspeichern von Freeze-Frame-Daten für ein spezifisches Diagnoseereignis [SWS_Dem_00188]. Die Schnittstelle wird ausschließlich über die RTE zur Verfügung gestellt und nicht über Dem.h exportiert [SWS_Dem_00188]. Sie existiert im Modul nur dann, wenn für mindestens ein Ereignis die Vorspeicherung konfiguriert ist (DemFFPrestorageSupported) [SWS_Dem_00334].
Rückgabewerte und Fehlerbehandlung:
E_OK: Das Freeze-Frame wurde erfolgreich zwischengespeichert [SWS_Dem_00188].E_NOT_OK: Die Zwischenspeicherung schlägt fehl [SWS_Dem_00188], insbesondere wenn kein Puffer mehr frei ist (begrenzt durchDemMaxNumberPrestoredFF) [SWS_Dem_00808] oder das angegebene Ereignis als nicht verfügbar gesetzt ist [SWS_Dem_01108].
Nebenläufigkeit und Aufrufbedingungen: Die Funktion ist für unterschiedliche Ereignis-IDs reentrant, jedoch nicht für dieselbe EventId [SWS_Dem_00188].
Zusammenspiel bei Multi-Event-Triggering: Wird die Funktion mit einem konfigurierten Master-Ereignis (DemMultiEventTriggeringMasterEventRef) aufgerufen, löst das DEM automatisch identische Aufrufe für alle zugehörigen Slave-Ereignisse (DemMultiEventTriggeringSlaveEventRef) aus [SWS_Dem_01250]. Direkte Aufrufe mit einer Slave-Ereignis-ID oder mit einem Ersatzereignis für Speicherbedingungen (DemStorageConditionReplacementEventRef) werden nicht unterstützt und führen zu undefiniertem Verhalten [SWS_Dem_01339].
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_SelectDTC [SWS_Dem_91016] 📄 PDF
Std_ReturnType Dem_SelectDTC (uint8 ClientId, uint32 DTC, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin);
Selects a DTC or DTC group as target for further operations.
Die synchrone Funktion Dem_SelectDTC wählt einen DTC oder eine DTC-Gruppe im definierten Format (DTCFormat) und Ereignisspeicher (DTCOrigin) für eine bestimmte ClientId als Ziel für nachfolgende Operationen aus [SWS_Dem_91016]. Sie stößt den internen Auswahlprozess des DEM auf dem dieser ClientId zugewiesenen Ereignisspeicher an [SWS_Dem_01254].
Hinsichtlich Nebenläufigkeit und Aufrufkontext ist die Funktion reentrant für unterschiedliche ClientIds, jedoch nicht reentrant für dieselbe ClientId [SWS_Dem_91016]. Als Rückgabewerte sind definiert [SWS_Dem_91016]:
E_OK: Der DTC bzw. die Gruppe wurde erfolgreich ausgewählt [SWS_Dem_91016].DEM_BUSY: Ein weiterer Aufruf vonDem_SelectDTCoder eine davon abhängige Operation dieses Clients wird gegenwärtig bereits ausgeführt [SWS_Dem_91016].
Das Ergebnis der Selektion wird in den Rückgabewerten der nachfolgenden API-Aufrufe reflektiert [SWS_Dem_01254]. Der DEM verwendet den gewählten DTC bzw. die DTC-Gruppe als Ziel für nachfolgende Funktionsaufrufe desselben Clients wie unter anderem Dem_ClearDTC, Dem_DisableDTCRecordUpdate, Dem_GetFunctionalUnitOfDTC, Dem_GetSeverityOfDTC, Dem_GetStatusOfDTC, Dem_SelectFreezeFrameData, Dem_SelectExtendedDataRecord sowie Dem_SetDTCSuppression [SWS_Dem_01253]. Ferner bauen Dem_SelectFreezeFrameData und Dem_SelectExtendedDataRecord auf diesem selektierten DTC auf [SWS_Dem_01268], [SWS_Dem_01272].
Wird eine der abhängigen APIs aufgerufen, ohne dass zuvor eine gültige Selektion vorlag oder ist der übergebene DTC im angegebenen Format ungültig, gibt der DEM DEM_WRONG_DTC zurück [SWS_Dem_01261]. Ist der angeforderte Speicherbereich (DTCOrigin) nicht vorhanden oder ungültig, melden nachfolgende Aufrufe DEM_WRONG_DTCORIGIN [SWS_Dem_01258], [SWS_Dem_01262]. Mittels Dem_GetDTCSelectionResult kann explizit geprüft werden, ob die Selektion mit E_OK erfolgreich war und der DTC für die Weiterverarbeitung bereitsteht [SWS_Dem_01256], [SWS_Dem_01257].
Dieser Nutzungshinweis wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationsdaten von AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I2)
function Dem_SetComponentAvailable [SWS_Dem_01117] 📄 PDF
Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);
Set the availability of a specific DemComponent.
function Dem_SetDTCSuppression [SWS_Dem_01047] 📄 PDF
Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);
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)
function Dem_SetEnableCondition [SWS_Dem_00201] 📄 PDF
Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);
Sets an enable condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEnable Condition)} != NULL)
function Dem_SetEventAvailable [SWS_Dem_01080] 📄 PDF
Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);
Set the available status of a specific Event.
function Dem_SetEventConfirmationThresholdCounter [SWS_Dem_91004] 📄 PDF
Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);
Set the failure confirmation threshold of an event.
function Dem_SetEventStatus [SWS_Dem_00183] 📄 PDF
Std_ReturnType Dem_SetEventStatus (Dem_EventIdType EventId, Dem_EventStatusType EventStatus);
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)
Die Funktion Dem_SetEventStatus dient SW-Cs und BSW-Modulen zur Übermittlung von Monitor-Testergebnissen an das DEM [SWS_Dem_00183], [SWS_Dem_00330]. Sie steht zur Verfügung, wenn für das Ereignis STANDARD_REPORTING konfiguriert ist [SWS_Dem_00183]. Als Statuswerte übergeben werden qualifizierte Ergebnisse (DEM_EVENT_STATUS_PASSED, DEM_EVENT_STATUS_FAILED), Vorqualifizierungen für die DEM-interne Entprellung (DEM_EVENT_STATUS_PREPASSED, DEM_EVENT_STATUS_PREFAILED) oder das Erreichen der Entprellschwelle DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED [SWS_Dem_00926].
Hinsichtlich der Nebenläufigkeit ist die API für unterschiedliche EventId-Werte reentrant, für dieselbe EventId jedoch nicht reentrant ausgeführt [SWS_Dem_00183]. Vor der Vorinitialisierung via Dem_PreInit führt ein Aufruf bei aktiver Entwicklungserkennung zum Fehler DEM_E_UNINIT [SWS_Dem_00364]. Nach Dem_PreInit, aber noch vor Dem_Init, ist der Aufruf hingegen zulässig [SWS_Dem_00124], [SWS_Dem_00180]; qualifizierende Ereignisse werden in einer Queue gepuffert, deren Größe über DemBswErrorBufferSize bestimmt wird, während FDC-Schwellen nicht gepuffert werden [SWS_Dem_00167], [SWS_Dem_00207]. Auch nach Dem_Shutdown erzeugt die Funktion keinen DEM_E_UNINIT-Fehler [SWS_Dem_00368].
Rückgabewert ist E_OK bei erfolgreicher Übernahme bzw. E_NOT_OK bei Fehlern oder wenn das Event auf nicht verfügbar gesetzt ist [SWS_Dem_00183], [SWS_Dem_01108]. BSW-Module dürfen den Rückgabewert ignorieren [SWS_Dem_00183]. Meldungen werden akzeptiert, sobald zugewiesene Enable-Conditions erfüllt sind [SWS_Dem_00450]; ist das DTC-Setting deaktiviert, ignoriert das DEM den Report für den UDS-Status [SWS_Dem_00626].
Im Aufrufkontext können synchrone Aktionen ausgelöst werden:
- Benachrichtigung des FiM bei Statusänderung via
FiM_DemTriggerOnEventStatus, sofernDemTriggerFiMReportsaktiv ist [SWS_Dem_00029]. - Erfassung synchroner Freeze-Frame-Daten und Extended-Data-Records bei konfigurierter Option
DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING[SWS_Dem_00805], [SWS_Dem_01082]. - Kaskadierende Aufrufe für konfigurierte Slave-Events bei aktiver
DemMultiEventTriggering-Konfiguration [SWS_Dem_01250].
Dieser Hinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_SetEventStatusWithMonitorData [SWS_Dem_91037] 📄 PDF
Std_ReturnType Dem_SetEventStatusWithMonitorData (Dem_EventIdType EventId, Dem_EventStatusType EventStatus, Dem_MonitorDataType monitorData0, Dem_MonitorDataType monitorData1);
This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEvent ReportingType} == STANDARD_REPORTING_WITH_MONITOR_DATA)
Die Funktion Dem_SetEventStatusWithMonitorData dient dem Melden eines Monitor-Testergebnisses (EventStatus) für ein bestimmtes Diagnoseereignis (EventId) zusammen mit monitorspezifischen Zusatzdaten (monitorData0 und monitorData1) an das DEM [SWS_Dem_91037]. Sie besitzt dieselbe Funktionalität wie Dem_SetEventStatus, übergibt jedoch zusätzliche Parameter zur Speicherung in ereignisbezogenen Daten [SWS_Dem_01333].
Im Zusammenspiel mit Ausleseoperationen gilt: Ist eine Read-Data-Operation dafür konfiguriert, monitorData0 bereitzustellen, so fügt das DEM die übergebene monitorData0 aus Dem_SetEventStatusWithMonitorData dem Parameter monitorData0 dieser Read-Data-Operation hinzu [SWS_Dem_01330].
Für die Verwendung und Nebenläufigkeit gelten folgende Bedingungen:
- Verfügbarkeit: Die API ist über
Dem.hnur verfügbar, wennDemEventReportingTypeaufSTANDARD_REPORTING_WITH_MONITOR_DATAkonfiguriert ist [SWS_Dem_91037]. - Ausführung und Reentranz: Die Ausführung ist synchron/asynchron. Die Funktion ist reentrant für unterschiedliche
EventId, jedoch nicht reentrant für dieselbeEventId[SWS_Dem_91037]. - Rückgabewerte: Sie liefert
E_OKbei erfolgreichem Setzen des Ereignisstatus undE_NOT_OK, wenn das Setzen oder Verarbeiten fehlgeschlagen ist oder nicht akzeptiert werden konnte [SWS_Dem_91037].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation erstellt.
Implementer's Guide folgt (Komplexität I1)
function Dem_SetStorageCondition [SWS_Dem_00556] 📄 PDF
Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);
Sets a storage condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemStorage Condition)} != NULL)
function Dem_SetWIRStatus [SWS_Dem_00839] 📄 PDF
Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);
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.
Verwendung und Aufrufkontext
Die asynchrone Funktion Dem_SetWIRStatus dient fehlersicheren Software-Komponenten (failsafe SW-Cs) zum gezielten Anfordern des Warning-Indicator-Requested-Statusbits (WIR-Bit) eines Diagnose-Events [SWS_Dem_00839], [SWS_Dem_01303]. Da der Aufruf ausschließlich über die RTE erfolgt, existiert keine Deklaration in der Header-Datei Dem.h [SWS_Dem_00839].
Funktionales Verhalten und Zusammenspiel
Das Setzen und Rücksetzen des Bits hängt vom Übergabeparameter WIRStatus sowie dem Status konfigurierter Indikatoren ab:
- Wird
WIRStatus = TRUEübergeben, setzt das DEM das WIR-Bit des betreffenden Events auf 1 [SWS_Dem_00833]. - Bei
WIRStatus = FALSEwird das WIR-Bit nur dann auf 0 zurückgesetzt, wenn keine referenzierten DEM-Indikatoren gesetzt sind [SWS_Dem_00834]. - Ein über
Dem_SetWIRStatusgesetztes WIR-Bit verhindert zudem, dass das DEM das UDS-Statusbit 7 (WarningIndicatorRequested) bei Erreichen von Entprell- oder Heilungszyklen automatisch auf 0 zurücksetzt [SWS_Dem_00503], [SWS_Dem_01233].
Nebenläufigkeit und Fehlerbehandlung
Die API ist reentrant für unterschiedliche Events, jedoch nicht reentrant für dieselbe EventId [SWS_Dem_00839]. Bei erfolgreicher Annahme liefert die Funktion E_OK zurück [SWS_Dem_00839]. Der Rückgabewert E_NOT_OK signalisiert, dass die Anforderung abgewiesen wurde und wiederholt werden sollte; dies ist insbesondere der Fall, wenn die DTC-Einstellung gesperrt ist (disabled ControlDTCSetting) oder das Event als nicht verfügbar markiert ist [SWS_Dem_00836], [SWS_Dem_01108], [SWS_Dem_00839].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_SetEventFailedWithSyncFreezeFrame [SWS_Dem_91041] 📄 PDF
void Dem_SetEventFailedWithSyncFreezeFrame (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
function Dem_GetTranslationType [SWS_Dem_00230] 📄 PDF
Dem_DTCTranslationFormatType Dem_GetTranslationType (uint8 ClientId);
Gets the supported DTC formats of the ECU.The supported formats are configured via Dem TypeOfDTCSupported.
function Dem_GetDTCStatusAvailabilityMask [SWS_Dem_00213] 📄 PDF
Std_ReturnType Dem_GetDTCStatusAvailabilityMask (uint8 ClientId, Dem_UdsStatusByteType* DTCStatusMask, Dem_DTCOriginType DTCOrigin);
Gets the DTC Status availability mask of the selected fault memory.
function Dem_GetStatusOfDTC [SWS_Dem_00212] 📄 PDF
Std_ReturnType Dem_GetStatusOfDTC (uint8 ClientId, uint8* DTCStatus);
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.
function Dem_GetSeverityOfDTC [SWS_Dem_00232] 📄 PDF
Std_ReturnType Dem_GetSeverityOfDTC (Dem_DTCSeverityType* DTCSeverity, uint8 ClientId);
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).
function Dem_GetFunctionalUnitOfDTC [SWS_Dem_00594] 📄 PDF
Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);
Gets the functional unit of the requested DTC.
function Dem_SetDTCFilter [SWS_Dem_00208] 📄 PDF
Std_ReturnType Dem_SetDTCFilter (uint8 ClientId, uint8 DTCStatusMask, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin, boolean FilterWithSeverity, Dem_DTCSeverityType DTCSeverityMask, boolean FilterForFaultDetectionCounter);
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
function Dem_GetNumberOfFilteredDTC [SWS_Dem_00214] 📄 PDF
Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);
Gets the number of a filtered DTC.
function Dem_GetNextFilteredDTC [SWS_Dem_00215] 📄 PDF
Std_ReturnType Dem_GetNextFilteredDTC (uint8 ClientId, uint32* DTC, uint8* DTCStatus);
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.
function Dem_GetNextFilteredDTCAndFDC [SWS_Dem_00227] 📄 PDF
Std_ReturnType Dem_GetNextFilteredDTCAndFDC (uint8 ClientId, uint32* DTC, sint8* DTCFaultDetectionCounter);
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.
function Dem_GetNextFilteredDTCAndSeverity [SWS_Dem_00281] 📄 PDF
Std_ReturnType Dem_GetNextFilteredDTCAndSeverity (uint8 ClientId, uint32* DTC, uint8* DTCStatus, Dem_DTCSeverityType* DTCSeverity, uint8* DTCFunctionalUnit);
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.
function Dem_SetFreezeFrameRecordFilter [SWS_Dem_00209] 📄 PDF
Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);
Sets a freeze frame record filter.
function Dem_GetNextFilteredRecord [SWS_Dem_00224] 📄 PDF
Std_ReturnType Dem_GetNextFilteredRecord (uint8 ClientId, uint32* DTC, uint8* RecordNumber);
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.
function Dem_GetDTCByOccurrenceTime [SWS_Dem_00218] 📄 PDF
Std_ReturnType Dem_GetDTCByOccurrenceTime (uint8 ClientId, Dem_DTCRequestType DTCRequest, uint32* DTC);
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.
function Dem_DisableDTCRecordUpdate [SWS_Dem_00233] 📄 PDF
Std_ReturnType Dem_DisableDTCRecordUpdate (uint8 ClientId);
Disables the event memory update of a specific DTC (only one at one time).
Verwendung und Ablauf
Die asynchrone Funktion Dem_DisableDTCRecordUpdate ([SWS_Dem_00233]) deaktiviert die Aktualisierung des Ereignisspeichers für einen zuvor über Dem_SelectDTC festgelegten DTC ([SWS_Dem_01253]). Ziel dieses Aufrufs ist es, die ereignisbezogenen Daten des selektierten Fehlers im jeweiligen DTCOrigin vor Überschreiben oder Löschen zu schützen, um nachfolgende konsistente Lesezugriffe auf Freeze-Frame-Daten und Extended Data Records sicherzustellen ([SWS_Dem_00270]). Über den Parameter ClientId wird die aufrufende Modulinstanz identifiziert ([SWS_Dem_00233]).
Rückgabewerte und Fehlerbehandlung
Die Funktion signalisiert den Verarbeitungsstatus über spezifische Rückgabewerte ([SWS_Dem_00233]):
E_OK: Die Aktualisierung des Ereignisspeichers wurde erfolgreich deaktiviert.DEM_PENDING: Die Deaktivierung wird asynchron ausgeführt; der Aufrufer muss die Funktion zu einem späteren Zeitpunkt erneut aufrufen.DEM_BUSY: Für diesen Client ist bereits eine andere vonDem_SelectDTCabhängige Operation in Bearbeitung.E_NOT_OK: Es wurde vorab kein DTC ausgewählt.DEM_WRONG_DTC: Der selektierte DTC existiert nicht im gewählten Format oder es wurde unzulässigerweise eine DTC-Gruppe gewählt.DEM_WRONG_DTCORIGIN: Der angegebene Ursprung (DTCOrigin) existiert nicht.
Nebenläufigkeit und Einschränkungen
Dem_DisableDTCRecordUpdate ist reentrant für Aufrufe mit unterschiedlicher ClientId, jedoch nicht reentrant für dieselbe ClientId ([SWS_Dem_00233]). Es kann immer nur die Aktualisierung für genau einen DTC zur gleichen Zeit gesperrt werden ([SWS_Dem_00233]). Nach dem Auslesen der Diagnosedaten muss die Aktualisierung des Datensatzes über Dem_EnableDTCRecordUpdate wieder freigegeben werden ([SWS_Dem_00234], [SWS_Dem_00270]).
Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_EnableDTCRecordUpdate [SWS_Dem_00234] 📄 PDF
Std_ReturnType Dem_EnableDTCRecordUpdate (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.
Die asynchrone Funktion Dem_EnableDTCRecordUpdate ([SWS_Dem_00234]) dient der Freigabe der Ereignisspeicher-Aktualisierung für einen zuvor gesperrten DTC. Gemäß [SWS_Dem_00271] gibt die Funktion den aktuell durch Dem_DisableDTCRecordUpdate geschützten DTC wieder frei, sodass dessen Daten erneut im DEM aktualisiert werden können.
Als Übergabeparameter erwartet die Funktion die ClientId, welche die Instanz des aufrufenden Moduls eindeutig identifiziert ([SWS_Dem_00234]). Da der Aufruf von Dem_EnableDTCRecordUpdate die abschließende Aktion in der Sequenz aus Deaktivieren und Aktivieren eines DTCs darstellt, ist der Aufrufer am eigentlichen Rückgabewert nicht interessiert; daher soll laut [SWS_Dem_00234] selbst bei einer asynchronen Freigabe E_OK zurückgegeben werden.
Hinsichtlich der Fehlerbehandlung und Rückgabewerte sind folgende Status definiert ([SWS_Dem_00234]):
E_OK: Die Aktualisierung des DTC-Datensatzes wurde erfolgreich freigegeben.E_NOT_OK: Es ist kein DTC ausgewählt.
In Bezug auf Nebenläufigkeit und Einschränkungen ist Dem_EnableDTCRecordUpdate reentrant für Aufrufe mit unterschiedlichen Client-IDs, jedoch nicht reentrant für dieselbe ClientId ([SWS_Dem_00234]).
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_GetSizeOfExtendedDataRecordSelection [SWS_Dem_00240] 📄 PDF
Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);
Gets the size of Extended Data Record by DTC selected by the call of Dem_SelectExtended DataRecord.
function Dem_GetSizeOfFreezeFrameSelection [SWS_Dem_00238] 📄 PDF
Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);
Gets the size of freeze frame data by DTC selected by the call of Dem_SelectFreezeFrame Data.
function Dem_GetNextExtendedDataRecord [SWS_Dem_00239] 📄 PDF
Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);
Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord. The function stores the data in the provided DestBuffer.
function Dem_GetNextFreezeFrameData [SWS_Dem_00236] 📄 PDF
Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);
Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData. The function stores the data in the provided DestBuffer.
function Dem_SelectExtendedDataRecord [SWS_Dem_91017] 📄 PDF
Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);
Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.
Die asynchrone Funktion Dem_SelectExtendedDataRecord initialisiert den Filter für das Auslesen von erweiterten Diagnosedaten eines zuvor mit Dem_SelectDTC festgelegten DTCs [SWS_Dem_91017] [SWS_Dem_01253]. Sie stößt den internen Selektionsprozess im zugeordneten Ereignisspeicher des Clients an [SWS_Dem_01273] und bestimmt den Ziel-Datensatz für nachfolgende Abfragen über Dem_GetSizeOfExtendedDataRecordSelection und Dem_GetNextExtendedDataRecord [SWS_Dem_01272].
Hinsichtlich Parametrierung und Ablauf gelten folgende Festlegungen:
- Parameter: Neben spezifischen Datensatznummern akzeptiert
ExtendedDataNumberdie Werte0xFE(Gesamtgröße aller OBD-Datensätze) sowie0xFF(Gesamtgröße aller Datensätze) [SWS_Dem_91017]. Um Dateninkonsistenzen während des Auslesens zu vermeiden, kann der Datensatz vorab mitDem_DisableDTCRecordUpdategeschützt werden [SWS_Dem_00270]. - Rückgabewerte und Fehler: Bei erfolgreicher Selektion wird
E_OKzurückgegeben [SWS_Dem_91017]. Dies gilt auch dann, wenn eine gültige Datensatznummer angefordert wird, zu der kein Eintrag gespeichert ist; in diesem Fall liefert das spätere Auslesen die Puffergröße 0 [SWS_Dem_00631]. War überDem_SelectDTCkein einzelner Fehlercode, sondern eine DTC-Gruppe selektiert, oder existiert der DTC nicht, schlägt der Aufruf mitDEM_WRONG_DTCfehl [SWS_Dem_91017] [SWS_Dem_01349]. Existiert der Speicherort nicht, wirdDEM_WRONG_DTCORIGINgemeldet [SWS_Dem_91017]. - Nebenläufigkeit: Ist die Selektion noch in Bearbeitung, signalisiert
DEM_PENDINGeinen erneuten Aufrufbedarf [SWS_Dem_91017]. Der StatusDEM_BUSYzeigt an, dass für dieseClientIdnoch eine andere DTC-abhängige Operation aktiv ist [SWS_Dem_91017]. Die Funktion ist für unterschiedlicheClientId-Werte reentrant, für dieselbe Instanz jedoch nicht reentrant [SWS_Dem_91017].
Dieser Nutzungshinweis wurde automatisiert anhand der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_SelectFreezeFrameData [SWS_Dem_91015] 📄 PDF
Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);
Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.
Verwendung und Semantik
Die asynchrone Funktion Dem_SelectFreezeFrameData setzt den Filter für das spätere Auslesen von Freeze-Frame-Daten über Dem_GetSizeOfFreezeFrameSelection und Dem_GetNextFreezeFrameData [SWS_Dem_91015], [SWS_Dem_01268]. Über den Parameter ClientId wird die aufrufende Modulinstanz identifiziert, während RecordNumber die Snapshot-Datensatznummer nach ISO 14229-1 spezifiziert; dabei steht 0xFF für alle Snapshot-Datensätze des DTC und 0x00 für den DTC-spezifischen WWH-OBD-Snapshot [SWS_Dem_91015]. Der Aufruf stößt die interne Selektion im zugeordneten Ereignisspeicher an [SWS_Dem_01269].
Rückgabewerte und Fehlerbehandlung
Wurde der Selektionsprozess erfolgreich initiiert, gibt die Funktion E_OK zurück [SWS_Dem_91015]. Befindet sich die Auswahl noch in Bearbeitung, signalisiert DEM_PENDING, dass der Aufrufer die Funktion zu einem späteren Zeitpunkt erneut aufrufen muss [SWS_Dem_91015]. Ist für den Client bereits eine andere abhängige Operation aktiv, liefert die API DEM_BUSY [SWS_Dem_91015], [SWS_Dem_01253]. Existiert der Ziel-DTC im gewünschten Format nicht, oder wurde über Dem_SelectDTC eine DTC-Gruppe anstelle eines Einzel-DTC gewählt, wird DEM_WRONG_DTC zurückgegeben [SWS_Dem_91015], [SWS_Dem_01348]. Bei ungültigem Speicherort resultiert DEM_WRONG_DTCORIGIN [SWS_Dem_91015]. Werden abhängige Lese-Funktionen ohne vorherige Selektion aufgerufen, meldet das DEM einen DET-Fehler [SWS_Dem_01270], [SWS_Dem_01271].
Reihenfolge und Nebenläufigkeit
Die Funktion ist reentrant für unterschiedliche Aufrufer (ClientId), jedoch nicht reentrant für denselben Client [SWS_Dem_91015]. Zwingende Voraussetzung ist der vorherige Aufruf von Dem_SelectDTC zur Festlegung des Ziel-DTC und des Speicherorts [SWS_Dem_01253]. Um ein konsistentes Auslesen sicherzustellen, kann Dem_DisableDTCRecordUpdate aufgerufen werden, um die ereignisbezogenen Daten vor Änderungen oder Löschungen zu schützen [SWS_Dem_00270].
Dieser Nutzungshinweis wurde automatisch von einer KI auf Basis der Spezifikation generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_GetNumberOfFreezeFrameRecords [SWS_Dem_91191] 📄 PDF
Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);
This function returns the number of all freeze frame records currently stored in the primary event memory
function Dem_DisableDTCSetting [SWS_Dem_00242] 📄 PDF
Std_ReturnType Dem_DisableDTCSetting (uint8 ClientId);
Disables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.
Verwendung und Semantik
Die Funktion Dem_DisableDTCSetting deaktiviert das DTC-Setting für alle Diagnoseereignisse, die dem DemEventMemorySet des aufrufenden Clients zugeordnet sind [SWS_Dem_00242], [SWS_Dem_01290]. Der Aufruf erfolgt asynchron und erfordert die Übergabe einer eindeutigen ClientId [SWS_Dem_00242]. Neben dem erfolgreichen Abschluss über E_OK signalisiert der Rückgabewert DEM_PENDING, dass die Operation noch in Bearbeitung ist; in diesem Fall muss der Aufrufer die Funktion zu einem späteren Zeitpunkt erneut aufrufen [SWS_Dem_00242].
Funktionale Auswirkungen
Wird Dem_DisableDTCSetting aufgerufen, unterbindet das DEM die Speicherung der zugehörigen Ereignisse sowie die Aktualisierung der UDS-Statusbytes [SWS_Dem_00079]. Ist zusätzlich der Konfigurationsparameter DemDebounceBehavior auf DEM_DEBOUNCE_RESET eingestellt, bewirkt der Aufruf zudem das Zurücksetzen der entsprechenden Fehlermeldungszähler (Fault Detection Counters) [SWS_Dem_00677].
Nebenläufigkeit und Einschränkungen
Die Funktion ist reentrant für Aufrufe mit unterschiedlichen Client-IDs, jedoch nicht reentrant für dieselbe ClientId [SWS_Dem_00242]. Die Deaktivierung wirkt sich ausschließlich auf Ereignisse und UDS-Statusbytes des durch die ClientId referenzierten DemEventMemorySet aus; DTCs außerhalb dieses Speicherbereichs werden nicht beeinflusst [SWS_Dem_01290].
Dieser Nutzungshinweis basiert auf den Anforderungen der AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
function Dem_EnableDTCSetting [SWS_Dem_00243] 📄 PDF
Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);
(Re)-Enables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.
Die asynchrone Funktion Dem_EnableDTCSetting aktiviert bzw. reaktiviert das DTC-Setting für alle DTCs, die dem DemEventMemorySet des adressierten Clients zugeordnet sind [SWS_Dem_00243]. Beim Aufruf wird die eindeutige Kennung ClientId der aufrufenden Modulinstanz übergeben [SWS_Dem_00243].
Als Rückgabewerte sind definiert [SWS_Dem_00243]:
E_OK: Die Operation wurde erfolgreich abgeschlossen.DEM_PENDING: Der Vorgang wird asynchron ausgeführt; der Aufrufer muss die Funktion zu einem späteren Zeitpunkt erneut aufrufen.
Bezüglich der Nebenläufigkeit ist Dem_EnableDTCSetting reentrant für unterschiedliche ClientId-Werte, darf jedoch für dieselbe ClientId nicht nebenläufig aufgerufen werden [SWS_Dem_00243].
Im Zusammenspiel mit der Ereignisverarbeitung sorgt die Funktion dafür, dass das DEM die Speicherung der zugehörigen Ereignisse und des UDS-Status-Bytes freigibt [SWS_Dem_00080]. Wird das DTC-Setting für die Ereignisse wieder aktiviert, stößt Dem_EnableDTCSetting die Callback-Funktion InitMonitorForEvent der betroffenen Ereignisse mit dem Parameter InitMonitorReason auf DEM_INIT_MONITOR_REENABLED an [SWS_Dem_00682].
Dieser Text wurde von einer KI generiert und dient der Orientierung. Verbindlich sind ausschließlich die Spezifikationen der jeweiligen AUTOSAR-Releases.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmGetInfoTypeValue08 [SWS_Dem_00316] 📄 PDF
Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);
Service is used for requesting IUMPR data according to InfoType $08. This interface is derived from the prototype
Verwendung
Die synchrone Funktion Dem_DcmGetInfoTypeValue08 ([SWS_Dem_00316]) wird vom DCM aufgerufen, um IUMPR-Daten (In-Use Monitor Performance Ratio) für InfoType $08 im Rahmen des OBD-Dienstes $09 abzufragen ([SWS_Dem_00298]). Da die Verarbeitung synchron erfolgt, übergibt das DCM für den Parameter OpStatus ausschließlich den Wert DCM_INITIAL ([SWS_Dem_00316]). Die Nutzdaten sowie die Anzahl der Datenelemente gemäß ISO-15031-5 werden in den vom DCM bereitgestellten Puffer Iumprdata08 geschrieben; die maximal beschreibbare Puffergröße wird über den Inout-Parameter Iumprdata08BufferSize vorgegeben ([SWS_Dem_00316]).
Fehlerbehandlung
Die Funktion liefert als Rückgabewert stets E_OK ([SWS_Dem_00316]). Spezifische Fehlercodes oder Entwicklungsfehlermeldungen (DET) sind für diesen Aufruf nicht spezifiziert.
Nebenläufigkeit und Konfiguration
Die Schnittstelle ist nicht reentrant (Non Reentrant) und über Dem_Dcm.h deklariert ([SWS_Dem_00316]). Sie existiert ausschließlich in OBD-relevanten Steuergeräten mit aktiver OBD-Unterstützung (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) ([SWS_Dem_00316]) und wird bereitgestellt, wenn DemOBDEngineType auf DEM_IGNITION_SPARK für Ottomotoren konfiguriert ist ([SWS_Dem_00357]).
Zusammenspiel
Unterdrückte Fehlercodes (suppressed DTCs) dürfen bei der Abfrage nicht sichtbar sein und sind so zu behandeln, als ob der Filter nicht zutrifft ([SWS_Dem_01101]). Gemeinsam mit Dem_DcmGetInfoTypeValue0B dient die Funktion der Unterstützung von Datenanfragen im Service $09 ([SWS_Dem_00298]).
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 erstellt.
Implementer's Guide folgt (Komplexität I2)
function Dem_DcmGetInfoTypeValue0B [SWS_Dem_00317] 📄 PDF
Std_ReturnType Dem_DcmGetInfoTypeValue0B (Dcm_OpStatusType OpStatus, uint8* Iumprdata0B, uint8* Iumprdata0BBufferSize);
Service is used for requesting IUMPR data according to InfoType $0B. This interface is derived from the prototype
Verwendung und Parameterschnittstelle
Die synchrone Funktion Dem_DcmGetInfoTypeValue0B (Service-ID 0x6c, verfügbar über Dem_Dcm.h) dient dem DCM zur Abfrage von IUMPR-Daten (In-Use Performance Ratio) gemäß InfoType $0B im Rahmen des OBD-Service $09 [SWS_Dem_00317] [SWS_Dem_00298]. Die Funktionsschnittstelle leitet sich aus dem DCM-Prototyp <Module>_GetInfotypeValueData() ab, weshalb sie Dcm_OpStatusType und Std_ReturnType verwendet [SWS_Dem_00317]:
OpStatus(in): Da die Funktion ein synchrones Verhalten aufweist, tritt beim Aufruf ausschließlich der ZustandDCM_INITIALauf [SWS_Dem_00317].Iumprdata0BBufferSize(inout): Definiert die maximale Anzahl an Datenbytes, die in den Puffer geschrieben werden dürfen [SWS_Dem_00317].Iumprdata0B(out): Ein vom DCM bereitgestellter Puffer, der die Anzahl der Datenelemente gemäß ISO-15031-5 und die Inhalte des InfoType $0B aufnimmt [SWS_Dem_00317].
Als Rückgabewert wird stets E_OK geliefert [SWS_Dem_00317].
Fehlerbehandlung und Nebenläufigkeit
Spezifische Fehlercodes oder Fehlerreaktionen (wie DET-Meldungen) sind für diese Funktion in der Spezifikation nicht definiert; der Aufruf meldet formal immer E_OK zurück [SWS_Dem_00317]. Die API ist als nicht reentrant (Non Reentrant) klassifiziert [SWS_Dem_00317]. Der Aufrufer (DCM) darf diesen Dienst daher vermutlich nicht nebenläufig für mehrere Diagnoseanfragen parallel ausführen. Frage Q-636518c23ec3801a (offen)
Konfigurationsabhängigkeit und Zusammenspiel
Die API existiert ausschließlich in OBD-relevanten Steuergeräten, für die der Konfigurationsparameter DemOBDSupport ungleich DEM_OBD_NO_OBD_SUPPORT konfiguriert ist [SWS_Dem_00317]. Zudem wird sie bereitgestellt, wenn DemOBDEngineType auf DEM_IGNITION_COMPRESSION gesetzt ist [SWS_Dem_00358]. Im Zusammenspiel mit der DTC-Unterdrückung gilt, dass unterdrückte DTCs für diese Abfragefunktion unsichtbar sind und behandelt werden müssen, als ob der Filter nicht zutrifft [SWS_Dem_01101].
Dieser Text wurde von einer KI erstellt; die Richtlinien verlangen Prüfung durch den Benutzer anhand der AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Dem_DcmReadDataOfPID01 [SWS_Dem_00318] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);
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)
Die synchrone Funktion Dem_DcmReadDataOfPID01 dient dazu, den vom DEM berechneten Inhalt des OBD-Parameters PID $01 an das DCM zu übergeben [SWS_Dem_00318]. Die Schnittstelle ist in der Header-Datei Dem_Dcm.h deklariert und steht ausschließlich in OBD-relevanten Steuergeräten zur Verfügung, bei denen DemOBDSupport nicht auf DEM_OBD_NO_OBD_SUPPORT gesetzt ist [SWS_Dem_00318].
Über den Ausgabeparameter PID01value übergibt das DCM einen Zeiger auf den Zielpuffer, in welchen das DEM die Daten schreibt [SWS_Dem_00318]. Das DCM ist dafür verantwortlich, diesen Puffer mit ausreichender Größe bereitzustellen; die Dimensionierung erfolgt während der Konfiguration anhand der größten vorkommenden PID zur Einrichtung des PIDBuffer [SWS_Dem_00318].
Die Funktion ist nicht reentrant (Non Reentrant) ausgeführt [SWS_Dem_00318]. Als Rückgabewert wird stets E_OK geliefert, da ein Fehlerzustand mit E_NOT_OK laut Spezifikation niemals auftritt [SWS_Dem_00318].
Im Zusammenspiel mit Fehlerabfragen gilt, dass unterdrückte Fehlercodes (suppressed DTC) für Dem_DcmReadDataOfPID01 nicht sichtbar sein dürfen [SWS_Dem_01101]. Das DEM muss unterdrückte DTCs bei der Auswertung so behandeln, als ob der Filter nicht zutrifft [SWS_Dem_01101].
Hinweis: Diese Dokumentation wurde automatisch von einem KI-System auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmReadDataOfPID1C [SWS_Dem_00325] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);
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)
Verwendung und Aufrufkontext
Die Funktion Dem_DcmReadDataOfPID1C stellt einen synchronen Dienst des Diagnostic Event Managers bereit, über den das Diagnostic Communication Module (DCM) den berechneten Inhalt von OBD PID $1C abfragt [SWS_Dem_00325].
-
Parameter: Über den Ausgabeparameter
PID1Cvalue(Zeiger aufuint8) schreibt das DEM die Daten in einen Puffer des DCM. Die erforderliche Puffergröße wird bei der Konfiguration des DCM anhand der größten PID dimensioniert, um einen passendenPIDBufferbereitzustellen [SWS_Dem_00325]. -
Rückgabewert: Der Dienst liefert stets den Statuswert
E_OKzurück. Ein Fehlerfall mitE_NOT_OKtritt spezifikationsgemäß niemals auf [SWS_Dem_00325].
Fachlicher Inhalt und Zusammenspiel
Gemäß [SWS_Dem_00748] meldet die Schnittstelle die OBD-Anforderungen zurück, nach denen das Fahrzeug oder der Motor zertifiziert ist (beispielsweise OBD, OBDII oder JOBD). Der in PID1Cvalue auszugebende Wert wird über den Konfigurationsparameter DemOBDCompliancy festgelegt [SWS_Dem_00325] [SWS_Dem_00748].
Nebenläufigkeit und Verfügbarkeit
Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dem_00325]. Sie ist in der Header-Datei Dem_Dcm.h deklariert und steht ausschließlich in Steuergeräten mit aktiver OBD-Unterstützung zur Verfügung, bei denen DemGeneral.DemOBDSupport nicht auf DEM_OBD_NO_OBD_SUPPORT gesetzt ist [SWS_Dem_00325].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmReadDataOfPID21 [SWS_Dem_00319] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);
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)
Die synchrone Funktion Dem_DcmReadDataOfPID21 (Service-ID 0x64) dient dem Diagnostic Communication Manager (DCM) dazu, den vom DEM berechneten aktuellen Wert des OBD-Parameters PID $21 abzufragen [SWS_Dem_00319], [SWS_Dem_01098]. Die Schnittstelle wird über den Header Dem_Dcm.h deklariert und steht ausschließlich in Steuergeräten mit OBD-Bezug zur Verfügung, sofern der Konfigurationsparameter DemOBDSupport nicht auf DEM_OBD_NO_OBD_SUPPORT gesetzt ist [SWS_Dem_00319].
Für die Verwendung und das operative Zusammenspiel gelten folgende Festlegungen:
- Pufferbereitstellung: Als Ausgabeparameter wird der Zeiger
PID21valueübergeben [SWS_Dem_00319]. Der Aufrufer (DCM) muss diesen Puffer bereitstellen und dimensioniert ihn während der Konfiguration passend zur größten konfigurierten PID [SWS_Dem_00319]. Bei Aufruf schreibt das DEM den aktuellen Wert von PID $21 in diesen Puffer [SWS_Dem_01098]. - Rückgabewert: Die Funktion liefert stets
E_OKzurück, da ein Fehlerwert wieE_NOT_OKlaut Spezifikation niemals auftritt [SWS_Dem_00319]. - Initialer Zustand / Fehlerbehandlung: Wird
Dem_DcmReadDataOfPID21aufgerufen, bevor Werte überDem_SetDataOfPID21gesetzt wurden, gibt das DEM den Ersatzwert0xFFFFals Inhalt von PID $21 zurück [SWS_Dem_01099]. - Nebenläufigkeit: Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dem_00319]. Nebenläufige Aufrufe durch mehrere Kontexte sind daher unzulässig.
Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmReadDataOfPID30 [SWS_Dem_00320] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);
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)
Die synchrone Funktion Dem_DcmReadDataOfPID30 dient dazu, den vom DEM berechneten Dateninhalt des Parameters PID $30 an das DCM zu übergeben [SWS_Dem_00320]. Sie wird über die Header-Datei Dem_Dcm.h deklariert und steht ausschließlich in Steuergeräten mit OBD-Relevanz zur Verfügung, wenn der Konfigurationsparameter DemOBDSupport ungleich DEM_OBD_NO_OBD_SUPPORT ist [SWS_Dem_00320].
Für die Verwendung der Schnittstelle gelten folgende Festlegungen:
- Übergabeparameter: Über den Ausgabeparameter
PID30valuestellt der Aufrufer einen Puffer bereit, in den das DEM die berechneten Daten von PID $30 schreibt [SWS_Dem_00320]. Das DCM ist dafür verantwortlich, diesen Puffer in passender Größe bereitzustellen; die Dimensionierung ermittelt das DCM während der Konfiguration anhand des größten PIDs [SWS_Dem_00320]. - Rückgabewert und Fehlerbehandlung: Die Schnittstelle gibt als
Std_ReturnTypestetsE_OKzurück [SWS_Dem_00320]. Der FehlerwertE_NOT_OKtritt laut Spezifikation niemals auf, und es sind keine spezifischen Fehlercodes oder gesonderten Fehlerbehandlungsroutinen vorgesehen [SWS_Dem_00320]. - Nebenläufigkeit: Die Funktion ist als nicht reentrant (
Non Reentrant) definiert [SWS_Dem_00320]. Da die Spezifikation keine internen Synchronisationsmechanismen vorsieht, dürfte der Aufrufer dafür verantwortlich sein, konkurrierende Aufrufe auszuschließen [SWS_Dem_00320]. Frage Q-976bc8dc189021a1 (offen)
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
function Dem_DcmReadDataOfPID31 [SWS_Dem_00321] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);
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)
Die synchrone Funktion Dem_DcmReadDataOfPID31 dient dazu, den vom DEM berechneten Wert des OBD-Parameters PID $31 an das DCM zu übergeben [SWS_Dem_00321]. Die Schnittstelle wird über die Header-Datei Dem_Dcm.h bereitgestellt und besitzt die Service-ID 0x66 [SWS_Dem_00321].
Verwendung und Parameter
Der Aufruf erfolgt synchron und ist als nicht reentrant definiert [SWS_Dem_00321]:
- PID31value (Ausgangsparameter): Zeiger auf einen Puffer (
uint8*), der die berechneten Daten für PID $31 aufnimmt [SWS_Dem_00321]. Die Bereitstellung des Puffers in passender Größe obliegt dem aufrufenden DCM; dieses ermittelt die erforderliche Puffergröße während der Konfiguration anhand des größten PIDs zur Auslegung einesPIDBuffer[SWS_Dem_00321]. - Rückgabewert: Der Dienst liefert als
Std_ReturnTypestetsE_OKzurück; der FehlerwertE_NOT_OKtritt laut Spezifikation niemals auf [SWS_Dem_00321].
Einschränkungen und Konfiguration
Die API ist ausschließlich für OBD-relevante Steuergeräte vorgesehen [SWS_Dem_00321]. Sie steht nur dann zur Verfügung, wenn der Konfigurationsparameter DemGeneral.DemOBDSupport auf den Wert DEM_OBD_MASTER_ECU gesetzt ist [SWS_Dem_00321]. Da die Funktion nicht reentrant ist, dürfen parallele Aufrufe durch das DCM nicht erfolgen [SWS_Dem_00321].
Dieser Nutzungshinweis wurde automatisiert generiert und basiert ausschließlich auf den Spezifikationsdaten aus Release R20-11.
function Dem_DcmReadDataOfPID41 [SWS_Dem_00322] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);
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)
Die synchrone Funktion Dem_DcmReadDataOfPID41 dient dazu, den vom DEM berechneten Inhalt von PID $41 an das DCM zu übergeben [SWS_Dem_00322]. Sie wird über den Header Dem_Dcm.h deklariert und besitzt die Service-ID 0x67 [SWS_Dem_00322].
Verwendung und Parameter
Der Aufruf erfolgt synchron und ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dem_00322]. Als Ausgabeparameter erwartet die Schnittstelle den Zeiger PID41value (uint8*):
PID41valuenimmt die berechneten Daten von PID $41 auf [SWS_Dem_00322].- Der Puffer muss vom DCM in passender Größe bereitgestellt werden; hierzu ermittelt das DCM bereits während der Konfiguration anhand des größten vorkommenden PIDs die benötigte Größe für die Konfiguration des
PIDBuffer[SWS_Dem_00322].
Rückgabewerte und Fehlerbehandlung
Als Rückgabewert liefert die Funktion stets E_OK zurück, da ein Fehlerwert E_NOT_OK laut Spezifikation niemals auftritt [SWS_Dem_00322]. Spezifische Fehlercodes oder Fehlerreaktionen sind für diese Schnittstelle nicht vorgesehen [SWS_Dem_00322].
Konfigurationsabhängigkeit und Verfügbarkeit
Die API wird ausschließlich in OBD-relevanten Steuergeräten benötigt [SWS_Dem_00322]. Sie steht nur dann zur Verfügung, wenn der Konfigurationsparameter DemOBDSupport in DemGeneral ungleich DEM_OBD_NO_OBD_SUPPORT konfiguriert ist [SWS_Dem_00322].
Dieser Text wurde von einer KI erstellt und stützt sich ausschließlich auf die Spezifikation R20-11.
function Dem_DcmReadDataOfPID4D [SWS_Dem_00323] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);
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)
Verwendung und Aufrufkontext
Die synchrone Funktion Dem_DcmReadDataOfPID4D dient dazu, den vom DEM berechneten Wert des OBD-Parameters PID $4D an das DCM zu übermitteln [SWS_Dem_00323]. Der Service wird über den Header Dem_Dcm.h mit der Service-ID 0x68 bereitgestellt [SWS_Dem_00323].
Als einziger Übergabeparameter dient der Ausgangszeiger PID4Dvalue, welcher auf einen vom DCM bereitgestellten Zielpuffer verweist [SWS_Dem_00323]. Das DCM stellt diesen Puffer mit passender Größe bereit, indem es bereits während der Konfiguration anhand der größten vorkommenden PID die erforderliche Größe für den PIDBuffer ermittelt [SWS_Dem_00323].
Rückgabewerte und Fehlerbehandlung
Die Funktion besitzt den Rückgabetyp Std_ReturnType und gibt ausnahmslos E_OK zurück [SWS_Dem_00323]. Ein Rückgabewert von E_NOT_OK ist spezifikationsgemäß ausgeschlossen und tritt niemals auf [SWS_Dem_00323]. Besondere Fehlerbehandlungen oder spezifische Fehlercodes existieren für diesen Aufruf nicht.
Nebenläufigkeit und Konfigurationsabhängigkeit
Die Schnittstelle ist als nicht reentrant (Non Reentrant) deklariert und darf daher nicht nebenläufig ausgeführt werden [SWS_Dem_00323].
Zudem ist die Funktion ausschließlich in OBD-relevanten Steuergeräten erforderlich [SWS_Dem_00323]. Sie steht nur dann zur Verfügung, wenn in der Konfiguration der Parameter DemOBDSupport innerhalb von DemGeneral auf den Wert DEM_OBD_MASTER_ECU gesetzt ist [SWS_Dem_00323].
Dieser Nutzungshinweis basiert auf der Spezifikation des Diagnostic Event Manager in AUTOSAR CP R20-11.
function Dem_DcmReadDataOfPID4E [SWS_Dem_00324] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);
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)
Die synchrone Funktion Dem_DcmReadDataOfPID4E dient dazu, den vom DEM berechneten Inhalt der OBD-Parameter-ID PID $4E an das DCM zu übermitteln [SWS_Dem_00324]. Die Funktion besitzt die Service-ID 0x69 und wird über die Header-Datei Dem_Dcm.h deklariert [SWS_Dem_00324].
Aufruf und Pufferverwaltung
Der Aufruf erfolgt synchron und ist als nicht reentrant (Non Reentrant) definiert [SWS_Dem_00324]. Als Ausgabeparameter nimmt die Funktion den Zeiger PID4Evalue (Typ uint8*) entgegen, über den das DEM die berechneten Daten ablegt [SWS_Dem_00324]. Das aufrufende DCM muss dafür einen Puffer mit geeigneter Größe bereitstellen [SWS_Dem_00324]. Die erforderliche Puffergröße bestimmt das DCM während der Konfiguration anhand der größten vorkommenden PID, um den gemeinsamen PIDBuffer entsprechend zu dimensionieren [SWS_Dem_00324].
Rückgabewerte und Fehlerbehandlung
Die Schnittstelle gibt stets E_OK vom Typ Std_ReturnType zurück, da der Rückgabewert E_NOT_OK laut Spezifikation niemals auftritt [SWS_Dem_00324]. Es sind keine spezifischen Fehlercodes für einen Fehlerfall und keine DET- oder DEM-Fehlermeldungen im Spezifikationsumfang ausgewiesen [SWS_Dem_00324].
Einschränkungen und Verfügbarkeit
Die API wird ausschließlich in OBD-relevanten Steuergeräten benötigt [SWS_Dem_00324]. Ihre Verfügbarkeit ist an die Konfigurationsbedingung DemGeneral.DemOBDSupport == DEM_OBD_MASTER_ECU gebunden; in anderen Konfigurationen steht die Funktion nicht zur Verfügung [SWS_Dem_00324].
Dieser Text wurde von einer KI erstellt; er ersetzt nicht das Studium der AUTOSAR-Spezifikation.
function Dem_DcmReadDataOfPID91 [SWS_Dem_01187] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);
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)
Die synchrone Funktion Dem_DcmReadDataOfPID91 (Service-ID 0x6a) dient dazu, die vom DEM berechneten Daten des OBD-Parameters PID $91 an das DCM zu übergeben [SWS_Dem_01187]. Die Schnittstelle wird über den Header Dem_Dcm.h deklariert und steht ausschließlich in OBD-relevanten Steuergeräten zur Verfügung, bei denen DemOBDSupport nicht auf DEM_OBD_NO_OBD_SUPPORT konfiguriert ist [SWS_Dem_01187].
Als Ausgabeparameter erfordert die Funktion den Zeiger PID91value, der auf einen vom DCM bereitgestellten Puffer verweist [SWS_Dem_01187]. Das DCM ist dafür verantwortlich, diesen Puffer in passender Größe bereitzustellen; die nötige Größe wird bereits während der Konfiguration anhand des größten PIDs ermittelt, um den Puffer PIDBuffer anzulegen [SWS_Dem_01187].
Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert und muss synchron abgearbeitet werden [SWS_Dem_01187]. Ein paralleler Aufruf aus verschiedenen Kontexten ist daher unzulässig. Ein Fehlerrückgabewert existiert nicht: Die Funktion liefert als Std_ReturnType stets E_OK zurück, da der Fehlerwert E_NOT_OK laut Spezifikation niemals auftritt [SWS_Dem_01187].
Dieser Nutzungshinweis wurde automatisch generiert und basiert ausschließlich auf den Spezifikationsdaten von AUTOSAR Classic R20-11.
function Dem_DcmReadDataOfOBDFreezeFrame [SWS_Dem_00327] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfOBDFreezeFrame (uint8 PID, uint8 DataElementIndexOfPID, uint8* DestBuffer, uint16* BufSize);
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)
Die synchrone Funktion Dem_DcmReadDataOfOBDFreezeFrame liest Daten eines Datenelements zu einer PID für das wichtigste Freeze-Frame aus, das für die Ausgabe von OBD-Service $02 ausgewählt ist [SWS_Dem_00327].
Aufrufkontext und Parameter
Der Aufruf erfolgt durch das DCM über den Header Dem_Dcm.h [SWS_Dem_00327]. An die Funktion werden folgende Parameter übergeben:
PID: Kennung der PID gemäß ISO 15031-5 [SWS_Dem_00327].DataElementIndexOfPID: Nullbasierter, fortlaufender Index des Datenelements innerhalb der PID. Die Reihenfolge leitet sich direkt aus der Position der Datenelemente im PID-Layout der DCM-Konfiguration ab [SWS_Dem_00327], [SWS_Dem_00597].DestBuffer: Zeiger auf den Puffer, in den das Datenelement im hexadezimalen Rohformat ohne Header-Informationen geschrieben wird [SWS_Dem_00327].BufSize: Dient als Ein- und Ausgabeparameter; enthält beim Aufruf die maximale Pufferkapazität und gibt die Anzahl tatsächlich geschriebener Datenbytes zurück [SWS_Dem_00327].
Einschränkungen und Fehlerbehandlung
Die Funktion ist nicht reentrant (Non Reentrant) und steht ausschließlich in Steuergeräten mit aktivierter OBD-Unterstützung (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) zur Verfügung [SWS_Dem_00327]. Bei erfolgreicher Datenbereitstellung wird E_OK zurückgegeben, andernfalls E_NOT_OK [SWS_Dem_00327]. Ein unterdrückter DTC ist für diese Abfragefunktion nicht sichtbar [SWS_Dem_01101]; vermutlich liefert die Funktion in einem solchen Fall E_NOT_OK zurück. Frage Q-09c77cdccc138247 (offen)
Dieser Text wurde von einer KI erstellt; maßgeblich ist die referenzierte Spezifikation.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmGetDTCOfOBDFreezeFrame [SWS_Dem_00624] 📄 PDF
Std_ReturnType Dem_DcmGetDTCOfOBDFreezeFrame (uint8 FrameNumber, uint32* DTC, Dem_DTCFormatType DTCFormat);
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)
Die synchrone, nicht-reentrante Funktion Dem_DcmGetDTCOfOBDFreezeFrame liest den DTC zu einer vorgegebenen Freeze-Frame-Datensatznummer aus [SWS_Dem_00624]. Sie dient primär dem DCM zur Ausgabe im Rahmen des OBD-Dienstes $02 (PID $02), um den DTC des relevantesten ausgewählten Freeze-Frames zu ermitteln [SWS_Dem_00623].
Aufruf und Parameter
FrameNumber(IN): Eindeutige Kennung des Freeze-Frame-Datensatzes gemäß ISO 15031-5. Der Wert0x00bezeichnet den vollständigen OBD-Freeze-Frame, weitere Werte sind reserviert [SWS_Dem_00624].DTCFormat(IN): Gewünschtes Ausgabeformat des DTC-Werts [SWS_Dem_00624].DTC(OUT): Zeiger auf den Speicherort für den ermittelten Fehlercode im OBD-Format [SWS_Dem_00624].
Rückgabewerte und Fehlerbehandlung
Die Funktion gibt E_OK zurück, wenn der DTC erfolgreich ermittelt werden konnte. Ist kein passender DTC verfügbar, liefert der Aufruf E_NOT_OK; in diesem Fall enthält der Ausgabeparameter DTC keine gültigen Daten [SWS_Dem_00624].
Bedingungen und Zusammenspiel
Die Schnittstelle ist über den Header Dem_Dcm.h verfügbar und existiert ausschließlich in Steuergeräten mit OBD-Unterstützung (Konfiguration DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00624]. Unterdrückte DTCs (suppressed DTCs) werden von der Funktion so behandelt, als ob kein Treffer vorliegt, und sind für diese Abfrage nicht sichtbar [SWS_Dem_01101].
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmGetAvailableOBDMIDs [SWS_Dem_00766] 📄 PDF
Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);
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)
Die synchrone und reentrante Funktion Dem_DcmGetAvailableOBDMIDs (Service-ID 0xa3) wird vom DCM aufgerufen, um im Rahmen einer OBD-Service-$06-Anfrage den Wert einer angefragten Verfügbarkeits-OBDMID auszulesen [SWS_Dem_00766]. Über den Eingabeparameter Obdmid (Typ uint8) übergibt der Aufrufer eine standardisierte Verfügbarkeits-Kennung wie $00, $20 oder $40. Das DEM meldet die unterstützten Test-Identifikatoren als bitcodierte Information über den 32-Bit-Ausgabezeiger Obdmidvalue zurück [SWS_Dem_00766]. Aus diesen Daten leitet der Diagnosetester ab, welche Prüfungen dem Werkstattpersonal zur Auswahl angezeigt werden [SWS_Dem_00766].
Die Funktion wird über den Header Dem_Dcm.h deklariert. Sie ist ausschließlich für OBD-relevante Steuergeräte vorgesehen und nur dann im Modul verfügbar, wenn die Konfigurationsoption DemGeneral.DemOBDSupport ungleich DEM_OBD_NO_OBD_SUPPORT gesetzt ist [SWS_Dem_00766].
Bei fehlerfreier Übermittlung der DTR-Verfügbarkeit gibt die Schnittstelle E_OK zurück [SWS_Dem_00766]. Wird die Funktion aufgerufen, bevor das DEM vollständig initialisiert oder nachdem es heruntergefahren wurde, greift der Fehlercode DEM_E_UNINIT [SWS_Dem_00173]. Ebenso führen Aufrufe mit ungültigem Zeiger (DEM_E_PARAM_POINTER) oder mit fehlerhaften Parameterwerten (DEM_E_PARAM_DATA) zu Entwicklungsfehlern gemäß [SWS_Dem_00173]. In solchen Fehlerfällen dürfte als Rückgabewert vermutlich E_NOT_OK geliefert werden. Frage Q-b42d268116fb8df7 (offen)
Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmGetNumTIDsOfOBDMID [SWS_Dem_00767] 📄 PDF
Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);
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)
Die synchrone und reentrante Funktion Dem_DcmGetNumTIDsOfOBDMID (Service-ID 0xa4) wird über die Header-Datei Dem_Dcm.h deklariert [SWS_Dem_00767]. Sie dient dem Diagnostic Communication Manager (DCM) dazu, auf Anfrage die Anzahl der zugewiesenen Test-Identifikatoren (TIDs) zu einer angegebenen funktionalen OBDMID abzufragen [SWS_Dem_00761].
Beim Aufruf übergibt der DCM die Kennung der betreffenden OBDMID im Eingangsparameter Obdmid und erhält die Anzahl der zugeordneten TIDs über den Zeiger numberOfTIDs zurück [SWS_Dem_00767]. Dieser Ausgabewert dient dem DCM als Obergrenze für eine Zählschleife von 0 bis numberOfTIDs - 1, in welcher anschließend sequenziell über Dem_DcmGetDTRData die einzelnen DTR-Ergebniswerte, Testergebnisse und Grenzwerte abgefragt werden [SWS_Dem_00761] [SWS_Dem_00768].
Die Funktion gibt den Rückgabewert E_OK zurück, wenn die Anzahl der TIDs erfolgreich ermittelt werden konnte, und E_NOT_OK, falls die Abfrage fehlschlägt [SWS_Dem_00767]. Spezifische Entwicklungsfehler (DET) oder detaillierte Fehlerursachen für den Fehlerfall sind in der Spezifikation nicht gesondert ausgewiesen.
Der Aufruf ist ausschließlich für OBD-relevante Steuergeräte vorgesehen. Die Schnittstelle ist im DEM nur verfügbar, wenn der Konfigurationsparameter DemOBDSupport nicht auf DEM_OBD_NO_OBD_SUPPORT eingestellt ist [SWS_Dem_00767].
Dieser Nutzungshinweis wurde von einer KI generiert und stützt sich ausschließlich auf die Spezifikationsdokumente von AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I1)
function Dem_DcmGetDTRData [SWS_Dem_00768] 📄 PDF
Std_ReturnType Dem_DcmGetDTRData (uint8 Obdmid, uint8 TIDindex, uint8* TIDvalue, uint8* UaSID, uint16* Testvalue, uint16* Lowlimvalue, uint16* Upplimvalue);
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)
Die synchrone und reentrante Funktion Dem_DcmGetDTRData dient dem Diagnostic Communication Manager (DCM) dazu, DTR-Daten (Diagnostic Test Results) einschließlich TID-Wert, UaSID sowie aktuellem Testergebnis mit Unter- und Obergrenze abzufragen [SWS_Dem_00768]. Sie steht ausschließlich in Steuergeräten mit OBD-Unterstützung zur Verfügung, wenn DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT konfiguriert ist [SWS_Dem_00768].
Verwendung und Zusammenspiel
Der DCM ruft die Funktion auf, um die verfügbaren DTR-Daten für eine bestimmte Obdmid und einen TIDindex abzurufen [SWS_Dem_00762]. Die Abfrage erfolgt typischerweise iterativ über den Index TIDindex von 0 bis numberOfTIDs - 1, wobei die Gesamtzahl zuvor über Dem_DcmGetNumTIDsOfOBDMID() ermittelt wird [SWS_Dem_00768], [SWS_Dem_00762]. Über die Ausgabeparameter TIDvalue, UaSID, Testvalue, Lowlimvalue und Upplimvalue werden die Werte für die Tester-Antwort bereitgestellt [SWS_Dem_00768].
Fehlerbehandlung und Randbedingungen
Die Funktion gibt E_OK bei erfolgreicher Ermittlung der DTR-Ergebnisse zurück und E_NOT_OK im Fehlerfall [SWS_Dem_00768]. Ein Fehler tritt insbesondere auf, wenn das referenzierte Diagnose-Event nicht verfügbar ist:
- Ist ein Event als nicht verfügbar gesetzt, wird es wie ein nicht konfiguriertes Event behandelt und
Dem_DcmGetDTRDataschlägt fehl [SWS_Dem_01108]. - Wird die Funktion für ein DTR aufgerufen, dessen über
DemDtrEventRefreferenziertes Event mitDemEventAvailable == FALSEkonfiguriert ist, gibt das DEM zwingendE_NOT_OKzurück [SWS_Dem_01336]. In diesem Fall sind sämtliche Ausgabeparameter undefiniert [SWS_Dem_01336].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmSetDTCFilter [SWS_Dem_00970] 📄 PDF
Std_ReturnType Dem_J1939DcmSetDTCFilter (Dem_J1939DcmDTCStatusFilterType DTCStatusFilter, Dem_DTCKindType DTCKind, Dem_DTCOriginType DTCOrigin, uint8 ClientId, Dem_J1939DcmLampStatusType* LampStatus);
The function sets the DTC filter for a specific node and returns the composite lamp status of the filtered DTCs.
Verwendung
Die synchrone Funktion Dem_J1939DcmSetDTCFilter (Service-ID 0x90, deklariert in Dem_J1939Dcm.h) setzt die Filtermasken-Attribute zur Selektion von J1939-DTCs für einen über ClientId adressierten J1939-Knoten [SWS_Dem_00970], [SWS_Dem_00855]. Als Filterkriterien dienen der Statusfilter DTCStatusFilter (mögliche Werte: DEM_J1939DTC_ACTIVE, DEM_J1939DTC_PREVIOUSLY_ACTIVE, DEM_J1939DTC_PENDING, DEM_J1939DTC_PERMANENT oder DEM_J1939DTC_CURRENTLY_ACTIVE), die funktionale Gruppe DTCKind sowie der Quellspeicher DTCOrigin [SWS_Dem_00970]. Über den Ausgabeparameter LampStatus liefert der Aufruf den aktuellen kombinierten Lampenstatus der gefilterten DTCs zurück [SWS_Dem_00970], [SWS_Dem_00857]. Zudem wird ein interner Zähler auf das erste zutreffende Ereignis zurückgesetzt [SWS_Dem_00855]. Interpretation: Der Aufrufer der Schnittstelle dürfte das J1939Dcm-Modul zur Vorbereitung diagnostischer Leseoperationen sein. Frage Q-5f25345851de686f (offen)
Fehlerbehandlung und Rückgabewerte
Als Rückgabewert liefert die Funktion E_OK bei erfolgreicher Konfiguration des Filters oder E_NOT_OK, falls der Filter nicht gesetzt werden konnte [SWS_Dem_00970]. Unterdrückte DTCs werden von der Filterung nicht erfasst und so behandelt, als ob das Filterkriterium nicht zutrifft; sie bleiben für Abfragen unsichtbar [SWS_Dem_01101].
Nebenläufigkeit und Einschränkungen
Die Funktion ist reentrant für unterschiedliche ClientId-Werte, jedoch nicht reentrant für dieselbe ClientId [SWS_Dem_00970]. Konkurrierende Filteraufrufe auf denselben J1939-Ereignisspeicher müssen daher vermieden werden.
Zusammenspiel
Das Setzen des Filters bildet die Grundlage für die nachfolgende Verarbeitung:
- Ermittlung der Anzahl passender Fehlerpfade über
Dem_J1939DcmGetNumberOfFilteredDTC[SWS_Dem_00855], [SWS_Dem_00874], [SWS_Dem_00972], - iteratives Auslesen der passenden Ereignisse über
Dem_J1939DcmGetNextFilteredDTC[SWS_Dem_00855], [SWS_Dem_00875] sowie - Bereitstellung der Anzahl aktiver bzw. zuvor aktiver DTCs für Readiness-Meldungen (DM05) über
Dem_J1939DcmReadDiagnosticReadiness1[SWS_Dem_00909].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_J1939DcmGetNumberOfFilteredDTC [SWS_Dem_00972] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);
Gets the number of currently filtered DTCs set by the function Dem_J1939DcmSetDTCFilter.
Die Funktion [SWS_Dem_00972] ermittelt asynchron die Anzahl der J1939-DTCs, die den zuvor mit Dem_J1939DcmSetDTCFilter definierten Filterkriterien im primären Ereignisspeicher der übergebenen ClientId entsprechen ([SWS_Dem_00874]). Ein vorangehender Aufruf von Dem_J1939DcmSetDTCFilter ist erforderlich, da dieser die Filtermaskenattribute setzt und den internen Zähler auf das erste Ereignis zurücksetzt ([SWS_Dem_00855]).
Das Zählergebnis wird über den Ausgabeparameter NumberOfFilteredDTC bereitgestellt. Für den Ablauf und die Rückgabewerte gelten folgende Regeln:
- Erfolg: Sobald die Gesamtzahl passender DTCs vollständig ermittelt wurde, gibt die Funktion
E_OKzurück ([SWS_Dem_00874]). - Unterbrechung: Muss der Suchvorgang aufgrund interner Beschränkungen unterbrochen werden, liefert die Funktion
DEM_PENDING. In diesem Fall muss der Ausgabeparameter noch nicht gültig sein; ein nachfolgender Aufruf setzt die Ermittlung nach dem unterbrochenen Element fort ([SWS_Dem_00874]). - Fehlercodes: Die Spezifikation sieht darüber hinaus die Statuswerte
DEM_NO_SUCH_ELEMENTsowieDEM_BUFFER_TOO_SMALLvor ([SWS_Dem_00972]).
Hinsichtlich der Sichtbarkeit bestimmt [SWS_Dem_01101], dass unterdrückte Fehler (suppressed DTCs) so behandelt werden müssen, als ob das Filterkriterium nicht zutrifft. Die Funktion ist als nicht reentrant definiert ([SWS_Dem_00972]), weshalb gleichzeitige Aufrufe vermieden werden müssen.
Dieser Nutzungshinweis wurde von einer KI erstellt und fasst die Kernaspekte der AUTOSAR-Spezifikation zusammen.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmGetNextFilteredDTC [SWS_Dem_00973] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);
Gets the next filtered J1939 DTC.
Die asynchrone und nicht reentrante Funktion Dem_J1939DcmGetNextFilteredDTC (Service-ID 0x92) liest den nächsten gefilterten J1939-DTC aus dem über ClientId adressierten J1939-Ereignisspeicher aus [SWS_Dem_00973]. Sie ist über den Header Dem_J1939Dcm.h deklariert [SWS_Dem_00973].
Findet die Funktion ein auf das Filterkriterium zutreffendes Ereignis, gibt sie E_OK zurück und liefert über die Ausgabeparameter den entsprechenden J1939DTC sowie den zugehörigen OccurenceCounter [SWS_Dem_00877], [SWS_Dem_00973]. Liegt der Auftretenszähler über 126 (0x7E), wird der zurückgegebene Wert fest auf 126 (0x7E) begrenzt [SWS_Dem_00877].
Muss der Suchvorgang aufgrund interner Begrenzungen oder Implementierungsdetails unterbrochen werden, liefert die Funktion DEM_PENDING zurück [SWS_Dem_00877], [SWS_Dem_00973]. In diesem Fall enthalten die Ausgabeparameter keine gültigen Daten; der nächste Aufruf setzt die Suche direkt nach dem unterbrochenen Element fort [SWS_Dem_00877]. Ist kein weiteres passendes Element vorhanden, lautet der Rückgabewert DEM_NO_SUCH_ELEMENT; bei zu kleinem Puffer wird DEM_BUFFER_TOO_SMALL gemeldet [SWS_Dem_00973].
Unterdrückte Diagnose-Ereignisse (suppressed DTCs) sind für die Abfragefunktion nicht sichtbar; sie werden von Dem_J1939DcmGetNextFilteredDTC so behandelt, als ob das Filterkriterium nicht zutrifft [SWS_Dem_01101].
Dieser Text wurde automatisch von einer KI generiert und ersetzt nicht die offizielle AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmFirstDTCwithLampStatus [SWS_Dem_00974] 📄 PDF
void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);
The function sets the filter to the first applicable DTC for the DM31 response for a specific node.
Verwendung
Die synchrone Schnittstelle Dem_J1939DcmFirstDTCwithLampStatus initialisiert die Filterung auf den ersten zutreffenden Diagnostic Trouble Code (DTC) für die DM31-Antwort eines spezifischen Knotens [SWS_Dem_00974]. Als einziger Eingangsparameter dient ClientId vom Typ uint8, womit der zugehörige J1939-Ereignisspeicher adressiert wird [SWS_Dem_00974]. Die Funktion besitzt weder Ein- noch Ausgabeparameter und liefert keinen Rückgabewert (void) [SWS_Dem_00974]. Sie ist über die Header-Datei Dem_J1939Dcm.h mit der Service-ID 0x93 deklariert [SWS_Dem_00974]. Interpretation: Die Funktion dürfte primär vom Modul J1939Dcm aufgerufen werden, um die Filterung vor der Übertragung der DM31-Lampenstatus-Meldungen zu initialisieren. Frage Q-064513be4f06584b (offen)
Filterlogik und Zusammenspiel
Jeder Aufruf der Funktion setzt den internen Zähler auf das erste Ereignis zurück, dem für die angegebene ClientId ein J1939DTC zugewiesen ist [SWS_Dem_00880]. Hinsichtlich des Status von Diagnoseereignissen schreibt die Spezifikation vor, dass ein unterdrückter DTC (suppressed DTC) für DCM-Abfragefunktionen unsichtbar bleiben muss [SWS_Dem_01101]. Demnach behandelt Dem_J1939DcmFirstDTCwithLampStatus unterdrückte DTCs so, als ob das Filterkriterium nicht erfüllt wäre [SWS_Dem_01101].
Nebenläufigkeit und Einschränkungen
Hinsichtlich des Nebenläufigkeitsverhaltens ist die Schnittstelle reentrant für Aufrufe mit unterschiedlichen ClientId-Werten, jedoch nicht reentrant für denselben ClientId-Wert [SWS_Dem_00974]. Parallele Abfragen über identische Client-IDs auf denselben J1939-Ereignisspeicher sind folglich unzulässig.
Dieser Text wurde automatisch von einem KI-Kurations-Assistenten generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmGetNextDTCwithLampStatus [SWS_Dem_00975] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextDTCwithLampStatus (Dem_J1939DcmLampStatusType* LampStatus, uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);
Gets the next filtered J1939 DTC for DM31 including current LampStatus.
Verwendung und Aufrufkontext
Die Funktion Dem_J1939DcmGetNextDTCwithLampStatus wird synchron ausgeführt und ist nicht reentrant ([SWS_Dem_00975]). Sie dient im Rahmen der J1939-Diagnosekommunikation (DM31) dazu, iterativ den nächsten gefilterten J1939-DTC zusammen mit dem zugehörigen Lampenstatus und dem Ereigniszähler (OccurenceCounter) aus dem über ClientId adressierten Ereignisspeicher abzufragen ([SWS_Dem_00975]). Die Iteration setzt voraus, dass der Ereignisspeicher zuvor durch Dem_J1939DcmFirstDTCwithLampStatus vorbereitet wurde ([SWS_Dem_00881]).
Ablauf und Rückgabewerte
Jeder Aufruf durchsucht den Speicher nach dem nächsten Ereignis mit zugewiesenem J1939-DTC ([SWS_Dem_00881]). Unterdrückte DTCs (suppressed DTC) werden wie nicht passende Ereignisse behandelt und übersprungen ([SWS_Dem_01101]).
-
E_OK: Ein passendes Ereignis wurde gefunden. Die ParameterLampStatus,J1939DTCundOccurenceCounterenthalten gültige Werte ([SWS_Dem_00882]). Interpretation: Die in der Parameterspezifikation genannte BedingungDEM_FILTERED_OKdürfte sich aufE_OKbeziehen, daDEM_FILTERED_OKfür diese Funktion nicht als Rückgabewert deklariert ist ([SWS_Dem_00975]). Frage Q-5284fb30b98babf6 (offen) -
DEM_PENDING: Die interne Suche musste aufgrund von Implementierungsgrenzen unterbrochen werden. Die Ausgabeparameter enthalten keine gültigen Daten, und der nächste Aufruf setzt die Suche hinter dem unterbrochenen Element fort ([SWS_Dem_00882]). -
DEM_NO_SUCH_ELEMENT: Es sind keine weiteren passenden Ereignisse im Speicher vorhanden; die Ausgabeparameter sind ungültig ([SWS_Dem_00881]). -
DEM_BUFFER_TOO_SMALL: Der übergebene Puffer ist zu klein ([SWS_Dem_00975]).
Lampenstatus und Wertebereich
Für die Bestimmung des Lampenstatus prüft das DEM das UDS-Statusbit 7 (WarningIndicator) sowie die jeweilige Indikator-Referenz: Die Malfunction Indicator Lamp ([SWS_Dem_00883]), Red Stop Lamp ([SWS_Dem_00887]) und Amber Warning Lamp ([SWS_Dem_00891]) werden jeweils auf Lamp On gesetzt, wenn das Bit aktiv und die Referenz zugewiesen ist; andernfalls lauten sie Lamp Off. Der OccurenceCounter wird bei Zählerständen über 126 (0x7F) auf genau 126 begrenzt ([SWS_Dem_00882]).
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_J1939DcmClearDTC [SWS_Dem_00976] 📄 PDF
Std_ReturnType Dem_J1939DcmClearDTC (Dem_J1939DcmSetClearFilterType DTCTypeFilter, Dem_DTCOriginType DTCOrigin, uint8 ClientId);
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).
Verwendung
Die Funktion Dem_J1939DcmClearDTC ([SWS_Dem_00976]) wird dem Modul J1939Dcm über den Header Dem_J1939Dcm.h bereitgestellt, um alle aktiven oder zuvor aktiven Diagnose-Fehlercodes (DTCs) aus dem Ereignisspeicher zu löschen ([SWS_Dem_00878]). Der Aufruf arbeitet asynchron. Als Eingabeparameter erwartet die Schnittstelle den Filtertyp DTCTypeFilter zur Bestimmung der zu löschenden DTCs, DTCOrigin zur Selektion des Quellspeichers sowie die ClientId zur Adressierung des J1939-Ereignisspeichers.
Fehlerbehandlung und Rückgabewerte
Das Ergebnis der Ausführung wird über den Rückgabetyp Std_ReturnType signalisiert:
E_OK: Der Löschvorgang wurde erfolgreich abgeschlossen.DEM_PENDING: Die Bereinigung ist im Gange; der Aufrufer muss die Funktion zu einem späteren Zeitpunkt erneut aufrufen.DEM_CLEAR_BUSY: Ein anderer Client führt zeitgleich einen Löschvorgang aus; die Operation wird nicht gestartet und ist später zu wiederholen.DEM_WRONG_DTC: Der gewählte DTC existiert im gewählten Format nicht oder das Löschen ist per Konfiguration auf Gruppen beschränkt.DEM_WRONG_DTCORIGIN: Der angegebene Quellspeicher existiert nicht.DEM_CLEAR_FAILEDbzw.DEM_CLEAR_MEMORY_ERROR: Das Löschen schlug fehl oder es trat ein Fehler beim Löschen eines Speicherbereichs auf (z. B. bei unvollständigem Löschen von nicht-flüchtigem Speicher).
Nebenläufigkeit und Einschränkungen
Gemäß [SWS_Dem_00976] ist die Funktion für unterschiedliche Client-IDs reentrant, für dieselbe ClientId jedoch nicht reentrant. Parallele Löschaufrufe über identische Clients sind daher unzulässig.
Zusammenspiel
Gemäß [SWS_Dem_00879] setzt das Löschen den Status aller betroffenen Ereignisse zurück und entfernt die zugehörigen Ereignisspeichereinträge. Zudem stößt der Löschvorgang gemäß [SWS_Dem_00878] eine Neuinitialisierung der betroffenen SW-Cs und BSW-Module nach [SWS_Dem_00003] an.
Dieser Text wurde automatisch anhand der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00977] 📄 PDF
Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);
The function sets the FreezeFrame filter for a specific node.
Die synchrone Funktion Dem_J1939DcmSetFreezeFrameFilter dient dem Setzen des Freeze-Frame-Filters für einen spezifischen Knoten über den Header Dem_J1939Dcm.h [SWS_Dem_00977]. Sie konfiguriert Filtermaskenattribute für nachfolgende Abfragen mittels Dem_J1939DcmGetNextFreezeFrame und setzt dabei einen internen Zähler auf das erste Freeze-Frame zurück [SWS_Dem_00899].
Parameter und Rückgabewerte
FreezeFrameKind: Bestimmt die Filterart [SWS_Dem_00977]. Verfügbare Typen sindDEM_J1939DCM_FREEZEFRAME(Filterung der Daten inDemJ1939FreezeFrameClassRef),DEM_J1939DCM_EXPANDED_FREEZEFRAME(Filterung der Daten inDemJ1939ExpandedFreezeFrameClassRef) sowieDEM_J1939DCM_SPNS_IN_EXPANDED_FREEZEFRAME([SWS_Dem_00977], [SWS_Dem_00899]).ClientId: Übergibt die Kennung zur Adressierung des J1939-Ereignisspeichers [SWS_Dem_00977].- Rückgabewert: Liefert
E_OKbei erfolgreicher Ausführung oderE_NOT_OK, wenn der Filter nicht gesetzt werden konnte [SWS_Dem_00977].
Nebenläufigkeit und Gültigkeit
Hinsichtlich der Nebenläufigkeit ist die Funktion reentrant für unterschiedliche Werte von ClientId, jedoch nicht reentrant für identische ClientId-Werte [SWS_Dem_00977]. Die gesetzten Filtermaskenattribute bleiben nach dem Aufruf so lange wirksam, bis ein erneuter Aufruf von Dem_J1939DcmSetFreezeFrameFilter erfolgt oder das Modul DEM neu initialisiert wird [SWS_Dem_00899].
Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmGetNextFreezeFrame [SWS_Dem_00978] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextFreezeFrame (uint32* J1939DTC, uint8* OccurenceCounter, uint8* DestBuffer, uint16* BufSize, uint8 ClientId);
Gets next freeze frame data. The function stores the data in the provided DestBuffer.
Verwendung
Die asynchrone und nicht reentrante Funktion Dem_J1939DcmGetNextFreezeFrame liest schrittweise Freeze-Frame-Daten für einen spezifischen Ereignisspeicher aus [SWS_Dem_00978]. Die Iteration orientiert sich an den zuvor über Dem_J1939DcmSetFreezeFrameFilter gesetzten Filterkriterien FreezeFrameKind und ClientId [SWS_Dem_00900]. Die Nutzdaten werden in den Puffer DestBuffer kopiert (bei Expanded Freeze-Frames ohne SPN-Informationen und mit 0 aufgefüllten ungenutzten Bits), während BufSize die Puffergröße übergibt und die tatsächlich geschriebene Bytemenge zurückmeldet [SWS_Dem_00978], [SWS_Dem_00903]. Zudem liefert der Aufruf den zugehörigen J1939DTC sowie den OccurenceCounter, welcher bei Werten über 126 auf 0x7F begrenzt wird [SWS_Dem_00903].
Rückgabewerte und Fehlerbehandlung
Die Rückgabewerte steuern den Ablauf der Iteration:
E_OK: Ein Datensatz wurde erfolgreich gefunden und übertragen [SWS_Dem_00978], [SWS_Dem_00903]. Die Erwähnung vonDEM_FILTERED_OKin der Parameterbeschreibung dürfte vermutlich als redaktionelles Synonym fürE_OKzu verstehen sein. Frage Q-e941066640c694b9 (offen)DEM_NO_SUCH_ELEMENT: Es existieren keine weiteren Datensätze, die den Filterkriterien entsprechen [SWS_Dem_00900].DEM_PENDING: Die interne Suche wurde unterbrochen; der Folgeaufruf setzt die Suche an der unterbrochenen Stelle fort [SWS_Dem_00902].DEM_BUFFER_TOO_SMALLbzw.DEM_FILTERED_BUFFER_TOO_SMALL: Der Puffer reicht nicht aus; die Operation bricht ohne Datenübernahme ab [SWS_Dem_00978], [SWS_Dem_00903].
Wird eine nicht unterstützte Filterart übergeben, meldet die Funktion den DET-Fehler DEM_E_WRONG_CONDITION; gültig sind ausschließlich DEM_J1939DCM_FREEZEFRAME und DEM_J1939DCM_EXPANDED_FREEZEFRAME [SWS_Dem_00901]. Sofern der Rückgabewert ungleich Erfolg ist, enthalten die Ausgabeparameter keine gültigen Daten [SWS_Dem_00978], [SWS_Dem_00900], [SWS_Dem_00902], [SWS_Dem_00903].
Einschränkungen und Zusammenspiel
Unterdrückte DTCs werden von der Abfrage ignoriert und wie nicht zutreffende Filterkriterien behandelt [SWS_Dem_01101].
Dieser Nutzungshinweis wurde automatisiert generiert und stützt sich ausschließlich auf die Spezifikation AUTOSAR CP R20-11.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmGetNextSPNInFreezeFrame [SWS_Dem_00979] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);
Gets next SPN.
Verwendung und Semantik
Die Funktion Dem_J1939DcmGetNextSPNInFreezeFrame liest schrittweise die nächste SPN (Suspect Parameter Number) aus dem erweiterten Freeze Frame ([SWS_Dem_00979]). Jeder Aufruf iteriert zum nächsten Element der SPN-Definition für den über ClientId adressierten Ereignisspeicher ([SWS_Dem_00904]). Bei erfolgreichem Auffinden liefert der Aufruf E_OK sowie die gefundene SPN über SPNSupported und deren Datenlänge über SPNDataLength zurück ([SWS_Dem_00979], [SWS_Dem_00907]).
Asynchrone Verarbeitung und Rückgabewerte
Die Operation ist als asynchron spezifiziert ([SWS_Dem_00979]). Muss der Suchlauf aufgrund interner Beschränkungen unterbrochen werden, gibt die Funktion DEM_PENDING zurück; in diesem Fall sind die Ausgabeparameter nicht zwingend gültig und der Folgeaufruf setzt die Suche an der unterbrochenen Stelle fort ([SWS_Dem_00905]). Sind keine weiteren SPNs in der Definition vorhanden, wird DEM_NO_SUCH_ELEMENT gemeldet, wobei die Ausgabeparameter ebenfalls nicht gültig sein müssen ([SWS_Dem_00904]). Ist der bereitgestellte Puffer unzureichend, meldet die Schnittstelle DEM_BUFFER_TOO_SMALL ([SWS_Dem_00979]).
Fehlerbehandlung und Nebenläufigkeit
Wird eine nicht unterstützte Freeze-Frame-Art angefordert, löst das Modul den DET-Fehler DEM_E_WRONG_CONDITION aus; gültig ist ausschließlich Dem_SPNsInExpandedFreezeFrame ([SWS_Dem_00906]). Da die Funktion als nicht reentrant definiert ist ([SWS_Dem_00979]), darf sie für denselben Kontext nicht nebenläufig aufgerufen werden. Die Header-Datei Dem_J1939Dcm.h stellt die Schnittstelle bereit ([SWS_Dem_00979]).
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmSetRatioFilter [SWS_Dem_00980] 📄 PDF
Std_ReturnType Dem_J1939DcmSetRatioFilter (uint16* IgnitionCycleCounter, uint16* OBDMonitoringConditionsEncountered, uint8 ClientId);
The function sets the Ratio filter for a specific node and returns the corresponding Ignition Cycle Counter and General Denominator.
Die synchrone Funktion Dem_J1939DcmSetRatioFilter setzt den Ratio-Filter für einen spezifischen J1939-Knoten und initialisiert die Filterung von IUMPR-Verhältnissen gemäß [SWS_Dem_00980]. Dabei setzt sie einen internen Zähler auf die erste gültige SPN mit definierter DemRatioId zurück, um die anschließende schrittweise Abfrage über Dem_J1939DcmGetNextFilteredRatio vorzubereiten [SWS_Dem_00912].
Über die Ausgabeparameter stellt die Funktion übergeordnete Zählerwerte bereit:
IgnitionCycleCounter: Liefert den Zündungszykluszähler gemäß SAE J1939-73 (Kapitel 5.7.20.1) [SWS_Dem_00912].OBDMonitoringConditionsEncountered: Liefert den Zähler für aufgetretene OBD-Überwachungsbedingungen gemäß SAE J1939-73 (Kapitel 5.7.20.2), von CARB als General Denominator definiert [SWS_Dem_00912].ClientId: Identifiziert den aufrufenden Client zur Adressierung des J1939-Ereignisspeichers [SWS_Dem_00980].
Hinsichtlich Nebenläufigkeit ist die Funktion reentrant für unterschiedliche ClientId-Werte, jedoch nicht reentrant für dieselbe ClientId [SWS_Dem_00980]. Interpretation: Der Aufruf dürfte typischerweise synchron aus dem Ablauf des J1939-Diagnostic-Communication-Managers (J1939Dcm) erfolgen, um IUMPR-Diagnosedaten abzufragen. Frage Q-e577651b88f64132 (offen) Bei erfolgreichem Setzen des Filters gibt die Funktion E_OK zurück; schlägt das Setzen fehl, wird E_NOT_OK gemeldet [SWS_Dem_00980].
Im Zusammenspiel mit Diagnose-Ereignissen gilt, dass unterdrückte DTCs für Abfragefunktionen wie Dem_J1939DcmSetRatioFilter nicht sichtbar sein dürfen und so behandelt werden müssen, als würde der Filter nicht passen [SWS_Dem_01101].
Dieser Nutzungshinweis wurde automatisiert auf Basis von AUTOSAR R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00981] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);
Gets the next filtered Ratio.
Verwendung
Die synchrone und nicht reentrante Funktion Dem_J1939DcmGetNextFilteredRatio ([SWS_Dem_00981]) dient dem iterativen Auslesen des nächsten gefilterten IUMPR-Verhältnisses (Ratio). Über den Parameter ClientId wird der jeweilige J1939-Ereignisspeicher adressiert. Bei erfolgreichem Aufruf liefert die Funktion über die Ausgabeparameter SPN, Numerator und Denominator die Suspect Parameter Number sowie Zähler und Nenner des zutreffenden System-Monitors ([SWS_Dem_00981]).
Ablauf und Zusammenspiel
Für eine korrekte Iteration muss der Filter vorab über Dem_J1939DcmSetRatioFilter initialisiert werden ([SWS_Dem_00912]). Dieser Aufruf setzt einen internen Zähler auf die erste gültige SPN mit definierter DemRatioId zurück, auf der nachfolgende Aufrufe von Dem_J1939DcmGetNextFilteredRatio aufsetzen. Ein unterdrücktes DTC ist für die Abfrage nicht sichtbar und wird so behandelt, als treffe der Filter nicht zu ([SWS_Dem_01101]).
Rückgabewerte und Fehlerbehandlung
Gemäß [SWS_Dem_00981] sind folgende Rückgabewerte definiert:
E_OK: Die Operation war erfolgreich. Nur in diesem Fall enthaltenSPN,NumeratorundDenominatorgültige Daten (die Erwähnung vonDEM_FILTERED_OKin der Parameterbeschreibung dürfte als Interpretation fürE_OKstehen). Frage Q-57774bbc88fe3c0b (offen)DEM_NO_SUCH_ELEMENT: Es ist kein weiteres passendes Element vorhanden.DEM_PENDING: Die Operation war erfolgreich, das Ergebnis steht jedoch noch aus.DEM_BUFFER_TOO_SMALL: Der übergebene Puffer ist zu klein.
Nebenläufigkeit
Da die Funktion als nicht reentrant deklariert ist ([SWS_Dem_00981]), darf sie für dieselbe ClientId nicht nebenläufig aufgerufen werden.
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Maßgeblich sind die referenzierten AUTOSAR-Spezifikationen.
Implementer's Guide folgt (Komplexität I1)
function Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00982] 📄 PDF
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness1 (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);
Service to report the value of Diagnostic Readiness 1 (DM05) computed by the Dem.
Die synchrone Schnittstelle Dem_J1939DcmReadDiagnosticReadiness1 (im Klassik-Standard unter Dem_J1939DcmReadDiagnosticReadiness geführt) dient dazu, den vom Diagnostic Event Manager berechneten Wert der Diagnostic Readiness 1 (DM05) abzufragen [SWS_Dem_00982]. Sie ist über die Header-Datei Dem_J1939Dcm.h deklariert und besitzt die Service-ID 0x9b [SWS_Dem_00982].
Verwendung und Parameter
Der Aufruf erfolgt synchron und nutzt folgende Funktionsparameter [SWS_Dem_00982]:
ClientId(IN,uint8): Identifiziert den zu adressierenden J1939-Ereignisspeicher (J1939 event memory) [SWS_Dem_00982].DataValue(OUT, Zeiger aufDem_J1939DcmDiagnosticReadiness1Type): Zeigt auf einen 8 Byte großen Puffer, in den das DEM den berechneten Inhalt der Diagnostic Readiness 1 (DM05) schreibt [SWS_Dem_00982].
Rückgabewerte und Fehlerbehandlung
Die Funktion gibt einen Status vom Typ Std_ReturnType zurück [SWS_Dem_00982]:
E_OK: Der Dienst wurde erfolgreich ausgeführt und die Readiness-Daten wurden im Ausgabepuffer abgelegt [SWS_Dem_00982].E_NOT_OK: Die Operation ist fehlgeschlagen [SWS_Dem_00982]. Spezifische Fehlercodes, DEM-Ereignisse oder DET-Meldungen sind in der Funktionsspezifikation nicht ausgewiesen [SWS_Dem_00982].
Nebenläufigkeit und Einschränkungen
Hinsichtlich des gleichzeitigen Zugriffs ist der Service reentrant für unterschiedliche ClientIds spezifiziert, jedoch ausdrücklich als nicht reentrant für dieselbe ClientId definiert [SWS_Dem_00982].
Dieser Nutzungshinweis wurde automatisiert auf Basis von AUTOSAR R20-11 Spezifikationsdaten erstellt.
function Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00983] 📄 PDF
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness2 (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);
Service to report the value of Diagnostic Readiness 2 (DM21) computed by the Dem.
Die synchrone Funktion Dem_J1939DcmReadDiagnosticReadiness2 (Service-ID 0x9c) dient dazu, den vom DEM berechneten Wert der Diagnostic Readiness 2 (DM21) abzufragen [SWS_Dem_00983]. Die Schnittstelle wird über die Header-Datei Dem_J1939Dcm.h zur Verfügung gestellt [SWS_Dem_00983].
Für den Aufruf sind zwei Parameter definiert [SWS_Dem_00983]:
ClientId(Eingang): Adressiert den jeweiligen J1939-Ereignisspeicher [SWS_Dem_00983].DataValue(Ausgang): Zeiger auf einen 8-Byte-Puffer vom TypDem_J1939DcmDiagnosticReadiness2Typezur Aufnahme der berechneten DM21-Daten [SWS_Dem_00983].
Als Rückgabewert liefert die Funktion Std_ReturnType; bei erfolgreicher Abfrage wird E_OK zurückgegeben, während im Fehlerfall E_NOT_OK gemeldet wird [SWS_Dem_00983]. Spezifische Fehlerursachen sind nicht separat ausgewiesen; der Aufrufer dürfte bei E_NOT_OK davon ausgehen müssen, dass der Puffer keine gültigen Daten enthält. Frage Q-97b94d15a8634712 (offen)
Hinsichtlich der Nebenläufigkeit ist der Dienst reentrant für unterschiedliche ClientId-Werte, jedoch nicht reentrant für dieselbe ClientId [SWS_Dem_00983]. Gleichzeitige Aufrufe für dieselbe ClientId müssen daher im aufrufenden Kontext serialisiert werden.
Dieser Text wurde durch eine KI auf Basis der Spezifikation AUTOSAR R20-11 generiert.
function Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00770] 📄 PDF
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness3 (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);
Service to report the value of Diagnostic Readiness 3 (DM26) computed by the Dem.
Der Dienst Dem_J1939DcmReadDiagnosticReadiness (in der Signatur als Dem_J1939DcmReadDiagnosticReadiness3 spezifiziert) dient dem synchronen Auslesen der vom DEM ermittelten Daten zur Diagnostic Readiness 3 (DM26) [SWS_Dem_00770]. Die Deklaration wird über die Header-Datei Dem_J1939Dcm.h bereitgestellt [SWS_Dem_00770]. Der Aufruf dürfte dem Schnittstellennamen nach primär durch das Modul J1939Dcm erfolgen. Frage Q-dc204541dfc23d6b (offen)
Die Schnittstelle erwartet zwei Parameter [SWS_Dem_00770]:
ClientId(in): Adressiert den jeweiligen J1939-Ereignisspeicher [SWS_Dem_00770].DataValue(out): Zeiger auf einen 8-Byte-Puffer des TypsDem_J1939DcmDiagnosticReadiness3Typezur Aufnahme der berechneten DM26-Daten [SWS_Dem_00770].
Als Rückgabewert liefert die Funktion E_OK, wenn die Operation erfolgreich war, oder E_NOT_OK bei einem Fehler während der Ausführung [SWS_Dem_00770].
Hinsichtlich der Nebenläufigkeit ist die Funktion reentrant für unterschiedliche Werte von ClientId, jedoch nicht reentrant für identische ClientId-Werte [SWS_Dem_00770]. Parallele Aufrufe für denselben Client müssen daher durch den Aufrufer ausgeschlossen oder synchronisiert werden.
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
function Dem_SetEventDisabled [SWS_Dem_00312] 📄 PDF
Std_ReturnType Dem_SetEventDisabled (Dem_EventIdType EventId);
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)
function Dem_RepIUMPRFaultDetect [SWS_Dem_00313] 📄 PDF
Std_ReturnType Dem_RepIUMPRFaultDetect (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)
Verwendung
Die synchrone Funktion Dem_RepIUMPRFaultDetect dient dazu zu melden, dass ein OBD-Monitor alle Ausführungsbedingungen erfüllt hat und somit potenzielle Fehler hätte finden können [SWS_Dem_00313]. Die Schnittstelle wird über den Header Dem.h bereitgestellt und steht ausschließlich in Steuergeräten mit OBD-Unterstützung zur Verfügung, sofern DemOBDSupport nicht auf DEM_OBD_NO_OBD_SUPPORT konfiguriert ist [SWS_Dem_00313], [SWS_Dem_00360].
Als Parameter wird die Kennung RatioID vom Typ Dem_RatioIdType übergeben, wenn die Schnittstellenoption „API“ ausgewählt ist [SWS_Dem_00313]. Bei erfolgreicher Erfassung des IUMPR-Ergebnisses gibt die Funktion den Status E_OK zurück [SWS_Dem_00313].
Nebenläufigkeit und Fehlerverhalten
Hinsichtlich der Nebenläufigkeit ist der Dienst reentrant für unterschiedliche Kennungen RatioID, jedoch nicht reentrant für denselben RatioID-Wert [SWS_Dem_00313]. Nebenläufige Aufrufe mit identischer Kennung müssen daher vom Aufrufer vermieden werden.
Wird ein korrespondierendes Ereignis auf nicht verfügbar gesetzt, behandelt das DEM-Modul dieses so, als wäre es nicht im System konfiguriert [SWS_Dem_01108]. Von dieser Deaktivierung ist auch Dem_RepIUMPRFaultDetect explizit betroffen [SWS_Dem_01108]; Interpretation: in diesem Zustand dürfte der Aufruf analog zu den übrigen betroffenen Status-APIs vermutlich E_NOT_OK liefern. Frage Q-6d1775c9bff08f42 (offen)
Dieser Text wurde von einer KI basierend auf der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dem_SetIUMPRDenCondition [SWS_Dem_00733] 📄 PDF
Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);
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)
function Dem_GetIUMPRDenCondition [SWS_Dem_00734] 📄 PDF
Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);
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)
function Dem_RepIUMPRDenRelease [SWS_Dem_00315] 📄 PDF
Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);
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)
Die synchrone und reentrante Funktion Dem_RepIUMPRDenRelease dient dazu, den Denominator eines spezifischen Monitors aus physikalischen Gründen wie etwa dem Erreichen bestimmter Temperaturbedingungen oder minimaler Aktivität freizugeben [SWS_Dem_00315]. Das DEM stellt diese Schnittstelle für IUMPR-relevante Software-Komponenten (SW-C) bereit, um den zur jeweiligen RatioID gehörenden Denominator gezielt zu steuern [SWS_Dem_00308].
Die Bereitstellung und das Verhalten der Funktion unterliegen festen Konfigurations- und Laufzeitbedingungen:
- Verfügbarkeit und Konfiguration: Die API ist ausschließlich in OBD-relevanten Steuergeräten verfügbar, wenn
DemOBDSupportungleichDEM_OBD_NO_OBD_SUPPORTkonfiguriert ist [SWS_Dem_00315]. Zudem wird die Schnittstelle zur Freigabe unter speziellen Bedingungen bereitgestellt, fallsDemIUMPRDenGroupalsDEM_IUMPR_DEN_PHYS_APIkonfiguriert ist [SWS_Dem_00362]. - Parameter und Rückgabewerte: Als Eingabeparameter wird die Kennung
RatioIDübergeben. Die Funktion liefertE_OKzurück, wenn der Status des IUMPR-Denominators erfolgreich gemeldet wurde, andernfallsE_NOT_OK[SWS_Dem_00315]. - Fehlerverhalten bei inaktiven Events: Ist ein korrespondierendes Ereignis als nicht verfügbar gesetzt, wird es so behandelt, als wäre es im System nicht konfiguriert; der Aufruf von
Dem_RepIUMPRDenReleaseist davon direkt betroffen und liefertE_NOT_OK[SWS_Dem_01108].
Dank der reentranten Auslegung kann die Funktion bei Bedarf nebenläufig aus verschiedenen SW-C-Kontexten aufgerufen werden [SWS_Dem_00315].
Dieser Text wurde durch eine KI erstellt und ersetzt nicht die maßgebliche AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
function Dem_SetPtoStatus [SWS_Dem_00627] 📄 PDF
Std_ReturnType Dem_SetPtoStatus (boolean PtoStatus);
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)
Verwendung
Die synchrone Funktion Dem_SetPtoStatus ([SWS_Dem_00627]) dient dem Setzen des Status des Nebenabtriebs (Power Take-Off, PTO) im Diagnostic Event Manager (DEM). Die Schnittstelle ist im Header Dem.h deklariert und besitzt die Service-ID 0x79 ([SWS_Dem_00627]).
- Parameter: Der Eingangsparameter
PtoStatus(Typboolean) übergibt den Status des Nebenabtriebs, wobeiTRUEfür aktiv undFALSEfür inaktiv steht ([SWS_Dem_00627]). Ein-/Ausgangsparameter oder Ausgangsparameter sind nicht vorhanden. - Rückgabewert: Der Rückgabetyp ist
Std_ReturnType. Die Funktion liefertE_OK, wenn der neue PTO-Status vom DEM übernommen wurde, undE_NOT_OKin allen anderen Fällen ([SWS_Dem_00627]).
Nebenläufigkeit und Einschränkungen
Die Funktion arbeitet synchron und ist als nicht reentrant (Non Reentrant) spezifiziert ([SWS_Dem_00627]).
Systemkontext und Konfiguration
Die Schnittstelle wird ausschließlich in OBD-relevanten Steuergeräten benötigt ([SWS_Dem_00627]). Sie steht nur dann zur Verfügung, wenn der Konfigurationsparameter DemGeneral.DemOBDSupport nicht auf DEM_OBD_NO_OBD_SUPPORT gesetzt ist ([SWS_Dem_00627]).
Dieser Text wurde von einer KI generiert und basiert auf den Spezifikationen des Moduls DEM in AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I1)
function Dem_ReadDataOfPID01 [SWS_Dem_01167] 📄 PDF
Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);
Service to report the value of PID $01 computed by the Dem. API is needed in OBD relevant ECUs only
Verwendung und Parameter
Die synchrone Funktion Dem_ReadDataOfPID01 (Service-ID 0xb3) dient dazu, den vom Diagnostic Event Manager (DEM) berechneten Wert des PID $01 abzufragen [SWS_Dem_01167]. Die Schnittstelle wird über den Header Dem.h bereitgestellt [SWS_Dem_01167]. Als Ausgabeparameter erwartet die Funktion PID01value, der als Zeiger auf einen Puffer übergeben wird [SWS_Dem_01167]. Dieser Puffer muss zwingend von der aufrufenden Applikation mit einer festen Größe von 4 Bytes alloziert und bereitgestellt werden, um die berechneten Daten aufzunehmen [SWS_Dem_01167].
Fehlerbehandlung und Rückgabewerte
Als Rückgabetyp liefert die Schnittstelle formal Std_ReturnType, gibt jedoch laut Spezifikation ausnahmslos E_OK zurück [SWS_Dem_01167]. Der Fehlerwert E_NOT_OK tritt niemals auf [SWS_Dem_01167]. Es sind für diese Schnittstelle weder spezifische Fehlercodes noch Meldungen an das DET oder DEM spezifiziert [SWS_Dem_01167].
Nebenläufigkeit und Einschränkungen
Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dem_01167]. Aufrufer müssen daher sicherstellen, dass keine gleichzeitigen Aufrufe stattfinden. Zudem ist die API funktional beschränkt und wird ausschließlich in Steuergeräten mit OBD-Relevanz benötigt [SWS_Dem_01167].
Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
function Dem_GetDataOfPID21 [SWS_Dem_01093] 📄 PDF
Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);
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)
function Dem_SetDataOfPID21 [SWS_Dem_00735] 📄 PDF
Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);
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)
function Dem_SetDataOfPID31 [SWS_Dem_00736] 📄 PDF
Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);
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)
function Dem_SetDataOfPID4D [SWS_Dem_00737] 📄 PDF
Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);
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)
function Dem_SetDataOfPID4E [SWS_Dem_00738] 📄 PDF
Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);
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)
function Dem_GetCycleQualified [SWS_Dem_00740] 📄 PDF
Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);
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)
function Dem_SetCycleQualified [SWS_Dem_91001] 📄 PDF
Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);
Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.
function Dem_GetDTCSeverityAvailabilityMask [SWS_Dem_01168] 📄 PDF
Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);
Gets the DTC Severity availability mask.
function Dem_GetB1Counter [SWS_Dem_01169] 📄 PDF
Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);
Service to report the value of the B1 counter computed by the Dem. API is needed in WWH-OBD relevant ECUs only
function Dem_SetDTR [SWS_Dem_00765] 📄 PDF
Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);
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)
function Dem_CallbackEventSyncStorageProcessed [SWS_Dem_91042] 📄 PDF
Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);
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
Die Callback-Funktion Dem_CallbackEventSyncStorageProcessed wird synchron vom Diagnostic Event Manager (DEM) aufgerufen, sobald die interne Verarbeitung von Dem_SetEventFailedWithSyncFreezeFrame abgeschlossen ist ([SWS_Dem_91042]). Sie teilt der aufrufenden Komponente mit, dass ein weiterer Aufruf von Dem_SetEventFailedWithSyncFreezeFrame für dieselbe Ereignis-ID vom DEM verarbeitet werden kann ([SWS_Dem_91042]).
Für die Verwendung und Einbindung gelten folgende Schnittstellen- und Ausführungseigenschaften:
- Parameter und Rückgabewert: Die Schnittstelle besitzt weder Eingabe-, Ausgabe- noch Ein-/Ausgabeparameter ([SWS_Dem_91042]). Der Rückgabetyp ist
Std_ReturnType, wobei aus Gründen der RTE-Kompatibilität einzig der RückgabewertE_OKzulässig ist und geliefert wird ([SWS_Dem_91042]). - Nebenläufigkeit: Die Funktion ist als reentrant spezifiziert ([SWS_Dem_91042]).
- Fehlerbehandlung: Es sind keine spezifischen Fehlercodes oder Meldungen an das Entwicklungsfehler-Tracking (DET) vorgesehen ([SWS_Dem_91042]).
Hinsichtlich des Zusammenspiels und der Konfiguration besteht eine feste Voraussetzung: Dem_CallbackEventSyncStorageProcessed darf ausschließlich für Diagnoseereignisse konfiguriert werden, deren Parameter DemEventReportingType auf IMMEDIATE_FAIL_AND_SYNCHRONOUS_PROCESSING gesetzt ist ([SWS_Dem_01356]). Zudem ist das Element im Release R20-11 mit dem Status draft annotiert ([SWS_Dem_91042], [SWS_Dem_01356]).
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.
Implementer's Guide folgt (Komplexität I2)
function Dem_MainFunction [SWS_Dem_00266] 📄 PDF
void Dem_MainFunction (void);
Processes all not event based Dem internal functions.
Die Basisfunktion Dem_MainFunction besitzt die Signatur void Dem_MainFunction(void) mit der Service-ID 0x55 und wird über die Header-Datei SchM_Dem.h bereitgestellt ([SWS_Dem_00266]). Sie nimmt keine Parameter entgegen, liefert keinen Rückgabewert und dient der Ausführung sämtlicher nicht-ereignisbasierter interner Abläufe des DEM-Moduls ([SWS_Dem_00266], [SWS_Dem_00125]).
Für den Aufrufkontext und die Fehlerbehandlung gelten besondere Ausnahmen im Lebenszyklus des Moduls: Ist die Entwicklungserkennung DemDevErrorDetect auf TRUE gesetzt, führt der Aufruf regulärer DEM-Schnittstellen vor der vollständigen Initialisierung zur Meldung des Fehlers DEM_E_UNINIT; Dem_MainFunction ist von dieser Fehlererzeugung jedoch ausdrücklich ausgenommen ([SWS_Dem_00124]). In gleicher Weise ist die Funktion nach dem Aufruf von Dem_Shutdown von der Fehlermeldung DEM_E_UNINIT befreit, bis Dem_Init erneut aufgerufen wird ([SWS_Dem_00368]).
Im Zusammenspiel mit dem Fehlerspeicher steuert die Funktion maßgeblich die Erfassung und Pufferung von Diagnosedaten:
- Ist
DemEnvironmentDataCaptureaufDEM_CAPTURE_ASYNCHRONOUS_TO_REPORTINGkonfiguriert (bezogen aufDemPrimaryMemoryoderDemUserDefinedMemory), müssen ereignisspezifische Freeze-Frame-Daten ([SWS_Dem_00461]) und Extended-Data-Datensätze ([SWS_Dem_01081]) spätestens im nächsten Zyklus vonDem_MainFunctionerfasst werden. - Ist
DemEnvironmentDataCaptureaufDEM_CAPTURE_SYNCHRONOUS_TO_REPORTINGgesetzt, reiht das DEM-Modul die Umgebungsdaten bis zum nächsten Aufruf vonDem_MainFunctionin eine Warteschlange ein ([SWS_Dem_01083]). Das Modul puffert dabei mindestens die konfigurierte Anzahl gemäßDemMaxNumberEventEntryEventBuffer; bei voller Warteschlange werden die Daten bei der Ereignisabarbeitung innerhalb vonDem_MainFunctionerfasst ([SWS_Dem_01083]).
Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation AUTOSAR Classic Release R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
type Dem_ComponentIdType [SWS_Dem_01114] 📄 PDF
Identification of a DemComponent by assigned ComponentId. The ComponentId is automatically assigned by the Dem.
type Dem_ConfigType [SWS_Dem_00924] 📄 PDF
This type of the external data structure shall contain the post build initialization data for the Dem.
type Dem_DTCKindType [SWS_Dem_00932] 📄 PDF
This type is used to filter DTCs for their kind.
type Dem_DTCRequestType [SWS_Dem_00935] 📄 PDF
This type is used to request a DTC with specific attributes.
Verwendung und Wertebereich
Der Datentyp Dem_DTCRequestType ist von uint8 abgeleitet und über den Header Dem.h verfügbar [SWS_Dem_00935]. Er dient dazu, einen Diagnostic Trouble Code (DTC) anhand spezifischer zeitlicher Attribute anzufordern [SWS_Dem_00935].
Der zulässige Wertebereich umfasst folgende Enumerationswerte [SWS_Dem_00935]:
DEM_FIRST_FAILED_DTC(0x01): Fordert den zeitlich zuerst fehlgeschlagenen DTC an.DEM_MOST_RECENT_FAILED_DTC(0x02): Fordert den zuletzt fehlgeschlagenen DTC an.DEM_FIRST_DET_CONFIRMED_DTC(0x03): Fordert den zuerst als bestätigt erkannten DTC an.DEM_MOST_REC_DET_CONFIRMED_DTC(0x04): Fordert den zuletzt als bestätigt erkannten DTC an.
Zusammenspiel, Nebenläufigkeit und Fehlerbehandlung
Der Typ wird als Eingangsparameter DTCRequest der synchronen Funktion Dem_GetDTCByOccurrenceTime übergeben [SWS_Dem_00218]. Über diesen Parameter wird festgelegt, nach welchem Kriterium der DTC abgefragt werden soll [SWS_Dem_00218]. Das Ergebnis wird im UDS-Format über den Ausgabeparameter DTC zurückgeliefert [SWS_Dem_00218].
Die Schnittstelle ist für unterschiedliche Aufrufer über verschiedene ClientId-Werte reentrant, für dieselbe ClientId jedoch nicht reentrant [SWS_Dem_00218]. Mögliche Rückgabewerte sind E_OK bei erfolgreicher Abfrage, E_NOT_OK bei Fehlern sowie DEM_NO_SUCH_ELEMENT, falls kein passender Eintrag gespeichert ist [SWS_Dem_00218]. Weicht das Funktionsergebnis von DEM_OCCURR_OK ab, enthält der Parameter DTC keine gültigen Daten [SWS_Dem_00218].
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
type Dem_DTCTranslationFormatType [SWS_Dem_00936] 📄 PDF
DTC translation format as defined in ISO14229-1.
type Dem_J1939DcmDTCStatusFilterType [SWS_Dem_00945] 📄 PDF
The type to distinguish which DTCs should be filtered.
Verwendung und Wertebereich
Der Typ Dem_J1939DcmDTCStatusFilterType ist ein auf uint8 basierender Aufzählungstyp, der über die Header-Datei Dem.h bereitgestellt wird [SWS_Dem_00945]. Er dient dazu festzulegen, nach welchem J1939-Status Diagnose-Fehlercodes (DTCs) bei Filteroperationen unterschieden und selektiert werden sollen [SWS_Dem_00945].
Folgende Statusfilter-Werte sind spezifiziert:
DEM_J1939DTC_ACTIVE(0): Filtert auf aktive Fehlercodes [SWS_Dem_00945].DEM_J1939DTC_PREVIOUSLY_ACTIVE(1): Filtert auf zuvor aktive Fehlercodes [SWS_Dem_00945].DEM_J1939DTC_PENDING(2): Filtert auf anstehende Fehlercodes [SWS_Dem_00945].DEM_J1939DTC_PERMANENT(3): Filtert auf permanente Fehlercodes [SWS_Dem_00945].DEM_J1939DTC_CURRENTLY_ACTIVE(4): Filtert auf aktuell aktive Fehlercodes [SWS_Dem_00945].
Zusammenspiel und Aufrufkontext
Der Filtertyp wird als Übergabeparameter DTCStatusFilter in der Schnittstelle Dem_J1939DcmSetDTCFilter verwendet [SWS_Dem_00970]. Die Funktion arbeitet synchron und stellt den Filter unter Berücksichtigung von Fehlerkategorie (DTCKind), Speicherursprung (DTCOrigin) und der jeweiligen ClientId für den J1939-Ereignisspeicher ein [SWS_Dem_00970]. Der Aufruf dürfte als Interpretation typischerweise aus dem Diagnose-Kommunikationsmanager für J1939 erfolgen. Frage Q-898d508b7b341ef8 (offen)
Nebenläufigkeit und Fehlerbehandlung
Der Dienst Dem_J1939DcmSetDTCFilter ist reentrant für unterschiedliche ClientId-Werte, jedoch explizit nicht reentrant für dieselbe ClientId [SWS_Dem_00970]. Eine erfolgreiche Filterkonfiguration wird vom Dienst mit dem Rückgabewert E_OK quittiert [SWS_Dem_00970].
Dieser Text wurde von einer KI auf Basis der Spezifikationsdokumente erstellt.
Implementer's Guide folgt (Komplexität I1)
type Dem_J1939DcmSetClearFilterType [SWS_Dem_00946] 📄 PDF
The type to distinguish which DTCs gets cleared
type Dem_J1939DcmSetFreezeFrameFilterType [SWS_Dem_00947] 📄 PDF
The type to distinguish which DTCs gets cleared
type Dem_J1939DcmLampStatusType [SWS_Dem_00948] 📄 PDF
For details refer SAE J1939-73
Der Strukturtyp Dem_J1939DcmLampStatusType ist gemäß [SWS_Dem_00948] in Dem.h deklariert und dient der Erfassung des J1939-Lampenstatus nach SAE J1939-73. Die Datenstruktur bündelt zwei Statusinformationen als uint8-Elemente: LampStatus für den aktuellen Lampenzustand und FlashLampStatus für das zugehörige Blinkverhalten.
In der J1939-DTC-Filterung des Diagnostic Event Managers fungiert der Typ als Zeiger-Ausgabeparameter in zwei synchronen Schnittstellen:
- Über
Dem_J1939DcmSetDTCFilter([SWS_Dem_00970]) wird beim Initialisieren des DTC-Filters für einen spezifischen J1939-Eventspeicher (adressiert überClientId) der anfängliche Lampenstatus abgefragt. - Über
Dem_J1939DcmGetNextDTCwithLampStatus([SWS_Dem_00975]) wird die Struktur für jeden passenden Fehlerspeichereintrag iterativ mit dem zugehörigen Lampenstatus befüllt.
Bei der Fehlerbehandlung ist zwingend zu beachten, dass Dem_J1939DcmGetNextDTCwithLampStatus laut [SWS_Dem_00975] nur dann valide Werte in den Ausgabeparameter schreibt, wenn der Rückgabewert der Funktion DEM_FILTERED_OK lautet. Liefert der Aufruf einen anderen Rückgabewert, enthält die Struktur keine gültigen Daten.
Hinsichtlich Nebenläufigkeit und Aufrufbedingungen besitzt die Struktur selbst keinen internen Schutz. Die Reentranz richtet sich nach dem jeweiligen Aufrufkontext: Dem_J1939DcmSetDTCFilter ist für unterschiedliche Client-IDs reentrant, jedoch nicht-reentrant für dieselbe ClientId ([SWS_Dem_00970]). Der iterative Abruf über Dem_J1939DcmGetNextDTCwithLampStatus ist vollständig nicht-reentrant spezifiziert ([SWS_Dem_00975]).
Dieser Text wurde von einer KI generiert und basiert auf den Spezifikationen des AUTOSAR-Releases R20-11.
Implementer's Guide folgt (Komplexität I1)
type Dem_J1939DcmDiagnosticReadiness1Type [SWS_Dem_00949] 📄 PDF
This structure represents all data elemets of the DM05 message. The encoding shall be done acording SAE J1939-73
Die Struktur Dem_J1939DcmDiagnosticReadiness1Type bildet sämtliche Datenelemente der J1939-Diagnosenachricht DM05 ab und ist gemäß [SWS_Dem_00949] in der Header-Datei Dem.h definiert. Die Codierung der Felder erfolgt nach SAE J1939-73 [SWS_Dem_00949].
Die Struktur umfasst acht Datenfelder vom Typ uint8, die zusammen einen 8-Byte-Puffer für die Diagnosebereitschaft 1 (Diagnostic Readiness 1) darstellen [SWS_Dem_00949], [SWS_Dem_00982]:
ActiveTroubleCodes: Anzahl aktiver DTCs [SWS_Dem_00949].PreviouslyActiveDiagnosticTroubleCodes: Anzahl zuvor aktiver DTCs [SWS_Dem_00949].OBDCompliance: OBD-Konformität [SWS_Dem_00949].ContinuouslyMonitoredSystemsSupport_Status: Unterstützung und Status kontinuierlich überwachter Systeme [SWS_Dem_00949].NonContinuouslyMonitoredSystemsSupport5undNonContinuouslyMonitoredSystemsSupport6: Systemunterstützung nicht kontinuierlich überwachter Systeme (Byte 5 und 6) [SWS_Dem_00949].NonContinuouslyMonitoredSystemsStatus7undNonContinuouslyMonitoredSystemsStatus8: Status nicht kontinuierlich überwachter Systeme (Byte 7 und 8) [SWS_Dem_00949].
Das primäre Zusammenspiel erfolgt mit der synchronen API Dem_J1939DcmReadDiagnosticReadiness1 (verfügbar über Dem_J1939Dcm.h) [SWS_Dem_00982]. Aufrufer übergeben einen Zeiger auf eine Instanz von Dem_J1939DcmDiagnosticReadiness1Type über den Ausgabeparameter DataValue zusammen mit der jeweiligen ClientId für den J1939-Ereignisspeicher [SWS_Dem_00982].
Hinsichtlich Nebenläufigkeit und Fehlerbehandlung gilt beim lesenden Zugriff: Die abfragende Funktion liefert E_OK bei erfolgreicher Berechnung und Bereitstellung der DM05-Werte durch das DEM sowie E_NOT_OK im Fehlerfall [SWS_Dem_00982]. Der Zugriff ist für unterschiedliche ClientId-Werte reentrant, jedoch nicht reentrant für dieselbe ClientId [SWS_Dem_00982]. Es dürfte daher erforderlich sein, Instanzen dieses Typs im Kontext desselben Clients vor gleichzeitigen Aufrufen abzusichern. Frage Q-7613ded1aa18fd2b (offen)
Dieser Text wurde von einer KI erstellt. Belege stammen ausschließlich aus den Spezifikationen des Releases R20-11.
type Dem_J1939DcmDiagnosticReadiness2Type [SWS_Dem_00950] 📄 PDF
This structure represents all data elemets of the DM21 message. The encoding shall be done acording SAE J1939-73
Der Strukturtyp Dem_J1939DcmDiagnosticReadiness2Type repräsentiert die Datenelemente der Diagnosenachricht DM21 (Diagnostic Readiness 2) gemäß SAE J1939-73 und wird über die Header-Datei Dem.h deklariert [SWS_Dem_00950]. Die Struktur fasst vier 16-Bit-Zähler (uint16) in einem 8-Byte-Puffer zusammen [SWS_Dem_00950], [SWS_Dem_00983]:
DistanceTraveledWhileMILisActivated: Kumulierte Wegstrecke in Kilometern bei aktivierter Fehlerfunktionsanzeige (MIL) [SWS_Dem_00950].DistanceSinceDTCsCleared: Kumulierte Wegstrecke seit dem Zurücksetzen emissionsbezogener Diagnose-Fehlercodes (DTCs) [SWS_Dem_00950].MinutesRunbyEngineWhileMILisActivated: Kumulierte Motorlaufzeit in Minuten bei aktiver MIL [SWS_Dem_00950].TimeSinceDiagnosticTroubleCodesCleared: Kumulierte Motorlaufzeit seit dem Löschen emissionsbezogener DTCs [SWS_Dem_00950].
Verwendet wird dieser Typ als Ausgabepuffer DataValue des synchronen Service Dem_J1939DcmReadDiagnosticReadiness2, der in Dem_J1939Dcm.h definiert ist [SWS_Dem_00983]. Beim Aufruf übergibt das J1939-DCM eine ClientId zur Adressierung des spezifischen Ereignisspeichers im DEM [SWS_Dem_00983]. Die Funktion ermittelt die aktuellen Zählerstände und bestätigt die erfolgreiche Bereitstellung mit dem Rückgabewert E_OK beziehungsweise signalisiert Fehler mit E_NOT_OK [SWS_Dem_00983].
Bezüglich der Nebenläufigkeit ist der auslesende Service für unterschiedliche ClientId-Werte reentrant, für identische ClientId-Werte jedoch nicht reentrant [SWS_Dem_00983].
Dieser Nutzungshinweis wurde automatisch durch eine KI generiert. Sämtliche Aussagen basieren ausschließlich auf dem bereitgestellten Spezifikationsumfang von AUTOSAR R20-11.
type Dem_J1939DcmDiagnosticReadiness3Type [SWS_Dem_00951] 📄 PDF
This structure represents all data elemets of the DM26 message. The encoding shall be done acording SAE J1939-73
Der Strukturtyp Dem_J1939DcmDiagnosticReadiness3Type bildet gemäß [SWS_Dem_00951] sämtliche Datenelemente der Diagnosenachricht DM26 (Diagnostic Readiness 3) ab. Die Codierung der enthaltenen Felder richtet sich verbindlich nach SAE J1939-73 [SWS_Dem_00951].
Die Struktur umfasst einen Datenpuffer von 8 Bytes und setzt sich aus folgenden Einzelfeldern zusammen [SWS_Dem_00951]:
TimeSinceEngineStart(uint16): Motorlaufzeit seit Einschalten der Zündung.NumberofWarmupsSinceDTCsCleared(uint8): Anzahl der OBD-Warmlaufzyklen seit dem Löschen aller Fehlercodes.ContinuouslyMonitoredSystemsEnableCompletedStatus(uint8): Freigabe- und Abschlussstatus kontinuierlich überwachter Systeme.NonContinuouslyMonitoredSystemsEnableStatus5undNonContinuouslyMonitoredSystemsEnableStatus6(jeweilsuint8): Freigabestatus nicht-kontinuierlicher Monitore im aktuellen Zyklus (Byte 5 und 6).NonContinuouslyMonitoredSystems7undNonContinuouslyMonitoredSystems8(jeweilsuint8): Abschlussstatus nicht-kontinuierlicher Monitore im aktuellen Zyklus (Byte 7 und 8).
Verwendung und Zusammenspiel: Eine Instanz dieses Typs wird als Ausgabeparameter DataValue an die synchrone Funktion Dem_J1939DcmReadDiagnosticReadiness3 übergeben [SWS_Dem_00770]. Das DEM ermittelt die DM26-Werte für die übergebene ClientId des J1939-Ereignisspeichers und liefert als Rückgabewert E_OK bei erfolgreicher Ausführung oder E_NOT_OK bei einem Fehler [SWS_Dem_00770].
Nebenläufigkeit und Einschränkungen: Der auslesende Funktionsaufruf ist für unterschiedliche ClientId-Werte reentrant, darf jedoch für dieselbe ClientId nicht nebenläufig erfolgen [SWS_Dem_00770]. Als primärer Aufrufer dürfte das Modul J1939Dcm fungieren. Frage Q-e001ad1880fee789 (offen) Der Typ ist in Dem.h deklariert [SWS_Dem_00951], während der zugehörige Leseservice über Dem_J1939Dcm.h bereitgestellt wird [SWS_Dem_00770].
Dieser Nutzungshinweis basiert auf den Festlegungen der AUTOSAR-Spezifikation für den Diagnostic Event Manager.
type Dem_DataType [SWS_Dem_91026] 📄 PDF
Data type definition for external data elements
type Dem_DataPrimitiveType [SWS_Dem_91033] 📄 PDF
type Dem_DataArrayType [SWS_Dem_91034] 📄 PDF
Array data type definition for external data elements
type Dem_DTCOriginType [SWS_Dem_00934] 📄 PDF
This enum is used to define the location of the events. The definition and use of the different memory types is OEM-specific.
type Dem_DebounceResetStatusType [SWS_Dem_00927] 📄 PDF
This type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().
Der Datentyp Dem_DebounceResetStatusType steuert das Verhalten interner Entprellzähler und Entprelltimer im Diagnostic Event Manager [SWS_Dem_00927]. Er ist als uint8 definiert, über die Header-Datei Rte_Dem_Type.h verfügbar und stellt zwei definierte Steuerzustände bereit [SWS_Dem_00927]:
DEM_DEBOUNCE_STATUS_FREEZE(0x00): Friert den internen Entprellzähler oder Entprelltimer des adressierten Events ein [SWS_Dem_00927].DEM_DEBOUNCE_STATUS_RESET(0x01): Setzt den internen Entprellzähler oder Entprelltimer zurück [SWS_Dem_00927].
Werte im Bereich von 0x02 bis 0xFF sind reserviert [SWS_Dem_00927]. Der Typ wird als Parameter DebounceResetStatus an die Service-Funktion Dem_ResetEventDebounceStatus() übergeben [SWS_Dem_00683]. Dieser Aufruf erfolgt synchron und steuert den internen Entprellstatus, ohne dabei die Qualifizierung des jeweiligen Events direkt zu beeinflussen [SWS_Dem_00683].
Bezüglich der Nebenläufigkeit ist Dem_ResetEventDebounceStatus() reentrant für unterschiedliche EventId-Werte, darf jedoch für dieselbe EventId nicht nebenläufig aufgerufen werden [SWS_Dem_00683]. BSW-Module können die Schnittstelle nutzen, sobald die Basisinitialisierung Dem_PreInit abgeschlossen ist [SWS_Dem_00683]. Für Software-Komponenten dürfte die Bereitstellung über portspezifische Schnittstellen wie DiagnosticMonitor erfolgen, welche die Modifikation von Event-Informationen erlauben [SWS_Dem_00598]. Frage Q-32468003718a4933 (offen) Im Fehlerfall liefert die aufrufende Funktion E_NOT_OK, was laut Spezifikation ausschließlich bei Entwicklungsfehlern auftritt [SWS_Dem_00683].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.
Implementer's Guide folgt (Komplexität I1)
type Dem_DTRControlType [SWS_Dem_00941] 📄 PDF
Control parameter for the interpretation of the reported test results.
type Dem_EventIdType [SWS_Dem_00925] 📄 PDF
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.
type Dem_EventStatusType [SWS_Dem_00926] 📄 PDF
This type contains all monitor test result values, which can be reported via Dem_SetEventStatus().
Der Datentyp Dem_EventStatusType ist aus uint8 abgeleitet und steht über den Header Rte_Dem_Type.h bereit ([SWS_Dem_00926]). Er dient Software-Components (SW-Cs) sowie BSW-Modulen dazu, die Testergebnisse eines Diagnosemonitors an das DEM zu melden ([SWS_Dem_00926], [SWS_Dem_00183]).
Der Typ definiert folgende Monitor-Ergebniswerte ([SWS_Dem_00926]):
DEM_EVENT_STATUS_PASSED(0x00) undDEM_EVENT_STATUS_FAILED(0x01): Übermittlung qualifizierter Testergebnisse (bestanden bzw. fehlgeschlagen).DEM_EVENT_STATUS_PREPASSED(0x02) undDEM_EVENT_STATUS_PREFAILED(0x03): Vorläufige, unqualifizierte Monitor-Testergebnisse, deren Entprellung intern im DEM erfolgt.DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED(0x04): Triggert die Speicherung von FreezeFrames und ExtendedDataRecords bei Erreichen des FDC-Schwellenwerts (ON_FDC_THRESHOLD).- Die Wertebereiche 0x05 bis 0xFF sind reserviert.
Verwendet wird der Typ als Eingabeparameter EventStatus in den BSW-APIs Dem_SetEventStatus() ([SWS_Dem_00183]) und Dem_SetEventStatusWithMonitorData() ([SWS_Dem_91037]) sowie über die Schnittstellen DiagnosticMonitor ([SWS_Dem_00598]) und DiagnosticMonitor_MonitorData ([SWS_Dem_91038]). Der Aufruf erfolgt synchron oder asynchron ([SWS_Dem_00183], [SWS_Dem_91037]).
Die Funktionen liefern Std_ReturnType zurück (E_OK bei Erfolg, E_NOT_OK bei Fehlern oder Ablehnung), wobei aufrufende BSW-Module den Rückgabewert von Dem_SetEventStatus() ignorieren dürfen ([SWS_Dem_00183]). Hinsichtlich Nebenläufigkeit sind die Aufrufe für unterschiedliche EventId reentrant, für dieselbe EventId jedoch nicht reentrant ([SWS_Dem_00183], [SWS_Dem_91037]). Zudem hängt die Verfügbarkeit der Ziel-APIs von der Konfiguration des Parameters DemEventReportingType ab ([SWS_Dem_00183], [SWS_Dem_91037]).
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Verbindlich ist die AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
type Dem_DTCFormatType [SWS_Dem_00933] 📄 PDF
This type is used to select the format of the DTC value.
type Dem_InitMonitorReasonType [SWS_Dem_00942] 📄 PDF
(Re-)Initialization reason returned by the callback
Verwendung und Wertebereich
Der Datentyp Dem_InitMonitorReasonType basiert auf uint8 und ist über Rte_Dem_Type.h verfügbar [SWS_Dem_00942]. Er kennzeichnet die konkrete Ursache für eine (Re-)Initialisierung eines Diagnosemonitors, damit dieser die entsprechende Initialisierungsroutine für das betroffene Ereignis auswählen und durchführen kann [SWS_Dem_00942] [SWS_Dem_00256].
Für den Typ sind folgende Werte definiert [SWS_Dem_00942]:
DEM_INIT_MONITOR_CLEAR(0x01): Das Diagnoseereignis wurde gelöscht; alle internen Werte und Zustände werden zurückgesetzt.DEM_INIT_MONITOR_RESTART(0x02): Der Operationszyklus des Ereignisses wurde neu gestartet.DEM_INIT_MONITOR_REENABLED(0x03): Freigabebedingungen (Enable Conditions) oder DTC-Einstellungen wurden wieder aktiviert.DEM_INIT_MONITOR_STORAGE_REENABLED(0x04): Eine Speicherbedingung (Storage Condition) wurde wieder aktiviert.
Aufrufkontext und Schnittstellen
Der Wert wird synchron und reentrant als Eingabeparameter InitMonitorReason über den ereignisspezifischen C-Callback <Module>_DemInitMonitorFor<EventName>() übergeben, der in Dem_Externals.h deklariert ist [SWS_Dem_00256]. Existiert eine Port-Schnittstelle zur Software-Komponente, erfolgt die Übergabe an die Operation InitMonitorForEvent des Service-Interfaces CallbackInitMonitorForEvent [SWS_Dem_00613].
Fehlerbehandlung und Rückgabewerte
Beim C-Callback ist der Rückgabewert vom Typ Std_ReturnType ungenutzt und dient lediglich der Kompatibilität mit der entsprechenden RTE-Operation [SWS_Dem_00256]. Wird die Schnittstelle über die RTE aufgerufen, liefert die Operation InitMonitorForEvent die Fehlerwerte E_OK (erfolgreich) oder E_NOT_OK (fehlgeschlagen) zurück [SWS_Dem_00613]. Eigene Fehlercodes oder DET-/DEM-Meldungen sind für diesen Datentyp nicht definiert.
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
type Dem_IumprDenomCondIdType [SWS_Dem_00943] 📄 PDF
This type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.
type Dem_IumprDenomCondStatusType [SWS_Dem_00944] 📄 PDF
This type contains all possible states of an additional IUMPR denominator condition to be broadcasted among OBD-relevant ECUs.
Verwendung
Der Typ Dem_IumprDenomCondStatusType basiert auf uint8 und definiert die möglichen Statuszustände einer zusätzlichen IUMPR-Nenner-Bedingung zur Verteilung zwischen OBD-relevanten Steuergeräten [SWS_Dem_00944]. Der Typ ist über Rte_Dem_Type.h verfügbar und umfasst folgende Werte [SWS_Dem_00944]:
DEM_IUMPR_DEN_STATUS_NOT_REACHED(0x00): Die Bedingung ist (noch) nicht erfüllt.DEM_IUMPR_DEN_STATUS_REACHED(0x01): Die Bedingung ist erfüllt.DEM_IUMPR_DEN_STATUS_INHIBITED(0x02): Die Bedingung ist gesperrt und kann nicht erreicht werden.
Werte im Bereich von 0x03 bis 0xFF sind reserviert [SWS_Dem_00944].
Zusammenspiel und Service-Schnittstellen
Im Rahmen des Service-Interfaces IUMPRDenominatorCondition wird der Status für Bedingungen wie General Denominator, Cold start, EVAP oder 500mi übermittelt [SWS_Dem_00733] [SWS_Dem_00742]. Es existieren zwei zentrale Service-Funktionen:
Dem_SetIUMPRDenCondition: Leitet den Status über den EingabeparameterConditionStatussynchron oder asynchron an das DEM eines Steuergeräts weiter [SWS_Dem_00733].Dem_GetIUMPRDenCondition: Fragt den Status synchron über den Zeiger-AusgabeparameterConditionStatusvon dem Steuergerät ab, auf dem die Bedingungen berechnet werden [SWS_Dem_00734].
Fehlerbehandlung und Nebenläufigkeit
Beide Funktionen sind als reentrant spezifiziert [SWS_Dem_00733] [SWS_Dem_00734]. Bei erfolgreicher Ausführung geben die APIs E_OK zurück; schlägt das Setzen oder Abrufen fehl oder kann die Bedingung nicht akzeptiert werden, liefern sie E_NOT_OK [SWS_Dem_00733] [SWS_Dem_00734].
Dieser Nutzungshinweis wurde automatisch durch eine KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
type Dem_MaxDataValueType [SWS_Dem_01072] 📄 PDF
type Dem_MonitorDataType [SWS_Dem_91036] 📄 PDF
This type is used to pass monitoring data to the Dem.
type Dem_IndicatorStatusType [SWS_Dem_00930] 📄 PDF
Indicator mode used by Dem_GetIndicatorStatus().
Der Datentyp Dem_IndicatorStatusType basiert auf uint8 und wird über Rte_Dem_Type.h bereitgestellt [SWS_Dem_00930]. Er bildet die aus dem UDS-Status abgeleiteten Betriebsmodi von Warnanzeigen ab [SWS_Dem_00205]. Das Spektrum der Zustände reicht von DEM_INDICATOR_OFF (0x00) über DEM_INDICATOR_CONTINUOUS (0x01), DEM_INDICATOR_BLINKING (0x02), DEM_INDICATOR_BLINK_CONT (0x03), DEM_INDICATOR_SLOW_FLASH (0x04), DEM_INDICATOR_FAST_FLASH (0x05) und DEM_INDICATOR_ON_DEMAND (0x06) bis hin zu DEM_INDICATOR_SHORT (0x07) [SWS_Dem_00930].
Eingesetzt wird der Typ als Ausgabeparameter in der synchronen C-Funktion Dem_GetIndicatorStatus() [SWS_Dem_00205] sowie in der Operation GetIndicatorStatus des Service-Ports IndicatorStatus [SWS_Dem_00606]. Für jeden konfigurierten Indikator stellt die DEM-Service-Komponente einen eigenen Port bereit, wobei die jeweilige IndicatorId als portdefiniertes Argument fungiert [SWS_Dem_00606]. Die abfragende Software-Komponente dürfte den ermittelten Status typischerweise zur Ansteuerung optischer oder akustischer Anzeigeinstrumente verwenden. Frage Q-6bfabb33805bd0e8 (offen)
Aufrufer müssen beachten, dass Dem_GetIndicatorStatus() als nicht reentrant (Non Reentrant) spezifiziert ist [SWS_Dem_00205]. Zudem steht die Abfrage-API nur zur Verfügung, wenn in der Konfiguration mindestens ein Indikator unter DemIndicator hinterlegt ist [SWS_Dem_00205]. Die Operation meldet den Ausführungsstatus über den Rückgabewert Std_ReturnType mit E_OK bei erfolgreicher Auswertung oder E_NOT_OK im Fehlerfall [SWS_Dem_00205][SWS_Dem_00606].
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe im AUTOSAR-Umfeld.
Implementer's Guide folgt (Komplexität I1)
type Dem_PID21valueType [SWS_Dem_01073] 📄 PDF
type Dem_PID31valueType [SWS_Dem_01074] 📄 PDF
type Dem_RatioIdType [SWS_Dem_00940] 📄 PDF
OBD specific ratio Id (related to a specific event, a FID, and an IUMPR group). This type depends on the Dem configuration.
type Dem_PID4DvalueType [SWS_Dem_91028] 📄 PDF
type Dem_PID4EvalueType [SWS_Dem_91029] 📄 PDF
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Dem- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Dem@rel:R20-11#7de9ce73- Content hash
7de9ce73- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticEventManager.pdf#nameddest=SWS_Dem_00177
claude-opus-5-5· 2026-10-13