DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_CommunicationManagement FIG-237d16c1dbf2a611 830 × 1212 px 1 Release(s)

Figure 7.6: E2E Subscriber

SHA-256 Inhalts-Fingerabdruck: 237d16c1dbf2a61143b8100050e6074740013855aa7f8b7e1a82ce20c1da2f00
✦ 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

UML-Sequenzdiagramm (sd Subscriber) zur Darstellung des E2E-geschützten Datenempfangs auf Abonnentenseite in AUTOSAR Adaptive Platform Communication Management (ara::com). Es visualisiert das Zusammenspiel zwischen Anwendungsschicht, Kommunikations-Middleware, E2E-Bibliothek und Transportschicht bei der Verarbeitung eingehender serialisierter Samples.

2. Komponenten, Entitäten & Schnittstellen

Beteiligte Lebenslinien:

  • Subscriber application: Abonnierende Anwendungskomponente.
  • ara::com: Kommunikations-Middleware (Proxy).
  • Reception: Unterlagerte Empfangsschicht.

Schnittstellen und Nachrichten:

  • GetNewSamples(f, maxNumberOfSamples): ara::core::Result<size_t>: Abruf empfangener Samples durch Bereitstellung eines Callables f.
  • GetMessages(): serializedSamples: Stapelabruf empfangener serialisierter Daten von Reception.
  • ProcessNonProtectedHeader (serializedSample): Interne Headerverarbeitung.
  • E2E_check (dataID, serializedSample): Result: Validierung der E2E-Prüfsummen und Sequenzen.
  • ProcessE2EProtectedHeader( serializedSample): Verarbeitung des geschützten Headers.
  • Deserialize(serializedSample): sample (bzw. typografisch D eserialize...: sam ple): Deserialisierung der Nutzlast.
  • Store Result in ProfileCheckStatus of SamplePtr: Setzen des individuellen Prüfergebnisses im Smart-Pointer des Samples.
  • Store Result in global SMState: Aktualisierung des E2E-Zustandsautomaten.
  • f(SamplePtr): Übergabe des geschützten Smart-Pointers an das Callable der Anwendung.
  • SamplePtr->GetProfileCheckStatus: Result: Abfrage des E2E-Prüfstatus eines bestimmten Samples durch die Anwendung.
  • E2E_check(dataID, null_ptr): Result: Meldung über ausbleibende Nachrichten an die E2E-Zustandsmaschine.
  • GetE2EStateMachineState(): Result: Abfrage des aggregierten E2E-Zustands durch die Anwendung.

3. Dynamisches Verhalten & Sequenzablauf

  1. Die Anwendung ruft GetNewSamples(f, maxNumberOfSamples) auf.
  2. ara::com holt über GetMessages() vorliegende serialisierte Samples von Reception ab.
  3. Fallunterscheidung im alt-Fragment:
    • Fall [at least one serializedSample]: Innerhalb einer Schleife loop through received samples until maxNumberOfSamples is reached wird jedes Sample einzeln verarbeitet: ProcessNonProtectedHeader, E2E_check, ProcessE2EProtectedHeader, Deserialize, Speicherung des Prüfergebnisses im ProfileCheckStatus des SamplePtr sowie Aktualisierung im globalen SMState. Anschließend wird das Callable f(SamplePtr) aufgerufen. Im Kontext des Callbacks kann die Anwendung über SamplePtr->GetProfileCheckStatus das individuelle Ergebnis ermitteln.
    • Fall [no new serializedSamples]: Es wird E2E_check(dataID, null_ptr) aufgerufen und das Ergebnis im globalen SMState abgelegt.
  4. Außerhalb der Schleife kann die Anwendung den Gesamtzustand der Kommunikation über GetE2EStateMachineState() abfragen.

