AUTOSAR_EXP_PlatformDesign
FIG-823a1ecaa132f07f
932 × 442 px
2 Release(s)
Figure 16.1: Overview Log and Trace
SHA-256 Inhalts-Fingerabdruck:
823a1ecaa132f07f4ef40e9d19424e6240ab02049f362c6415d47d03e63ccca1
✦
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: Komponenten- und Interaktionsdiagramm (funktionales Architektur-Schichtenmodell der AUTOSAR Adaptive Platform).
- Technischer Zweck: Spezifiziert die Systemarchitektur des Functional Clusters Logging and Tracing (
ara::loggemäßAUTOSAR_SWS_LogAndTrace) in der Adaptive Platform (Dokument:AUTOSAR_EXP_PlatformDesign, Kapitel 16). - Funktionale Einordnung: Definiert die Entkopplung zwischen loggenden POSIX-Applikationsprozessen bzw. Plattform-Clustern (
ara::com), der standardisierten Schnittstellenschicht (Logging APIs), dem systemweiten Vermittlungs-Daemon (Log and Trace backend) und der externen Test-/Diagnoseumgebung (GENIVI DLT Client) über das DLT-Übertragungsprotokoll.
2. Komponenten, Entitäten & Schnittstellen
Adaptive Application: POSIX-Applikationsprozesse im User Space. Fungieren als Erzeuger von Trace- und Log-Ereignissen.ara::com: Plattform-Cluster für serviceorientierte Inter-Prozess- und Netzwerkkonversation (z. B. SOME/IP, IPC). Nutzt die Logging-Infrastruktur zur Protokollierung von Kommunikationsereignissen und Message-Traces.Logging APIs / Logging and Tracing Functional Cluster [SWS]: Normierte C++-Schnittstellenschicht (ara::log::Logger,ara::log::LogStream). Übernimmt Prozess-lokales Filtern, Formatieren (Verbose/Non-Verbose) und Kontext-Management (AppId,CtxId).Log and Trace backend GENIVI DLT: Plattform-Daemon (z. B.dlt-daemon), der Log-Meldungen prozessübergreifend aggregiert, temporär im Ringpuffer hält, filtert und serialisiert.GENIVI DLT Client: Off-Board-Diagnose- und Entwicklungswerkzeug (z. B. DLT Viewer) zur Analyse und Filterung von Trace-Daten.- Schnittstellen & Beziehungen:
Adaptive Application→Logging APIs/ara::com→Logging APIs: Direkte C++-In-Process-API-Aufrufe (unidirektional, synchroner Aufruf aus Sicht der emittierenden Task).Logging APIs↔Log and Trace backend: Lokale IPC-Verbindung (bidirektional; Messages fließen ins Backend, Konfigurationsänderungen wie Log-Level-Updates fließen zurück in die Client-Bibliothek).Log and Trace backend→GENIVI DLT Client: Externe physikalische Verbindung (Ethernet/Serial) über das standardisierteLT Protocol(Diagnostic Log and Trace Protocol gemäßAUTOSAR_PRS_LogAndTraceProtocol/ DLT-Standard).
3. Dynamisches Verhalten & Sequenzablauf
- Log-Generierung & Filterung (Fast Path):
- API-Aufruf: Applikation instanziiert Kontext und triggert Loglevel-Methoden (
LogFatal(),LogError(),LogWarn(),LogInfo(),LogDebug(),LogVerbose()). - Early-Discard-Filter: Die lokale
ara::log-Instanz prüft das aktuelle Schwellwert-Level des Kontextes atomar. Liegt das Level unter dem Schwellwert, bricht der Aufruf sofort ohne String-Serialisierung oder Puffer-Zuweisung ab. - IPC-Dispatch (Asynchron): Bei aktivem Loglevel wird der Datensatz serialisiert und nicht-blockierend (z. B. via Lock-free Ringbuffer / UNIX Domain Socket) an das
Log and Trace backendübergeben.
- API-Aufruf: Applikation instanziiert Kontext und triggert Loglevel-Methoden (
- Backend-Distribution & Off-Board-Transport:
- Pufferung & Paketierung: Der Backend-Daemon empfängt die Rohdaten, versieht sie mit DLT-Standard-Headern (Timestamp, Session-ID, Message-Counter, App-ID, Ctx-ID) und puffert sie.
- Streaming via
LT Protocol: Asynchrone Übertragung über TCP/UDP/Serial an denGENIVI DLT Client.
- Rückkanal (Injection & Control Flow):
- Der
GENIVI DLT Clientsendet Kontrollnachrichten (z. B.SetLogLevel,SetTraceStatus,GetLogInfo) über dasLT Protocolan das Backend. - Das Backend propagiert geänderte Filterkriterien über den bidirektionalen IPC-Kanal an die
Logging APIsder laufenden Prozesse, wodurch Filtergrenzen zur Laufzeit dynamisch angepasst werden.
- Der
4. Normative Relevanz & Entwickler-Hinweise
- API-Kapselung & Portabilität:
- Applikationen und Plattform-Services dürfen ausschließlich gegen den normierten Namensraum
ara::loglinken. Direkte Zugriffe auf DLT-Daemon-Sockets oder native GENIVI-DLT-APIs sind architektonisch unzulässig.
- Applikationen und Plattform-Services dürfen ausschließlich gegen den normierten Namensraum
- Laufzeitverhalten & Echtzeit-Restriktionen:
- Logging-Calls sind deterministisch und blockierungsfrei auszulegen. Bei Überlastung der IPC-Verbindung oder des Backend-Puffers greift ein geregeltes Message-Dropping (im DLT-Header durch inkrementierte Message-Counter nachweisbar).
- In harten Echtzeit- oder Safety-Threads (ASIL) ist die Zuweisung dynamischen Speichers innerhalb von Logging-Operationen zu vermeiden; statische Payload-Limits und Non-Verbose-Modus (Übertragung von FIBEX/ARXML-IDs statt Klartext-Strings) sind zu bevorzugen.
- Manifest-Konfiguration:
LogMode(kRemote,kFile,kConsole), Default-Log-Level und Zuordnungen vonContextIdzuApplicationIdmüssen im Execution Manifest der Adaptive Application deklariert werden.
- Security-Aspekte:
- Der Kommunikationskanal des
LT Protocolüber externe Schnittstellen ist gegen unautorisiertes Mitschneiden oder Manipulation abzusichern (z. B. durch Deaktivierung im Serienbetrieb oder Schutz via TLS/IPsec), da Trace-Dumps sicherheitskritische Payload- und Kommunikationsdaten (ara::com) exponieren können.
- Der Kommunikationskanal des
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.