DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_CommunicationManagement FIG-0876f582de0ee2fb 933 × 1305 px 2 Release(s)

Figure 7.6: E2E Subscriber

SHA-256 Inhalts-Fingerabdruck: 0876f582de0ee2fb42f56aaf21c52e968afe12b019c15962ee606e4fd0421366
✦ 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: Laufzeitumgebung des Communication Management.
  • Transmission: Transportschicht.

Schnittstellen und Nachrichten:

  • GetNewSamples(F&& f, size_t maxNumberOfSamples): ara::core::Result<size_t>: Aufruf der Anwendung zur Entgegennahme neuer Samples mittels Callback-Funktor.
  • GetMessage(): serializedSamples: Abruf serialisierter Daten von der Transportschicht.
  • ProcessNonProtectedHeader(&serializedSample): Vorverarbeitung ungeschützter Headerdaten in ara::com.
  • E2Echeck(dataID, &serializedSample): Result: Interne E2E-Prüfung in ara::com.
  • ProcessE2EProtectedHeader(&serializedSample): Auswertung des geschützten E2E-Headers.
  • Deserialize(&serializedSample): sample: Deserialisierung in ein Anwendungssample.
  • Store Result.ProfileCheckStatus in sample: Zuordnung des Profil-Prüfstatus zum Sample.
  • Add sample+ProfileCheckStatus to the cache(cache policy, cache size, filter): Ablegen von Sample und Status im Cache.
  • Store Result as proxy.Result: Speicherung des Gesamtergebnisses im Proxy.
  • f(SamplePtr(sample) with ProfileCheckStatus): Synchroner Callback zur Übergabe des geschützten Samples an die Anwendungslogik.
  • Check(dataID, null_ptr): Result: Interne Prüfung bei Ausbleiben von Samples.
  • GetResult(): Result: Getter zur Abfrage des globalen E2E-Kommunikationszustands.
  • Lokaler Zugriff: Access data, e.g. samples[idx].speed, samples[idx].GetProfileCheckStatus().

3. Dynamisches Verhalten & Sequenzablauf

  1. Die Anwendung ruft GetNewSamples(F&& f, size_t maxNumberOfSamples) auf.
  2. ara::com fordert über GetMessage() serialisierte Daten von Transmission an.
  3. Fallunterscheidung im alt-Fragment:
    • Fall [at least one serializedSample - perform for each serializedSample]: Für jedes Sample werden ungeschützte Header verarbeitet, E2Echeck ausgeführt, geschützte Header verarbeitet und die Deserialisierung durchgeführt. Das Sample erhält ProfileCheckStatus, wird gecacht, das Proxy-Ergebnis aktualisiert und das Sample via f(SamplePtr(sample) with ProfileCheckStatus) direkt an die Callback-Funktion der Anwendung übergeben.
    • Fall [no new serializedSamples]: Führt Check(dataID, null_ptr) aus und speichert das Resultat in proxy.Result.
  4. Die Anwendung kann über GetResult(): Result den Gesamtstatus der Kommunikation erfragen und auf Sample-Ebene über GetProfileCheckStatus() den E2E-Zustand des einzelnen Datensatzes prüfen.

4. Normative Relevanz & Entwickler-Hinweise

  • Die Übergabe von Samples erfolgt über ein Funktor-/Callback-Muster (GetNewSamples), das den Besitz bzw. Zeiger (SamplePtr) übergibt.
  • Jedes Sample führt das Attribut ProfileCheckStatus (bzw. ProfileCheckResult) mit sich.
  • Der globale Kommunikationsstatus („können die Samples konsumiert werden oder nicht“) wird über GetResult() bereitgestellt.
  • Bleiben Daten aus, aktualisiert Check(dataID, null_ptr) die Zustandsüberwachung.

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

R18-10_R4.4.0_R1.5.0 → R19-03 normative Änderung Vorgänger: FIG-1009a092b74a198b
  • Aufruf zum Empfang geändert: Update(filter): isAnyNewSampleAdded ersetzt durch GetNewSamples(F&& f, size_t maxNumberOfSamples): ara::core::Result<size_t>.
  • Abfrage der Daten geändert: Aufrufe GetCachedSamples(): Collection of samples, each with e2eCheckStatus und GetE2EResult(): e2eResult ersetzt durch synchronen Callback f(SamplePtr(sample) with ProfileCheckStatus) und Status-Getter GetResult(): Result.
  • Header-Farbgebung der Lebenslinien von Gelb/Beige zu Türkis geändert.
R19-11 → R21-11 normative Änderung Nachfolger: FIG-237d16c1dbf2a611
  • 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.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Subscriber application ara::com Transmission | There are possibly several new messages. Update() processes all of them in a sequence. | The core E2E logic. DataID is determined at latest during the instantiation of the proxy. | alt new serializedSamples from Transmission | [at least one serializedSample - perform for each serializedSample] | [no new serializedSamples] | If no new serializedSamples, then execute Check() so that E2E knows that no data has been received (lost/delayed). | Each sample is now accompanied by ProfileCheckResult attribute. | The entire communication state ("can the samples be consumed or not") is available with the new getter function GetResult(). | Deserialize(&serializedSample): sample | Access data, e.g. samples[idx].speed, samples[idx].GetProfileCheckStatus( ) | Store Result as proxy.Result | GetResult( ): Result | Check(dataID, null_ptr): Result | E2Echeck(dataID, &serializedSample): Result | GetMessage( ): serializedSamples | ProcessE2EProtectedHeader( &serializedSample) | Add sample+ProfileCheckStatus to the cache(cache policy, cache size, | filter) | Store Result as proxy.Result | Store Result.ProfileCheckStatus in sample | f(SamplePtr(sample) with | ProfileCheckStatus) | GetNewSamples(F&& f, size_t maxNumberOfSamples): ara::core:: | Result<size_t> | ProcessNonProtectedHeader(&serializedSample)

Vorkommen in AUTOSAR-Releases (4)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R19-03 AUTOSAR_SWS_CommunicationManagement S. 37 7.4 Figure 7.4: E2E Subscriber
R19-03 AUTOSAR_SWS_CommunicationManagement S. 37 7.4 Figure 7.4: E2E Subscriber
R19-11 AUTOSAR_SWS_CommunicationManagement S. 53 7.6 Figure 7.6: E2E Subscriber
R19-11 AUTOSAR_SWS_CommunicationManagement S. 53 7.6 Figure 7.6: E2E Subscriber