DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_DiagnosticLogAndTrace FIG-2909e070cd8a5278 897 × 1268 px 1 Release(s)

Figure 9: 4: Buffer overflow indication

SHA-256 Inhalts-Fingerabdruck: 2909e070cd8a527823d79b42f8433de1d20866a0407267015b820e3aa2603621
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

UML-Sequenzdiagramm zur Pufferüberlauf-Erkennung und -Signalisierung (Buffer Overflow Indication) im AUTOSAR-Basissoftwaremodul Diagnostic Log and Trace (DLT). Das Diagramm stellt das Zusammenwirken zwischen einer Software-Komponente (SWC) als Nachrichtenquelle, dem Dlt-Modul, dem General Purpose Timer (Gpt) und dem PDU-Router (PduR) innerhalb der AUTOSAR-Classic-Architektur dar. Es visualisiert den synchronen Aufruf zur Protokollierung bei unzureichender Pufferkapazität sowie die asynchrone zyklische Übertragung der Überlaufmeldung und die Timer-gesteuerte Rücksetzung.

2. Komponenten, Entitäten & Schnittstellen

  • SWC: Software Component, fungiert als Aufrufer des Logging-Dienstes.
  • «module» Dlt: AUTOSAR-Basissoftwaremodul Diagnostic Log and Trace, verarbeitet Protokollnachrichten, verwaltet Kanäle, Puffer und Überlaufzustände.
  • «module» Gpt: General Purpose Timer Modul (als Entität im Diagrammkopf vorhanden, besitzt eine Lebenslinie).
  • «module» PduR: PDU-Router zur Weiterleitung und Übertragung der serialisierten DLT-Nachrichten an unterlagerte Kommunikationsschichten.
  • Schnittstellen & Operationen:
    • Dlt_SendLogMessage(return, sessionId, logInfo, logData, logDataLength): Synchroner API-Aufruf von SWC an Dlt.
    • Interne Dlt-Aktionen: Apply Message filtering(), Select target LogChannel(), CheckMessage length(), Apply LogChannel threshold(), Try to add Message to LogChannelBuffer(), Discard Message(), Set BufferOverflowFlag(), Start BufferOverflowTimer(), MessageSent == TRUE(), Timer DltLogChannelBufferOverflowCheck(start).
    • Zyklische Hauptfunktion: Dlt_TxFunction().
    • PduR-Schnittstelle: PduR_DltTransmit(PduId).

3. Dynamisches Verhalten & Sequenzablauf

  1. Protokollierungsversuch & Pufferüberlauf:
    • Die SWC ruft Dlt_SendLogMessage(return, sessionId, logInfo, logData, logDataLength) auf Dlt auf.
    • Dlt führt sequentielle Prüfungen durch: Apply Message filtering(), Select target LogChannel(), CheckMessage length(), Apply LogChannel threshold().
    • Dlt versucht die Nachricht hinzuzufügen (Try to add Message to LogChannelBuffer()).
    • Bedingung/Zustand: Es ist nicht genügend Pufferplatz vorhanden (! Not enough Buffer available !).
    • Dlt verwirft die Nachricht (Discard Message()), setzt das Überlaufflag (Set BufferOverflowFlag()) und startet den Überlauftimer (Start BufferOverflowTimer()).
    • Die Funktion kehrt zur SWC zurück.
  2. Zyklische Sendeschleife (loop):
    • In der zyklischen Übertragungsfunktion Dlt_TxFunction() wird der Zustand über einen alt-Block geprüft:
      • Fall [BufferOverflowFlag == 1]:
        • Verschachtelter alt-Block (alt OverFlow Message sent):
          • Fall [Buffer Overflow Message sent == FALSE]: Dlt sendet die Überlaufmeldung (Send Message "BufferOverflow") via PduR_DltTransmit(PduId) an den PduR. Nach erfolgreicher Rückmeldung wird intern MessageSent == TRUE() gesetzt und der Überwachungs-Timer Timer DltLogChannelBufferOverflowCheck(start) gestartet.
          • Fall [Buffer Overflow Message sent == TRUE]: Wenn der Überlauftimer abgelaufen ist (If DltLogChannelBufferOverflowTimer expired: Reset BufferOverflowFlag AND Message Sent = FALSE()), setzt Dlt das Flag BufferOverflowFlag sowie Message Sent auf FALSE zurück.
      • Fall [BufferOverflowFlag == 0]: Keine Aktion für die Überlaufmeldung.

4. Normative Relevanz & Entwickler-Hinweise

  • Normative Logik: Definiert das exakte Verhalten von DLT bei drohendem bzw. eingetretenem Datenverlust aufgrund voller Kanalpuffer (LogChannelBuffer).
  • Fehlerbehandlung: Verwerfen von Nachrichten führt zwingend zum Setzen von BufferOverflowFlag = 1 und Aktivieren des Zeitgebers.
  • Benachrichtigung: Das Versenden der speziellen Überlaufnachricht (Send Message "BufferOverflow") an Diagnosetools/Empfänger erfolgt asynchron über den zyklischen Main-Function-Kontext (Dlt_TxFunction) und wird durch PduR_DltTransmit angestoßen.
  • Entprellung/Rücksetzung: Verhindert das Überfluten des Übertragungskanals mit Überlaufmeldungen; erst nach Ablauf des konfigurierten Timers (DltLogChannelBufferOverflowTimer) werden das Flag und der Sendestatus zurückgesetzt.

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

R19-11 → R20-11 keine inhaltliche Änderung Vorgänger: FIG-ba15484900f3b1a8

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«module» | Dlt | «module» | Gpt | SWC «module» | PduR | ! Not enough Buffer available ! | loop | alt BufferOverflow Flag | [BufferOverflowFlag == 1] | [BufferOverflowFlag == 0] | alt OverFlow Message sent | [Buffer Overflow Message sent == FALSE] | [Buffer Overflow Message sent == TRUE] | Send Message "BufferOverflow" | Select target LogChannel() | Try to add Message to LogChannelBuffer() | Discard Message() | Apply LogChannel threshold() | Dlt_TxFunction() | Start BufferOverflowTimer() | CheckMessage length() | PduR_DltTransmit(PduId) | If DltLogChannelBufferOverflowTimer expired: Reset | BufferOverflowFlag AND Message Sent = FALSE() | MessageSent == TRUE() | Apply Message filtering() | Timer DltLogChannelBufferOverflowCheck(start) | Dlt_SendLogMessage(return, sessionId, logInfo, | logData, logDataLength) | Set BufferOverflowFlag()

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R20-11 AUTOSAR_SWS_DiagnosticLogAndTrace S. 101 9 Figure 9: 4: Buffer overflow indication