AUTOSAR_AP_SWS_LogAndTrace
FIG-7ad6a1eec82a1a98
932 × 375 px
1 Release(s)
Figure 7.2: ara::log Modeled Message Generator
SHA-256 Inhalts-Fingerabdruck:
7ad6a1eec82a1a98dead30b2a7abcc7a0dca53536893427fcb0c613718076d9a
✦
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
- Klassifikation: Generatormodell / Werkzeugfluss-Diagramm (Build-time Artifact Transformation Pipeline).
- Technischer Zweck & funktionale Einordnung: Veranschaulicht den Codegenerierungsprozess für typisierte, modellierte DLT-Nachrichten (Modeled Messages) innerhalb von AUTOSAR Adaptive Platform (
ara::log). Es bildet ARXML-Modellbeschreibungen (LogAndTraceMessageCollectionSet,LogAndTraceInterface) deterministisch auf C++-Headerdateien (messages.h), Namensräume und Message-Instanzen ab, um standardisiertes, nicht-verboses DLT-Logging zur Compile-Zeit typsicher bereitzustellen.
2. Komponenten, Entitäten & Schnittstellen
- Eingangsartefakt (
x_messages.arxml):LogAndTraceInterface: Definiert den Basis-Namespace der Applikation über eine geordnete Sequenz von Symbol-Attributen (.symbol[1] = Apd,.symbol[2] = MyApp→apd::myapp).LogAndTraceMessageCollectionSet: Gruppierungscontainer für logisch zusammengehörige Log-Nachrichten (hier InstanzenDltMsgs1undDltMsgs2).DltMessage: Repräsentiert die einzelne modellierte Log-PDU bzw. DLT-Nachricht mit spezifischen Parametern, Payload-Definitionen und 32-Bit Message-ID (.shortName = SpeedMsg1,SpeedMsg2).
- Generator-Komponente:
ARA Log Modeled Message Generator: Transformator, der die ARXML-Metadaten verarbeitet und die plattformspezifischen C++14/C++17-Header erzeugt.
- Ausgangsartefakte & Dateisystem-Struktur:
- Getrennte Verzeichnispfade basierend auf Modell-Hierarchie:
apd/myapp/.../dltmsgs1/undapd/myapp/.../dltmsgs2/. - Generierte Header
messages.hmit vollqualifizierten Include-Guards (APD_MYAPP_DLTMSGS1_H_,APD_MYAPP_DLTMSGS2_H_). - Typisierte Symbole im Ziel-Namespace:
- Typdefinitionen:
<Namespace>::<CollectionName>::<MessageName>Type(z. B.apd::myapp::dltmsgs1::SpeedMsg1Type). - Vorinstanziierte Nachrichtenobjekte:
<MessageName>(z. B.SpeedMsg1,SpeedMsg2).
- Typdefinitionen:
- Getrennte Verzeichnispfade basierend auf Modell-Hierarchie:
3. Dynamisches Verhalten & Sequenzablauf
Da es sich um einen statischen Codegenerierungsschritt zur Entwurfs-/Build-Zeit handelt, existiert kein dynamischer Laufzeit-Kontrollfluss. Der Generierungsablauf erfolgt linear:
- Parsing: Einlesen der
LogAndTraceInterface- undLogAndTraceMessageCollectionSet-Pakete aus der Manifest-Konfiguration (*.arxml). - Namensraum-Auflösung: Verkettung von
LogAndTraceInterface.symbol[]mit demshortNamedes jeweiligenLogAndTraceMessageCollectionSetzu eindeutigen C++-Namespaces (apd::myapp::dltmsgs1). - Kollisionsvermeidung: Identische
DltMessage.shortName-Bezeichner (SpeedMsg1,SpeedMsg2) in unterschiedlichen CollectionSets werden durch isolierte Sub-Namespaces und separate Verzeichnispfade konfliktfrei gekapselt. - Code-Emittierung: Erzeugen der Header
messages.hinklusive typsicherer Structs/Klassen für die serialisierbaren DLT-Payloads sowie statischer Instanzen.
4. Normative Relevanz & Entwickler-Hinweise
- SWS-Konformität (SWS_LOG_00244, SWS_LOG_00245): Der Generator setzt die vertraglichen Namensraum- und Header-Generierungsregeln für modelliertes Logging um. Entwickler binden die generierten Header dateipfadgenau ein (
#include "apd/myapp/.../dltmsgs1/messages.h"). - Non-Verbose Mode Logging (RS_LT_00003, RS_LT_00049): Durch modellierte Nachrichten entfällt das Parsen von ASCII-Strings zur Laufzeit. Die Payload-Serialisierung erfolgt direkt über die generierten Datentypen; auf dem Bus (DLT-Daemon/Logging-Socket) werden kompakte Message-IDs anstelle von Textstrings übertragen. Dies minimiert Buslast und CPU-Overhead auf dem Zielsystem.
- Applikations-API: Entwickler übergeben die generierten Instanzen (
SpeedMsg1) typisiert an den Stream-Operator vonara::log::Logger::LogVerbose()bzw. die dedizierten Modeled-Message-Log-Methoden (logger.Log(SpeedMsg1, ...)); Typüberprüfungen für Argumente erfolgen vollständig zur Compile-Zeit.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.