AUTOSAR_AP_EXP_SWArchitecture
FIG-12068bb8599a6f08
554 × 458 px
1 Release(s)
Figure 9.18: Interfaces required by LogAndTrace
SHA-256 Inhalts-Fingerabdruck:
12068bb8599a6f08c469c40e911b9437dadcc22a312dcdbfb9e8746ccfdb02e2
✦
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
- Diagrammtyp: UML-Komponentendiagramm / Schnittstellendiagramm (AUTOSAR Adaptive Platform Profil mit stereotypspezifischen Abhängigkeiten und Port-Schnittstellen).
- Architektur-Kontext: AUTOSAR Adaptive Platform (Release R21-11), Spezifikation
AUTOSAR_EXP_SWArchitecture. - Funktionaler Zweck: Modellierung der externen Abhängigkeiten und benötigten Schnittstellen (Required Interfaces) des Functional Clusters Log and Trace (
ara::log) gegenüber anderen Plattform-Instanzen:- Hochpräzise Zeitstempelung von Log-Ereignissen über den Functional Cluster Time Synchronization (
ara::tsync). - Netzwerkübertragung von DLT-Frames (Diagnostic Log and Trace) via TCP/IP Stack.
- Persistierung lokaler Trace-/Log-Daten über Non-volatile Storage (Flash/Dateisystem).
- Hochpräzise Zeitstempelung von Log-Ereignissen über den Functional Cluster Time Synchronization (
2. Komponenten, Entitäten & Schnittstellen
Akteure & Komponenten
«aapFunctionalCluster» Log and Trace: Adaptive Core Functional Cluster (Dienstnutzer). Verantwortlich für Logging, Tracing, Filterung und Formatierung von Applikations- und Plattform-Meldungen.«aapFunctionalCluster» Time Synchronization(daemon-based): Anbieter hochgenauer, netzwerksynchronisierter Zeitbasen (z. B. IEEE 802.1AS / PTP, CAN-TSyn).Operating System: POSIX-konformes Host-Betriebssystem als Basisplattform.
Schnittstellen & Ports
«aapAPI,aapPortInterface» Time Synchronization::SynchronizedTimeBaseConsumer:- Stereotyp: Standardisierte AUTOSAR Adaptive C++ API und Port-Schnittstelle.
- Methoden/Operationen:
- Polling & Zustandsabfrage:
+ GetRateDeviation()+ GetTimeWithStatus(): SynchronizedTimeBaseStatus
- Asynchrone Notifier-Registrierung (Callbacks / Event-Subscriptions):
+ RegisterStatusChangeNotifier()/+ UnregisterStatusChangeNotifier()+ RegisterSynchronizationStateChangeNotifier()/+ UnregisterSynchronizationStateChangeNotifier()+ RegisterTimeLeapNotifier()/+ UnregisterTimeLeapNotifier()+ RegisterTimePrecisionMeasurementNotifier()/+ UnregisterTimePrecisionMeasurementNotifier()+ RegisterTimeValidationNotification()/+ UnregisterTimeValidationNotification()
- Polling & Zustandsabfrage:
«aapInternal» TCP/IP Stack:- Betriebssystem-interne Netzwerkschnittstelle (Sockets/POSIX OS API) für Transportprotokolle (TCP/UDP) zur externen DLT-Kommunikation.
«aapInternal» Non-volatile Storage:- Dateisystem- oder persistente Blocktreiber-Schnittstelle des Host-OS zur Speicherung nichtflüchtiger Log-Puffer (NVRAM/Storage).
Beziehungen & Abhängigkeiten
- Log and Trace → SynchronizedTimeBaseConsumer: Abhängigkeit
«use»über Port-Rolle«aapRequiredPort». - Time Synchronization → SynchronizedTimeBaseConsumer: Realisierung (
InterfaceRealization, gestrichelte Pfeillinie mit geschlossener, weißer Dreiecksspitze). Der Daemon implementiert den Service-Vertrag. - Log and Trace → TCP/IP Stack: Abhängigkeit
«use»(Nutzung der OS-Transportprotokolle). - Log and Trace → Non-volatile Storage: Abhängigkeit
«use»(Nutzung von Persistenzmechanismen). - Operating System → TCP/IP Stack & Non-volatile Storage: Realisierungs-/Generalisierungsbeziehungen; OS stellt diese Stacks als plattforminterne Dienste bereit.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierung & Registrierung:
- Beim Hochfahren bindet sich
Log and Tracean den PortSynchronizedTimeBaseConsumer. - Registrierung von Event-Handlern (
RegisterStatusChangeNotifier,RegisterTimeLeapNotifier,RegisterSynchronizationStateChangeNotifier), um Taktsprünge (Time Leaps) und Statusänderungen der Synchronisation zu überwachen.
- Beim Hochfahren bindet sich
- Laufzeit - Zeitstempelung (Synchroner Pfad):
- Bei jedem Log-Ereignis ruft der Log-Dienst synchron
GetCurrentTime()bzw.GetTimeWithStatus()ab, um den DLT-Nachrichten-Header mit einem netzwerkweit korrelierten Zeitstempel zu versehen.
- Bei jedem Log-Ereignis ruft der Log-Dienst synchron
- Laufzeit - Asynchrone Benachrichtigung bei Zeitsprüngen:
- Ändert sich der Status der Zeitbasis (z. B. Synchronisation verloren oder Zeitkorrektur erfolgt), triggert der Time-Sync-Daemon den registrierten Callback.
Log and Traceannotiert nachfolgende Logs entsprechend oder setzt interne Sequenz-Flags.
- Ändert sich der Status der Zeitbasis (z. B. Synchronisation verloren oder Zeitkorrektur erfolgt), triggert der Time-Sync-Daemon den registrierten Callback.
- Log-Ausgabe & Persistierung:
- Online-Tracing: Formatierte Log-Pakete werden über den
TCP/IP Stack(Socket-Write) an ein externes Analysewerkzeug gestreamt. - Offline-/Crash-Logging: Tritt ein Pufferüberlauf oder Shutdown auf, werden Logs über
Non-volatile Storagesynchron/asynchron in den persistenten Speicher gespiegelt.
- Online-Tracing: Formatierte Log-Pakete werden über den
4. Normative Relevanz & Entwickler-Hinweise
- Deterministisches Logging & Zeitkorrelation: Entwickler müssen sicherstellen, dass
ara::logerst dann global gültige Zeitstempel garantiert, wennSynchronizedTimeBaseStatusden ZustandkSynchronizedmeldet. Vor der Synchronisation fallen Zeitstempel auf lokale monotonic OS-Ticks zurück. - Nicht-blockierende Aufrufe: Das Auslesen der Zeit (
GetCurrentTime()) im Log-Pfad liegt im kritischen Pfad von Applikations-Threads. Der Aufruf muss Lock-free bzw. minimal-invasiv (z. B. via Shared Memory / vDSO-Mechanismen des Daemons) ausgeführt werden, um Jitter in Anwendungs-Threads zu vermeiden. - Abgrenzung Standard-API vs. Platform Internal:
- Time Synchronization wird über standardisierte ARA-Ports angesprochen (
ara::tsync). - TCP/IP und Non-volatile Storage sind als
«aapInternal»klassifiziert:Log and Tracegreift hierfür im klassischen Integrationsszenario direkt auf OS-Level-APIs (BSD-Sockets, POSIX-Dateisystemaufrufe) zurück, anstelle vonara::comoder dem vollwertigenara::per(Persistency Cluster), um zirkuläre Abhängigkeiten während des Plattform-Bootstrappings zu verhindern.
- Time Synchronization wird über standardisierte ARA-Ports angesprochen (
- Leap-Handling (Zeitsprünge): Bei Nutzung von PTP/NTP können Zeitsprünge auftreten. Logging-Stacks müssen mit rückwärtslaufenden Zeitstempeln robust umgehen können (Auswertung über
RegisterTimeLeapNotifier).
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.