DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_SWArchitecture FIG-bc368756d2aadda0 930 × 1148 px 1 Release(s)

Figure 9.121: Interfaces for SOVD array data

SHA-256 Inhalts-Fingerabdruck: bc368756d2aadda0f8ecc27ba8c31be3208a96dcb3f32e25fa1db4e8c262c341
✦ 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: UML-Klassendiagramm mit Komponentenkontext (Adaptive Application und «aapFunctionalCluster»).
  • Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Release R25-11, Functional Cluster Diagnostic Management (DM, daemon-basiert).
  • Technischer Zweck: Spezifikation der standardisierten C++ Native Interfaces («aapAPI,aapNativeInterface») für den Zugriff auf strukturierte Array-Daten innerhalb von SOVD (Service-Oriented Vehicle Diagnostics, ISO 22989 / ASAM SOVD). Die Schnittstellen kapseln dynamische, JSON-kompatible Array-Inhalte in typsichere, STL-konforme Abstraktionen für Adaptive Applications.

2. Komponenten, Entitäten & Schnittstellen

Akteure & Komponenten
  • Adaptive Application: Konsument der API, nutzt die View- und Iterator-Klassen für Diagnoseoperationen.
  • Diagnostic Management («aapFunctionalCluster», daemon-based): Realisiert die Backend-Logik, Datenhaltung und IPC-Kommunikation zum Plattform-Daemon.
Schnittstellen & Datentypen («aapAPI,aapNativeInterface»)
  • DiagnosticSovdArrayContentElementDataView (Read/Write View):
    • Methoden: Begin(), End(), CBegin(), CEnd(), Size(), Capacity(), Empty(), Reserve(), Clear(), Erase(), PushBack(), operator[](), HasError(), SetError().
    • Semantik: Lese- und schreibbarer Container-Proxy für SOVD-Array-Elemente.
  • DiagnosticSovdArrayContentElementDataConstView (Read-Only View):
    • Methoden: Begin(), End(), CBegin(), CEnd(), Size(), Capacity(), Empty(), operator[](), HasError().
    • Semantik: Unveränderliche Sicht auf Array-Daten (z. B. für reine Messwert-/Sensordatenabfragen).
  • DiagnosticSovdArrayContentElementDataIterator:
    • Operatoren: operator*(), operator->(), operator++(), operator==(), operator!=().
    • Semantik: STL-konformer Mutable-Forward-/Bidirektional-Iterator.
  • DiagnosticSovdArrayContentElementDataConstIterator:
    • Operatoren: operator*(), operator->(), operator++(), operator==(), operator!=().
    • Semantik: STL-konformer Const-Iterator für schreibgeschützten Durchlauf.
Beziehungen & Abhängigkeiten
  • Adaptive Application –«use»→ View / ConstView / Iterator / ConstIterator: Direkte API-Nutzung über C++-Header (ara::diag).
  • Diagnostic Management ⇢ View / ConstView: Interface-Realization (gestrichelte Linie mit geschlossener Dreiecksspitze). Der DM-Daemon stellt die konkrete Laufzeit-Implementierung bereit.
  • View / ConstView ⇢ Iterator / ConstIterator: Realisierungs-/Bereitstellungsbeziehung zur Erzeugung typisierter Iteratoren über Begin() / End().
Generische Element-Operationen (Tabellarischer Kontext)
  • Allokation & Abfrage: Size(), Reserve(), Capacity(), Empty(), wahlfreier Zugriff via operator[]().
  • SOVD Primitive Setter: SetBool(), SetDouble(), SetSignedInt(), SetUnsignedInt(), SetString().
  • Fehlersignalisierung: SetError(), HasError().
  • Record-/Dictionary-Operationen: RecordReserve(), RecordEmpty(), RecordEnd(), RecordRemoveAll(), Remove().

