DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_DiagnosticLogAndTrace FIG-be12dcc705354a40 897 × 1266 px 1 Release(s)

Figure 9: 4: Buffer overflow indication

SHA-256 Inhalts-Fingerabdruck: be12dcc705354a400d9a7003076cdd27449708b63dbe03d32ab2e76c3f238e0c
✦ 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)

R4.3.1 → R18-10_R4.4.0_R1.5.0 keine inhaltliche Änderung Nachfolger: 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" | Dlt_SendLogMessage(return, sessionId, logInfo, | logData, logDataLength) | Apply Message filtering() | Select target LogChannel() | CheckMessage length() | Apply LogChannel threshold() | Try to add Message to LogChannelBuffer() | Discard Message() | Set BufferOverflowFlag() | Start BufferOverflowTimer() | Dlt_TxFunction() | PduR_DltTransmit(PduId) | MessageSent == TRUE() | Timer DltLogChannelBufferOverflowCheck(start) | If DltLogChannelBufferOverflowTimer expired: Reset | BufferOverflowFlag AND Message Sent = FALSE()

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.3.1 AUTOSAR_SWS_DiagnosticLogAndTrace S. 95 9 Figure 9: 4: Buffer overflow indication