AUTOSAR_AP_EXP_SWArchitecture
FIG-763090c91ced4145
438 × 308 px
2 Release(s)
Figure 9.105: Common interfaces of Diagnostic Management (2 of 3)
SHA-256 Inhalts-Fingerabdruck:
763090c91ced41459c92ba6d6fde440688eb2015af6aac53c74c5bf84688c93b
✦
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
- Diagrammtyp: UML-Komponentendiagramm mit Schnittstellenspezifikation (Interface Realization & Dependency).
- Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Functional Cluster Diagnostic Management (
ara::diag), dokumentiert inAUTOSAR_AP_EXP_SWArchitecture(Figure 9.105, Teil 2 von 3). - Funktionaler Zweck: Modellierung der generischen, querschnittlichen C++-Laufzeitschnittstellen (Common Interfaces) zwischen dem daemon-basierten Diagnose-Stack (
Diagnostic Management) und benutzerdefinierten Diagnose-Service-Providern innerhalb einer Adaptive Application. Die Interfaces dienen der Bereitstellung von Protokoll-/Kontextmetadaten (MetaInfo) und der kooperativen Unterbrechungssteuerung (CancellationHandler) bei langlaufenden UDS-Diensten.
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Stereotypen
Adaptive Application(UML-Komponente):- Konsumierende Applikationsinstanz im User Space, welche Diagnose-Handler (z. B. für Routine Control, Data Identifier Read/Write) implementiert.
Diagnostic Management(Stereotyp:«aapFunctionalCluster», Eigenschaft:daemon-based):- Bereitstellender AUTOSAR Adaptive Functional Cluster. Läuft architektonisch als eigenständiger System-Daemon und realisiert die UDS/DoIP-Session- und Protokollabwicklung.
CancellationHandler(Stereotyp:«aapAPI,aapNativeInterface»):- Natives C++-Interface (
ara::diag::CancellationHandler). - Operationen:
+ IsCanceled(): Polling-Methode zur Abfrage, ob die aktuelle Diagnoseanforderung abgebrochen wurde.+ SetNotifier(): Registrierung eines Callbacks (std::function), der bei Abbruch durch den Stack asynchron benachrichtigt wird.
- Natives C++-Interface (
MetaInfo(Stereotyp:«aapAPI,aapNativeInterface»):- Natives C++-Interface (
ara::diag::MetaInfo). - Operationen:
+ GetContext(): Rückgabe des operativen Ausführungskontexts des Diagnose-Requests.+ GetValue(): Zugriff auf schlüsselbasierte Metadaten der UDS-Transaktion (z. B. Tester-Quelladresse, Zieladresse, Protokolltyp).
- Natives C++-Interface (
Beziehungen & Abhängigkeiten
- Interface Realization (gestrichelte Linie mit geschlossener, nicht ausgefüllter Pfeilspitze):
Diagnostic Management→CancellationHandler: Der Daemon bzw. die generierteara::diag-Laufzeitumgebung implementiert die konkrete Instanz des Handlers.Diagnostic Management→MetaInfo: Der Daemon instantiiert und befüllt das Metadaten-Objekt basierend auf dem empfangenen PDU/DoIP-Transportframe.
- Usage Dependency (gestrichelte Linie mit offener Pfeilspitze, Stereotyp
«use»):Adaptive Application→CancellationHandler: Applikationsmethoden erhalten eine Referenz auf den Handler zur Abbruchüberwachung.Adaptive Application→MetaInfo: Applikationsmethoden fragen Transaktionsparameter über die Schnittstelle ab.
3. Dynamisches Verhalten & Sequenzablauf
- Request-Eingang & Kontextinitialisierung:
- Ein UDS-Request (z. B. Service
0x31RoutineControl oder0x2EWriteDataByIdentifier) erreicht denDiagnostic Management Daemon. - Der Daemon extrahiert Transport- und Sessiondaten, erzeugt eine konkrete
MetaInfo-Instanz und initialisiert einenCancellationHandler.
- Ein UDS-Request (z. B. Service
- Aufruf der Applikationslogik:
- Der Stack delegiert den Request via IPC an die zuständige
Adaptive Application.MetaInfoundCancellationHandlerwerden als Referenzen an die Service-Methode übergeben.
- Der Stack delegiert den Request via IPC an die zuständige
- Kontextauswertung:
- Die Applikation ruft synchron
MetaInfo::GetContext()undMetaInfo::GetValue()auf, um tester-spezifische Zugriffsprüfungen (z. B. Security-Level, Adressvalidierung) durchzuführen.
- Die Applikation ruft synchron
- Asynchrone Überwachung & Abbruch (Cancellation Flow):
- Polling-Pfad: Bei iterativer oder zeitintensiver Verarbeitung prüft die Applikation zyklisch
CancellationHandler::IsCanceled(). - Event-Pfad: Die Applikation registriert via
CancellationHandler::SetNotifier()einen Notifier. - Trigger: Tritt ein UDS-Protokollereignis ein (z. B. P2/P2*-Timeout, Session-Reset durch Tester, S3-Timeout oder Überschreiben durch höher priorisierte Diagnoseanforderung), setzt der Daemon den Status auf canceled und feuert den gesetzten Notifier.
- Reaktion: Die Applikation bricht die laufende Hardware-/Software-Aktion unverzüglich ab, gibt Ressourcen frei und beendet die Methode kooperativ.
- Polling-Pfad: Bei iterativer oder zeitintensiver Verarbeitung prüft die Applikation zyklisch
4. Normative Relevanz & Entwickler-Hinweise
- API-Vertrag (
ara::diag):CancellationHandlererzwingt kooperatives Multitasking. Der Stack bricht Threads der Applikation nicht hart ab; die Applikation ist normativ verpflichtet,IsCanceled()regelmäßig abzufragen oder perSetNotifier()blockierende I/O-Vorgänge sauber abzubrechen.- Ignoriert eine Applikation den Abbruch, drohen UDS-Protokollverletzungen (z. B. NRC
0x78Response Pending Deadlocks oder Überschreitung der P2/P2*-Zeiten).
- Speicher- und Threading-Restriktionen:
- Instanzen von
MetaInfoundCancellationHandlerbesitzen eine an die Lebensdauer des jeweiligen Service-Aufrufs gebundene Gültigkeit (Scope Lifetime). Zeiger oder Referenzen darauf dürfen nicht über die Rückkehr des asynchronen Future/Promise-Ergebnisses hinaus in der Applikation gespeichert werden. - Der über
SetNotifier()registrierte Callback kann im Kontext eines Worker-Threads des Diagnostic Management Daemons bzw. der ARA-Laufzeitumgebung aufgerufen werden; Thread-Sicherheit und Deadlock-Freiheit (Reentrancy, Mutex-Vermeidung im Callback) liegen in der Verantwortung des Applikationsentwicklers.
- Instanzen von
- Konfigurationsaspekt:
- Unterstützte Metadaten-Schlüssel in
MetaInfo(z. B.SASource Address,TATarget Address) hängen von der UDS/DoIP-Stack-Konfiguration im ARXML-Manifest (DiagnosticServerConfiguration) ab.
- Unterstützte Metadaten-Schlüssel in
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.