DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_SWS_CommunicationManagement FIG-41980e63748c84b0 932 × 468 px 1 Release(s)

Figure 7.6: Serialization of Structs with Length Fields (Example)

SHA-256 Inhalts-Fingerabdruck: 41980e63748c84b0510cfa1df93c0e629261728e31fa078ab9a357595064bb3a
✦ 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

Struktur- und Serialisierungsdiagramm (Wire-Format-Speicherabbild) im Kontext des AUTOSAR Adaptive Platform Communication Management (ara::com / SOME/IP- bzw. IPC-Serialisierung). Das Diagramm visualisiert die lineare Abbildung hierarchisch geschachtelter C++-Datenstrukturen (struct) in einen Byte-Stream unter Verwendung expliziter Längenfelder (Length Fields).

2. Komponenten, Entitäten & Schnittstellen

Auf Quelldatenseite definiert das Diagramm die Datentypen:

  • Struct_1: Enthält die Member uint32 a, das statische Array float32 b[2] und die Unterstruktur Struct_2 c.
  • Struct_2: Enthält die Member uint32 d, das statische Array float32 e[2] und die Unterstruktur Struct_3 f.
  • Struct_3: Geschachtelte Folgestruktur (weiterer Inhalt abkürzend durch Fortsetzungspunkte dargestellt).

Auf Zielseite (Byte-Stream nach serialization) liegen sequentiell vor:

  • Konfigurierte Längenfelder (grau hinterlegt): std::uint16_t lf1 (für Struct_1), std::uint16_t lf2 (für Struct_2) und std::uint16_t lf3 (für Struct_3).
  • Serialisierte primitive Werte und Einzelelemente: std::uint32_t a, std::float32_t b_1, std::float32_t b_2, std::uint32_t d, std::float32_t e_1, std::float32_t e_2.

3. Dynamisches Verhalten & Sequenzablauf

Die Serialisierung erfolgt rekursiv in Pre-Order-Reihenfolge bezüglich der Strukturcontainer:

  1. Einstieg in Struct_1: Voranstellen des Längenfeldes lf1 (std::uint16_t) in den Puffer.
  2. Lineare Serialisierung der primitiven Attribute von Struct_1: a (std::uint32_t), gefolgt von den sequentiellen Array-Elementen b_1 und b_2 (std::float32_t).
  3. Rekursiver Abstieg in Member c (Struct_2): Einfügen des Längenfeldes lf2 (std::uint16_t).
  4. Lineare Serialisierung der primitiven Attribute von Struct_2: d (std::uint32_t), gefolgt von den Array-Elementen e_1 und e_2 (std::float32_t).
  5. Rekursiver Abstieg in Member f (Struct_3): Einfügen des Längenfeldes lf3 (std::uint16_t), gefolgt von den Nutzdaten der dritten Struktur.

4. Normative Relevanz & Entwickler-Hinweise

Das Diagramm illustriert das Verhalten des Serialisierers bei aktivierter Längenfeld-Konfiguration (lengthFieldSize = 2 bzw. 16-Bit) in den ARXML-Transformationsbeschreibungen (z. B. SOME/IP Transformation Props):

  • Längenfelder quantifizieren die Byte-Länge der unmittelbar nachfolgenden serialisierten Struktur inklusive aller darin verschachtelten Unterstrukturen und deren Längenfelder. Das Längenfeld selbst ist nicht Teil des angegebenen Längenwerts.
  • Statische Arrays fester Größe (b[2], e[2]) werden ohne Array-Längenfeld direkt inline expandiert, sofern nicht explizit als dynamische Sequenz mit eigenem Längenfeld modelliert.
  • Das Voranstellen von Längenfeldern ermöglicht Deserialisierern das gezielte Überspringen (Forward-Skipping) unbekannter oder erweiterter Strukturen zur Gewährleistung von Vorwärts- und Rückwärtskompatibilität.
  • Bei der Implementierung ist auf Endianness (Netzwerk-Byte-Order) und etwaige systemspezifische Alignment-/Padding-Regeln zu achten.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_SWS_CommunicationManagement S. 123 7.6 Figure 7.6: Serialization of Structs with Length Fields (Example)