3. Dynamisches Verhalten & Zugriffsmuster

  1. Sicht-Akquise: Die Adaptive Application erhält bei SOVD-Operationen (z. B. Read/Write DataIdentifier oder SOVD REST Request Processing) eine Instanz von DiagnosticSovdArrayContentElementDataView bzw. ...ConstView.
  2. Speicher-Reservierung (Synchron): Vor dem Befüllen variabler Daten ruft die Applikation Reserve() auf, um Heap-Fragmentierung zu verhindern und Reallokationen im Daemon/Shared-Memory deterministisch zu halten.
  3. Traversierung & Befüllung:
    • Zugriff wahlfrei via operator[](index) oder sequentiell via Iterator (Begin() bis End()).
    • Anfügen von Elementen über PushBack(), Löschen über Erase() oder Clear().
  4. Fehlerbehandlung ohne Exceptions:
    • Tritt während der Datenverarbeitung ein Fehler auf, markiert die Applikation das Element via SetError().
    • Konsumenten prüfen den Status non-invasiv über HasError(), ohne dass C++ Stack-Unwinding ausgelöst wird.

4. Normative Relevanz & Entwickler-Hinweise

  • View-Semantik & Zero-Copy: Die *View-Klassen halten die Daten in der Regel nicht selbst, sondern verweisen auf Shared-Memory- bzw. IPC-Puffer des DM-Daemons. Entwickler müssen die Lebensdauer der übergeordneten Diagnosesitzung/Transaktion beachten (Dangling-View-Gefahr nach Methoden-Return).
  • MISRA & Echtzeit-Determinismus (AUTOSAR C++14):
    • PushBack() und Reserve() triggern Speicherallokationen; in zeitkritischen Tasks ist die Zielkapazität vorab zwingend über Reserve() anzufordern.
    • Exception-Freiheit: Fehler werden explizit über HasError() und SetError() transportiert; die API wirft im Fehlerfall keine C++-Exceptions (noexcept-Policy gemäß ara::core::Result).
  • Const-Correctness: Reine Datenquellen (z. B. Sensor-Provider) dürfen ausschließlich gegen DiagnosticSovdArrayContentElementDataConstView arbeiten, um unbeabsichtigte Modifikationen der SOVD-Ressourcen im Plattform-Daemon zu verhindern.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

RecordEmpty Returns if the RecordContentElementData is empty | RecordEnd Returns the end operator of a RecordContentElement Data | RecordRemoveAll Removes all the content element in the RecordContent ElementData | RecordReserve Reserves the capacity of the RecordContentElement Data | Remove Removes an element with the specified key | Reserve Reserves the capacity of the DiagnosticSovdArray ContentElementData | SetBool Set bool | SetDouble Set double | SetError Sets the abstract content to be erroneous | SetSignedInt Set signed integer | SetString Set string | SetUnsignedInt Set unsigned integer | Size Returns the size of the Array content element | operator[] Access the content element with specified index of an array | «aapFunctionalCluster» Diagnostic Management daemon-based | Adaptive Application | «aapAPI,aapNativeInterface» DiagnosticSovdArrayContentElementDataIterator | + operator->() + operator!=() + operator*() + operator++() + operator==() | «aapAPI,aapNativeInterface» DiagnosticSovdArrayContentElementDataConstIterator | + operator->() + operator!=() + operator*() + operator++() + operator==() | «aapAPI,aapNativeInterface» DiagnosticSovdArrayContentElementDataView | + Begin() + Capacity() + CBegin() + CEnd() + Clear() + Empty() + End() + Erase() + HasError() + operator[]() + PushBack() + Reserve() + SetError() + Size() | «aapAPI,aapNativeInterface» DiagnosticSovdArrayContentElementDataConstView | + Begin() + Capacity() + CBegin() + CEnd() + Empty() + End() + HasError() + operator[]() + Size() | «use» «use» «use» «use»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_EXP_SWArchitecture S. 172 9.121 Figure 9.121: Interfaces for SOVD array data