DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_DiagnosticEventManager FIG-05ca56d3fb843e2c 846 × 820 px 1 Release(s)

Figure 9.3: Sequence diagram of Dem_ClearDTC clearing a single DTC Dem-internally

SHA-256 Inhalts-Fingerabdruck: 05ca56d3fb843e2c2824c394eeae8d7d8c0be72233c0b7bc686dd48062d03c62
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07

1. Diagrammtyp & Architektur-Kontext

  • Klassifikation: UML-Sequenzdiagramm (Interaktionsdiagramm gemäß AUTOSAR BSW-Spezifikationsstandard).
  • Funktionale Einordnung: Detaillierung des Dem-internen Ablaufs zur Bereinigung eines Einzelfehlers (Single DTC Clear), ausgelöst durch den Diagnostic Communication Manager (Dcm) im Kontext von UDS Service 0x14 (ClearDiagnosticInformation).
  • Architektur-Kontext: BSW Diagnostic Services Layer (Interaktion zwischen Dcm, Dem und angebundenen SW-Cs bzw. BSW-Modulen über RTE/C-APIs).

2. Komponenten, Entitäten & Schnittstellen

  • Akteure / Lifelines:
    • Dcm («module»): Diagnostic Communication Manager; Auslöser des Löschauftrags aus der Diagnoseschicht.
    • Dem («module»): Diagnostic Event Manager; führt die Validierung, Pufferbereinigung, Status-Rücksetzung und Speicherfreigabe durch.
    • Mode Requesting SW-C (bzw. Monitor-Owner SW-C): Applikationskomponente, die diagnostische Monitore kapselt.
  • Schnittstellen & Methoden:
    • Inter-Modul-API (Dcm → Dem):
      • Dem_ClearDTC(Std_ReturnType, uint8) (Übergabe von ClientId / DTC-Origin / Selektor; synchroner oder asynchroner Start).
      • Dem_ClearDTC() (Return-Pfad an den Dcm).
    • Dem-interne Operationen (Self-Calls):
      • Process / delete events of EventBuffer(): Verwerfen anstehender Event-Meldungen im internen Puffer zur Konsistenzsicherung.
      • Dem_ResetEventStatus(Std_ReturnType, Dem_EventIdType): Re-Initialisierung des UDS-Statusbytes (Dem_UdsStatusByteType).
      • Dem_ClearPrestoredFreezeFrame(Std_ReturnType, Dem_EventIdType): Freigabe flüchtiger Prestored-Freeze-Frame-Puffer.
      • Clear FreezeFrame data(): Freigabe/Löschen der persistenten Freeze-Frame-Einträge im Fehlerspeicher.
    • Dem → SW-C Schnittstelle (Callback / Port):
      • <Module>_DemInitMonitorFor<EventName>(Std_ReturnType, Dem_InitMonitorReasonType) bzw. Port-Interface InitMonitorForEvent mit Grund DEM_INIT_MONITOR_CLEAR.
      • Xxx_DemInitMonitor{EventId}() (Return-Signal des Monitors).

3. Dynamisches Verhalten & Sequenzablauf

  1. Trigger: Dcm ruft synchron Dem_ClearDTC(...) auf, nachdem eine UDS-Service-0x14-Anforderung für eine spezifische DTC-Nummer empfangen und validiert wurde.
  2. Buffer Flush: Dem leert/verarbeitet den internen Event-Eingangspuffer (Process / delete events of EventBuffer()), um Race Conditions durch zwischenzeitlich gemeldete Monitor-Status zu verhindern.
  3. Event-Status-Reset:
    • Iteration über alle dem DTC zugeordneten Dem_EventIdType-Instanzen (1:N-Mapping zwischen DTC und Events).
    • Ausführung von Dem_ResetEventStatus(...) zur Rücksetzung der UDS-Statusbits (u. a. TestFailed = 0, ConfirmedDTC = 0, PendingDTC = 0).
  4. Prestored Freeze Frame Purge (konditional):
    • Sofern DemPrestoreFreezeFrame == TRUE konfiguriert ist und Daten vorliegen, Aufruf von Dem_ClearPrestoredFreezeFrame(...) für alle zugehörigen EventIDs.
  5. Freeze-Frame-Bereinigung (loop ClearSignalEvents):
    • Schleife über alle relevanten Events zum Löschen der primären/sekundären Freeze-Frame-Datensätze (Clear FreezeFrame data()) aus dem RAM/NVRAM-Spiegelspeicher.
  6. Re-Initialisierung der Monitore (optional / konfigurationsabhängig):
    • Trigger von <Module>_DemInitMonitorFor<EventName>(..., DEM_INIT_MONITOR_CLEAR) an die zuständige SW-C/BSW.
    • Rückmeldung der Komponente via Xxx_DemInitMonitor{EventId}().
  7. Rückmeldung an Dcm: Dem schließt die Funktion ab und meldet den Status (z. B. DEM_CLEAR_OK oder DEM_CLEAR_PENDING) via Return-Pfeil an den Dcm zurück.

