AUTOSAR_AP_EXP_SWArchitecture
FIG-fc8be1fd2c3d58e9
930 × 1025 px
2 Release(s)
Figure 9.96: Common interfaces of Diagnostic Management (2 of 2)
SHA-256 Inhalts-Fingerabdruck:
fc8be1fd2c3d58e9bb9669d1a2df53aa03b597d23ca06deed44c699770ce3d1a
✦
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: Hybride Spezifikationsansicht bestehend aus einer tabellarischen Port-Interface-Spezifikation (AUTOSAR Meta-Modell
DiagnosticDTCInformationInterface) und einem UML-Klassen-/Komponentendiagramm mit Stereotypen der AUTOSAR Adaptive Platform. - Funktionale Einordnung: AUTOSAR Adaptive Platform (EXP Software Architecture, R23-11/R24-11), Functional Cluster Diagnostic Management (
ara::diag). - Technischer Zweck: Spezifikation der standardisierten C++-Laufzeitschnittstellen für Applikationen (
Adaptive Application) zur Interaktion mit dem Fehlerspeicher (DTC Information, UDS-Status, Freeze Frames) sowie allgemeiner Hilfsschnittstellen (CancellationHandler,MetaInfo) für die asynchrone Diagnoseabwicklung im daemon-basierten Architekturmodell.
2. Komponenten, Entitäten & Schnittstellen
A. Port Interface DTCInformation (Meta-Modell: DiagnosticDTCInformationInterface)
- Charakteristik: Nicht-generiert (
Generated: No), standardisiertes Public API. Bietet Operationen bezogen auf ein konfiguriertesDiagnosticMemory-Ziel. - Operationen (Methoden):
Clear: Löschen einzelner DTCs oder DTC-Gruppen (UDS Service 0x14).EnableControlDtc: Forciert das Reaktivieren der DTC-Aktualisierung (ControlDTCStatus = enabled), wenn Monitor-Bedingungen dies erzwingen (UDS Service 0x85).GetControlDTCStatus: Abfrage des aktuellen Kontrollstatus für die Fehleraufzeichnung.GetCurrentStatus: Liest das standardisierte UDS-DTC-Statusbyte (StatusOfDTCgem. ISO 14229-1) eines angegebenen DTCs aus.GetEventMemoryOverflow: Gibt den Überlaufstatus des Ereignisspeichers zurück.GetNumberOfStoredEntries: Liefert die Anzahl aktuell gespeicherter Fehlerspeichereinträge.- Notifier-Registrierungen (Observer-Pattern):
SetControlDtcStatusNotifier: Callback bei Modifikation der Control-DTC-Einstellung.SetDTCStatusChangedNotifier: Callback bei Flanken-/Statuswechsel des UDS-DTC-Statusbytes.SetEventMemoryOverflowNotifier: Callback bei Speicherüberlauf.SetNumberOfStoredEntriesNotifier: Callback bei Änderung der Belegungsanzahl.SetSnapshotRecordUpdatedNotifier: Callback bei Aktualisierung von Freeze-Frame-/Snapshot-Daten.
B. UML-Klassen & Komponenten
Adaptive Application(UML Component): Konsument der Diagnosedienste.«aapFunctionalCluster» Diagnostic Management(UML Component, Kennzeichnung:daemon-based): Realisiert den zentralen Diagnose-Daemon im AP-System.«aapAPI, aapNativeInterface» CancellationHandler:- Methoden:
+ IsCanceled(): bool,+ SetNotifier() - Ermöglicht kooperativen Abbruch langlebiger Diagnosevorgänge.
- Methoden:
«aapAPI, aapNativeInterface» MetaInfo:- Methoden:
+ GetContext(),+ GetValue() - Transportiert UDS-Kontextinformationen (z. B. SA, TA, Tester-Verbindungs-ID, Session-/Security-Level).
- Methoden:
C. Relationen & Stereotypen
- Realization (
«realize»/ gestrichelte Pfeile mit geschlossener hohler Spitze):Diagnostic Managementimplementiert die nativen SchnittstellenCancellationHandlerundMetaInfo. - Usage (
«use»/ gestrichelte Pfeile mit offener Spitze): DieAdaptive ApplicationkonsumiertCancellationHandlerundMetaInfo.
3. Dynamisches Verhalten & Sequenzablauf
- Synchrones / Polling-Muster: Getter-Operationen (
GetCurrentStatus,GetControlDTCStatus,GetNumberOfStoredEntries,GetEventMemoryOverflow) erlauben der Applikation synchrone Abfragen des aktuellen Zustands im Fehlerspeicher. - Asynchrones Push- / Observer-Muster: Über
Set*Notifierregistriert die Applikation Handler. Treten Statusübergänge im Diagnostic Management Daemon auf (z. B. DTC qualifiziert/dequalifiziert, Snapshot aktualisiert), benachrichtigt der Daemon die Applikation via Callback. - Asynchrone Methodenabwicklung & Abbruch:
- Zeitintensive Operationen wie
Clearwerden typischerweise überara::core::Future/ara::core::Promiseasynchron abgewickelt. - Der
CancellationHandlersignalisiert dem Handler via Polling (IsCanceled()) oder Event-gesteuert (SetNotifier()), ob eine laufende Routine/Operation durch den Client (UDS-Tester-Reset, Timeout oder Protokollabbruch) vorzeitig beendet werden muss.
- Zeitintensive Operationen wie
4. Normative Relevanz & Entwickler-Hinweise
- Keine Generierung (
Generated: No):DTCInformationist eine feste C++-API-Definition im Namespaceara::diag. Sie wird nicht vom AUTOSAR-Codegenerator erzeugt, sondern direkt gegen die Plattform-Bibliotheken gelinkt. - Modellierungs-Binding: Im ARXML-Manifest muss der Port der Applikation als
DiagnosticDTCInformationInterfacedeklariert und mit dem entsprechendenDiagnosticMemoryverknüpft sein. - Threading & Thread-Safety:
- Die via
Set*Notifierregistrierten Callbacks laufen im Thread-Kontext desara::diag-Runtimes bzw. IPC-Dispatchers der Applikation. Sie müssen reentrant, blockierungsfrei und thread-safe implementiert sein.
- Die via
- IPC-Kosten (daemon-based): Da das Diagnostic Management als Daemon realisiert ist, bedingen synchrone Aufrufe Interprozesskommunikation (IPC). Häufige Statusabfragen sollten zugunsten der Event-basierten Notifier vermieden werden.
- Kontext-Transparenz via
MetaInfo: Applikations-Handler müssen dynamische Kontextprüfungen (z. B. Zugriffsberechtigungen basierend auf aktiver Security-Level-ID) überMetaInfo::GetValue()abfragen, statt hardkodierte Zustände anzunehmen.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.