DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_SWS_CommunicationManagement FIG-d0a7f9756c39bd77 933 × 1304 px 3 Release(s)

Figure 7.18: E2E Subscriber

SHA-256 Inhalts-Fingerabdruck: d0a7f9756c39bd77fbaa2e169e179eba230e8bd5635a4b454c1e251f6d47891a
✦ 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: 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: ara::com::e2e::ProfileCheckStatus: Abfrage des E2E-Prüfstatus eines bestimmten Samples durch die Anwendung mit vollqualifiziertem Rückgabetyp.
  • E2E_check(dataID, null_ptr): Result: Meldung über ausbleibende Nachrichten an die E2E-Zustandsmaschine.
  • GetE2EStateMachineState(): ara::com::e2e::SMState: Abfrage des aggregierten E2E-Zustands durch die Anwendung mit vollqualifiziertem Rückgabetyp.

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 des ProfileCheckStatus entscheiden, ob das Sample weiterverwendet oder verworfen wird.
  • Typisierung der E2E-Statusausgaben ist normativ auf ara::com::e2e::ProfileCheckStatus (für Einzelsamples) und ara::com::e2e::SMState (für den Gesamtzustand) festgelegt.
  • Mögliche Rückgabewerte von E2E_check bei vorliegenden Daten: OK, REPEATED, WRONGSEQUENCE, WRONGCRC.
  • Möglicher Rückgabewert bei ausbleibenden Daten (null_ptr): NONEWDATA.

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

R21-11 → R22-11 redaktionell Vorgänger: FIG-237d16c1dbf2a611
  • 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.
R24-11 → R25-11 normative Änderung Nachfolger: FIG-1ac0b4daefe02812
  • Schleifenstruktur umgestellt: Die Schleife loop through received samples until maxNumberOfSamples is reached umschließt nun den Abruf von der Transportschicht sowie den Verarbeitungsblock alt.
  • Schnittstellenaufruf zur Transportschicht von stapelorientiertem GetMessages(): serializedSamples (außerhalb der Schleife) zu schrittweisem GetNextMessage(): serializedSamples (innerhalb der Schleife) geändert.
  • Guard der leeren Verzweigung im alt-Fragment präzisiert von [no new serializedSamples] zu [no serialized samples were processed].
  • Header-Farbgebung der Lebenslinien von Türkis zu Beige 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 | GetNewSamples(f, maxNumberOfSamples): ara:: | core::Result<size_t> | Deserialize(serializedSample): sample | Store Result in global SMState | GetMessages( ): serializedSamples | ProcessE2EProtectedHeader( serializedSample) | f(SamplePtr) | SamplePtr->GetProfileCheckStatus: ara:: | com::e2e::ProfileCheckStatus | Store Result in global SMState | E2E_check (dataID, serializedSample): Result | ProcessNonProtectedHeader (serializedSample) | E2E_check(dataID, null_ptr): Result | Store Result in ProfileCheckStatus of SamplePtr | GetE2EStateMachineState( ): ara:: | com::e2e::SMState

Vorkommen in AUTOSAR-Releases (3)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R22-11 AUTOSAR_SWS_CommunicationManagement S. 246 7.27 Figure 7.27: E2E Subscriber
R23-11 AUTOSAR_AP_SWS_CommunicationManagement S. 242 7.25 Figure 7.25: E2E Subscriber
R24-11 AUTOSAR_AP_SWS_CommunicationManagement S. 245 7.18 Figure 7.18: E2E Subscriber