4. Normative Relevanz & Entwickler-Hinweise

  • Das Callable f überträgt den Besitz (ownership) des SamplePtr an die Anwendung. Die Anwendung kann im Kontext des Callbacks anhand von ProfileCheckStatus entscheiden, ob das Sample weiterverwendet oder verworfen wird.
  • Mögliche Rückgabewerte von E2E_check bei vorliegenden Daten: OK, REPEATED, WRONGSEQUENCE, WRONGCRC.
  • Möglicher Rückgabewert bei ausbleibenden Daten (null_ptr): NONEWDATA.
  • Die Pufferung in einem lokalen Proxy-Cache entfällt zugunsten der direkten Weitergabe via SamplePtr bis zur Begrenzung durch maxNumberOfSamples.

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

R19-11 → R21-11 normative Änderung Vorgänger: FIG-0876f582de0ee2fb
  • Lebenslinie Transmission umbenannt in Reception.
  • Transport-Aufruf geändert von GetMessage(): serializedSamples zu GetMessages(): serializedSamples.
  • Interne E2E-Prüfmethoden umbenannt von E2Echeck(...) bzw. Check(...) zu E2E_check(dataID, serializedSample): Result bzw. E2E_check(dataID, null_ptr): Result.
  • Zwischenspeicherung in lokalen Cache entfällt; stattdessen Ablage in Store Result in global SMState und Store Result in ProfileCheckStatus of SamplePtr.
  • Einführung einer äußeren Schleife loop through received samples until maxNumberOfSamples is reached über die Verarbeitung der einzelnen Samples.
  • Zugriff auf Sample-Status erfolgt nun über SamplePtr->GetProfileCheckStatus: Result, globaler E2E-Zustand über GetE2EStateMachineState(): Result.
  • Ergänzung von Kommentarboxen zu möglichen Rückgabewerten (OK, REPEATED, WRONGSEQUENCE, WRONGCRC bzw. NONEWDATA).
  • Typografischer Fehler D eserialize(serializedSample): sam ple in ara::com.
  • Header-Farbgebung der Lebenslinien von Türkis zu Beige geändert.
R21-11 → R22-11 redaktionell Nachfolger: FIG-d0a7f9756c39bd77
  • Schreibweise korrigiert von D eserialize(serializedSample): sam ple zu Deserialize(serializedSample): sample.
  • Explizite Rückgabetypen in Signaturen präzisiert: GetE2EStateMachineState(): ara::com::e2e::SMState (zuvor : Result) und SamplePtr->GetProfileCheckStatus: ara::com::e2e::ProfileCheckStatus (zuvor : Result).
  • Header-Farbgebung der Lebenslinien von Beige zu Türkis geändert.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Subscriber application | The core E2E logic. dataID is determined at latest during the instantiation of the proxy. | ara::com Reception | alt new serializedSamples from Reception | [at least one serializedSample] | [no new serializedSamples] | loop through received samples until maxNumberOfSamples is reached | Example how to access E2E global state | The entire communication state ("can the samples be consumed or not") is available with the new getter function GetE2EStateMachineState(). | Example how to access E2E result of a dedicated sample | Callable f finally transfers the ownership of the SamplePtr to the subscribing application. The application can already retrieve the ProfileCheckResult in the context of the callable to decide if the sample should be kept or could be destroyed. | If no new serializedSamples, then execute E2E_check() so that E2E knows that no data has been received (lost/delayed). | There are possibly several new messages. GetNewSamples() processes all of them in a sequence. | Possible retun values are: * OK * REPEATED * WRONGSEQUENCE * WRONGCRC | Possible retun values are: * NONEWDATA | E2E_check(dataID, null_ptr): Result | GetNewSamples(f, maxNumberOfSamples): | ara::core::Result<size_t> | GetE2EStateMachineState( ): Result | SamplePtr->GetProfileCheckStatus: | Result | ProcessNonProtectedHeader (serializedSample) | f(SamplePtr) | GetMessages( ): serializedSamples | Store Result in global SMState | Store Result in ProfileCheckStatus of SamplePtr | D eserialize(serializedSample): sam ple | ProcessE2EProtectedHeader( serializedSample) | E2E_check (dataID, serializedSample): Result | Store Result in global SMState

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R21-11 AUTOSAR_SWS_CommunicationManagement S. 58 7.6 Figure 7.6: E2E Subscriber
R21-11 AUTOSAR_SWS_CommunicationManagement S. 58 7.6 Figure 7.6: E2E Subscriber