DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_SWS_CommunicationManagement FIG-028fa781a517da65 807 × 1089 px 1 Release(s)

Figure 7.29: Receive response to a SET Message

SHA-256 Inhalts-Fingerabdruck: 028fa781a517da6559cf99af3822de69177c8a183d6d082d51a450f723be24a0
✦ 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: UML-Sequenzdiagramm (Interaktionsdiagramm) mit kombinierten Fragmenten (alt) zur bedingten Ausführung.
  • Funktionale Einordnung: AUTOSAR Adaptive Platform (AP), Spezifikation Communication Management (ara::com), Release R21-11.
  • Technischer Zweck: Spezifikation des asynchronen Empfangs-, Prüf- und Deserialisierungspfads einer Antwortnachricht (Response) auf einen Field.Set()-Aufruf (Method Call auf ein Field mit Setter-Funktionalität) unter Einbindung von End-to-End-(E2E)-Schutzmechanismen und der E2E-Zustandsüberwachung.

2. Komponenten, Entitäten & Schnittstellen

  • Akteure & Lifelines:
    • Client Application: Adaptive Application (Service Consumer), die über das generierte Proxy-Interface der Service-Instanz agiert.
    • ara::com: Adaptive Middleware-Laufzeitschicht (Service-Proxy-Binding-Implementierung inkl. E2E-State-Machine, PDU-Verarbeitung, Promise/Future-Verwaltung).
    • Transmission: Transport- und Protokollbindungsschicht (z. B. SOME/IP Daemon, Netzwerk-Stack über Ethernet/IPC).
  • Interaktionspunkte & Datenstrukturen:
    • Field.Set(): Asynchrone Setter-Methode des Proxies; instanziiert und liefert unmittelbar ein ara::core::Future an die Applikation.
    • MessageReception() / GetMessage(serialized data): PDU-Empfangsindikation und Datenabruf des Bytestroms aus dem Transportpuffer.
    • Process non protected data() / Process E2E protected header(): Parsing ungeschützter sowie kryptografisch/prüfsummen-geschützter Header-Anteile.
    • E2E_Check(): Validierung von Sequence Counter, CRC und Data-ID gemäß konfiguriertem E2E-Profil.
    • Output.setvalue(data) / Output.SetError(errorcode): Setzen des Ergebnisses bzw. des Fehlercodes im assoziierten ara::core::Promise.
    • Store result in SM state(): Zustandsaktualisierung in der internen E2E-Zustandsmaschine (ara::com::e2e::Result).
    • GetE2EStateMachineStateSetter(): Spezifische Abfrage/Auswertung des E2E-Zustands der Setter-Methode des Felds durch die Client-Applikation.
    • process error domain() / process data(): Lokale Behandlungsroutinen in der Client-Applikation zur Differenzierung von Nutzdaten (ara::core::Result<T>) und Fehlern (ara::core::ErrorCode).

3. Dynamisches Verhalten & Sequenzablauf

  1. Request-Phase (Asynchron):
    • Client Application initiiert Field.Set().
    • ara::com erzeugt das zugehörige ara::core::Future, gibt dieses synchron an die Applikation zurück und sendet den Request ab.
    • Entkopplung: Der Aufrufer wird nicht blockiert (Some time passes ...).
  2. Empfangs- & Validierungs-Phase (Transmission → ara::com):
    • Transmission signalisiert den Eingang via MessageReception().
    • ara::com holt die serialisierten Rohdaten über GetMessage(serialized data) ab.
    • ara::com verarbeitet ungeschützte Metadaten (Process non protected data()) und führt E2E_Check() aus.
  3. Verzweigung 1: Interner E2E-Check (alt [E2E check OK] / [E2E Error]):
    • Pfad [E2E check OK]:
      1. Geschützte Header werden interpretiert (Process E2E protected header()).
      2. Nutzdaten werden deserialisiert (Deserialize serialized data()).
      3. Ergebniswert wird im Promise gesetzt (Output.setvalue(data)).
    • Pfad [E2E Error]:
      1. Deserialisierung der Nutzdaten unterbleibt.
      2. E2E-Fehlercode wird im Promise hinterlegt (Output.SetError(errorcode)).
  4. Zustandsaktualisierung & Zustandsabfrage:
    • ara::com speichert das Validierungsergebnis im Zustand der E2E-Zustandsmaschine (Store result in SM state()).
    • Client Application fragt den aktuellen E2E-Zustand über die setter-spezifische Methode GetE2EStateMachineStateSetter() ab.
  5. Verzweigung 2: Ergebnisverarbeitung in Client Application (alt):
    • Pfad [received message has type ERROR]:
      • Publisher hat einen E2E-Fehler empfangen und antwortet mit einer ERROR-Nachricht (Publisher has received E2E error and replied an ERROR message).
      • Client Application führt die Fehlerbehandlung aus (process error domain()).
    • Pfad [E2E error]:
      • Lokaler E2E-Fehler verhindert Nutzung des Rückgabewerts (Client Application cannot use returned value. Reaction to E2E error is up to Client Application.).
      • Client Application führt anwendungsspezifische Fehlerbehandlung aus (process error domain()).
    • Pfad [no E2E error]:
      • Das Future von Field.Set() wird ready (The Future of Field.Set() becomes ready. Returned value can be retrieved.).
      • Client Application verarbeitet die Nutzdaten erfolgreich (process data()).