4. Normative Relevanz & Entwickler-Hinweise

  • DTC-zu-Event-Kardinalität (1:N): Ein DTC aggregiert häufig mehrere Events. Entwickler müssen sicherstellen, dass Bereinigungen stets atomar über alle verknüpften DemEventParameter iterieren.
  • NVRAM-Latenz & Asynchronität: Das Löschen von Freeze-Frames erfordert NVRAM-Schreibzugriffe (über NvM). In realen Implementierungen blockiert Dem_ClearDTC nicht bis zum NVRAM-Schreibabschluss, sondern arbeitet asynchron mit Rückgabewert DEM_CLEAR_PENDING; der Dcm pollt den Fortschritt zyklisch über Dem_GetJobStatus bzw. Dem_ClearDTC.
  • Entprellung in Applikations-Monitoren: Verwendet eine SW-C eigenes Debouncing (intern/algorithmisch statt Dem-Debounce-Counter), ist das Interface InitMonitorForEvent zwingend erforderlich. Bei Empfang von DEM_INIT_MONITOR_CLEAR müssen Applikationsentwickler ihre internen Fehlerzähler, Integratoren und Zustände unmittelbar auf den Initialwert zurücksetzen.
  • Reentrancy-Restriktionen: Innerhalb des Callbacks DemInitMonitorFor<EventName> dürfen keine blockierenden oder synchron rückkoppelnden Dem-APIs aufgerufen werden, um Rekursionen und Deadlocks im Dem-Zustandsautomaten zu verhindern.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R4.3.1 → R18-10_R4.4.0_R1.5.0 normative Änderung Nachfolger: FIG-6a02c092e9d43765
  • DTC-Selektionsprotokoll (Dcm → Dem): Dem Aufruf von Dem_ClearDTC wurde eine verpflichtende Selektionssequenz vorangestellt, bestehend aus Dem_SelectDTC(Std_ReturnType, uint8, uint32, Dem_DTCFormatType, Dem_DTCOriginType) und Dem_GetDTCSelectionResultForClearDTC(Std_ReturnType, uint8).
  • Freigabeprüfung (Dem → SW-C): Ergänzung des synchronen Prüfaufrufs <Module>_DemClearEventAllowed<ForCondition>(Std_ReturnType, boolean*) an die überwachende SW-C vor Beginn der Löschoperationen.
  • Kontrollfluss / Interaktionsrahmen: Der Schleifenrahmen loop ClearSignalEvents entfällt; stattdessen umschließt ein konditionaler Optionsrahmen opt [Allowed == TRUE] alle internen Bereinigungsschritte und Benachrichtigungen.
  • Akteure / Lifelines: Die Lifeline Mode Requesting SW-C wurde in SW-C implementing the monitoring umbenannt; zusätzlich wurde eine neue Lifeline Any SW-C eingeführt.
  • Status- und Daten-Benachrichtigungen (Dem → Any SW-C): Ergänzung von Trigger status byte related callbacks (e.g. <Module>_DemTriggerOnEventUdsStatus) sowie des Daten-Triggers <Module>_DemTriggerOnEventData(Std_ReturnType, Dem_EventIdType).
  • Dem-interne Bereinigungsoperationen: Verallgemeinerung der Self-Calls: Dem_ResetEventStatus(...) wurde zu reset the events status byte and UDS status byte(); Dem_ClearPrestoredFreezeFrame(...) wurde zu clean prestored FreezeFrame of related events().
  • Rückmeldepfad Monitor-Initialisierung: Der vormals explizit benannte Rückkehrpfad Xxx_DemInitMonitor{EventId}() wurde durch eine unbenannte UML-Antwortnachricht (Dashed Return Arrow) ersetzt.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Mode Requesting SW-C «module» | Dcm | «module» | Dem | Comment: for all relevant EventIDs related to the DTC | Comment: a) for all EventIDs related to the DTC b) optional call depending if Prestored Freezeframe Data is available | Comment: for all relevant EventIDs related to the DTC | Comment: Optional calls to the SW-Component | loop ClearSignalEvents | Dem_ClearDTC(Std_ReturnType, uint8) | Process / delete events of EventBuffer() | Dem_ResetEventStatus(Std_ReturnType, Dem_EventIdType) | Dem_ClearPrestoredFreezeFrame(Std_ReturnType, Dem_EventIdType) | Clear FreezeFrame data() | <Module>_DemInitMonitorFor<EventName>(Std_ReturnType, Dem_InitMonitorReasonType) | Xxx_DemInitMonitor{EventId}() | Dem_ClearDTC()

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.3.1 AUTOSAR_SWS_DiagnosticEventManager S. 367 9.3 Figure 9.3: Sequence diagram of Dem_ClearDTC clearing a single DTC Dem-internally