4. Normative Relevanz & Entwickler-Hinweise

  • E2E-Fehlersemantik bei Setter-Methoden: Das Sequenzdiagramm spezifiziert die asynchrone Bearbeitung von Setter-Aufrufen (Field.Set()) und deren E2E-Absicherung. Bei einem E2E-Prüffehler im Response-Pfad unterbleibt die Nutzdaten-Deserialisierung und das Promise wird mit einem entsprechenden Fehlercode belegt (Output.SetError(errorcode)).
  • Differenzierung der Fehlerquellen: Die Client-Applikation unterscheidet über separate Ausführungspfade zwischen serverseitig quittierten Fehlern (Nachrichtentyp ERROR, z. B. E2E-Fehler beim Publisher während des Requests) und lokal detektierten E2E-Prüffehlern ([E2E error]). Beide Fälle münden in process error domain().
  • Setter-spezifische E2E-Zustandsabfrage: Ab Release R25-11 wird für die E2E-Zustandsabfrage eines Felds explizit die Methode GetE2EStateMachineStateSetter() herangezogen. Dies stellt sicher, dass der Zustand der E2E-Zustandsmaschine dediziert für die Setter-Interaktion abgefragt wird (in Abgrenzung zu Getter- und Notifier-Kanälen desselben Felds).

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R24-11 → R25-11 normative Änderung Vorgänger: FIG-c28ee19fe4aeba7b
  • Schnittstelle / Methodenaufruf: GetE2EStateMachineState() wurde durch die setter-spezifische API-Methode GetE2EStateMachineStateSetter() ersetzt.
  • Textformatierung / Layout: Sämtliche Methodenaufrufe und Bezeichner (u. a. Field.Set(), Output.setvalue(data), Output.SetError(errorcode), Store result in SM state(), GetMessage(serialized data), Process non protected data(), Process E2E protected header(), Deserialize serialized data()) wurden von zweizeiliger Darstellung mit abgesetzten Klammern/Parametern auf eine durchgehende einzeilige Formatierung umgestellt.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

alt | [E2E check OK] | [E2E Error] | alt | [received message has type ERROR] | [E2E error] | [no E2E error] | Client Application ara::com Transmission |                       |   |  |  |  |  |     |  |  |   |    |  |        |  |   |   |  |   |  |  |  |  |   |     |     |  |  |   |    |  |  |  |   |  |  |          |  |   |  |  |  |  |        |  |      |  |  |     |  |    |    | ! |  |    |  | "  |       |  |      |                 |  |   | Output.setvalue(data) | Field.Set() | Process E2E protected header() | E2E_Check() | Process non protected data() | Deserialize serialized data() | GetMessage(serialized data) | process error domain() | process data() | process error domain() | MessageReception() | GetE2EStateMachineStateSetter() | Store result in SM state() | Output.SetError(errorcode)

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_SWS_CommunicationManagement S. 271 7.29 Figure 7.29: Receive response to a SET Message