Kapselt gemeinsame Header-Felder wie Zeitstempel und Sequenznummern für IEEE-1722-AVTPDU-Streams als optionale Werte.
Kontext
Die Klasse ara::rds::IEEE1722DatagramAVTPDUCommonStreamHeaderFields stellt innerhalb des Moduls Raw Data Stream (rds) der AUTOSAR Adaptive Platform die gemeinsame Repräsentation der Stream-Header-Felder für IEEE-1722-AVTPDU-Datagramme bereit SWS RawDataStream S. 1. Sie wird über den Header #include "ara/rds/raw_data_stream_IEEE1722.h" eingebunden und bildet das standardisierte Fundament für die Verarbeitung von Audio/Video Transport Protocol Data Units (AVTPDU) über Ethernet-basierte Datenströme. Sämtliche in der Spezifikation definierten Protokollvariablen sind mit dem Zugriffsmodifikator protected versehen ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90237], [SWS_RDS_90238], [SWS_RDS_90239], [SWS_RDS_90240], [SWS_RDS_90241]). Interpretation: Dies legt nahe, dass die Klasse als Vererbungsbasis für spezialisierte Datagrammtypen konzipiert ist und nicht zur direkten Verwendung als eigenständiges Objekt im Anwendungscode gedacht sein dürfte. Frage Q-11a6ac64bcd3c7d8 (offen)
Die Klasse bündelt Protokollattribute des IEEE-1722-AVTP-Stroms. Hierzu gehören die Sequenznummer sequenceNum [SWS_RDS_90240] zur Verfolgung der Paketreihenfolge, der Zeitstempel avtp_timestamp des Typs ara::tsync::Timestamp [SWS_RDS_90237] zur zeitlichen Einordnung im synchronisierten Netzwerk sowie das Zeitunsicherheits-Flag tu [SWS_RDS_90241]. Zusätzliche Header-Felder wie MAC-Adresse, Kennung und Flags vervollständigen den Protokollrahmen ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90238], [SWS_RDS_90239]). Die konsequente Kapselung jedes Datenfelds in ein ara::core::Optional berücksichtigt, dass je nach AVTPDU-Formatvariante nicht stets alle Felder belegt sein müssen.
Lebenszyklus
Die Instanziierung und Lebensdauer der gemeinsamen Header-Felder ist unmittelbar an die jeweilige abgeleitete Datagramm-Klasse gebunden. Da die Member protected deklariert sind, werden sie typischerweise im Konstruktor einer spezialisierten Unterklasse angelegt, sobald ein AVTPDU-Strom empfangen oder für den Versand assembliert wird SWS RawDataStream S. 1.
Zur ordnungsgemäßen Zerstörung deklariert die Klasse einen virtuellen Destruktor mit dem Bezeichner ~IEEE1722DatagramAVTPDUCommonStreamHeaderFields() noexcept [SWS_RDS_90242]. Durch die Virtualität wird sichergestellt, dass beim Löschen eines Datagramms über einen Basisklassenzeiger der vollständige Destruktoraufruf der abgeleiteten Instanz erfolgt. Die Kennzeichnung als noexcept garantiert, dass bei der Zerstörung keine Exceptions geworfen werden.
In Bezug auf die Nebenläufigkeit stellt die Klasse keine Synchronisationsmechanismen bereit. Interpretation: Ein threadsicherer Zugriff auf die geschützten Member bei paralleler Verarbeitung muss vermutlich durch übergeordnete Mechanismen der anwendenden Schichten gewährleistet werden. Frage (offen)
Nutzungspfad
In der Praxis erfolgt die Nutzung typischerweise entlang des folgenden Ablaufs:
- Erzeugung und Belegung: Eine abgeleitete Datagramm-Klasse instanziiert die Header-Struktur. Beim Senden belegt sie die benötigten
ara::core::Optional-Felder, beispielsweise die Sequenznummer sequenceNum [SWS_RDS_90240] und den AVTP-Zeitstempel avtp_timestamp [SWS_RDS_90237].
- Verarbeitung im Empfangspfad: Eingehende Rohdaten werden deserialisiert und den Attributen zugewiesen. Die Auswertelogik prüft das Vorhandensein der optionalen Werte und verarbeitet etwa das Timing über den Synchronisationszeitstempel [SWS_RDS_90237] oder verwirft duplizierte Pakete anhand von
sequenceNum [SWS_RDS_90240].
- Freigabe: Nach Verarbeitung des Streams wird die Instanz über den Destruktor bereinigt [SWS_RDS_90242].
Fehlerszenarien
Für die Klasse sind in der Spezifikation keine spezifischen Fehlercodes oder Exception-Typen definiert. Mögliche Fehlerzustände beschränken sich auf die Handhabung der optionalen Datenfelder und Schnittstellenbedingungen:
Da alle Felder als ara::core::Optional gekapselt sind ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90237], [SWS_RDS_90238], [SWS_RDS_90239], [SWS_RDS_90240], [SWS_RDS_90241]), muss vor dem Zugriff auf deren Wert sichergestellt sein, dass das Feld gültig belegt ist. Ein ungeprüfter Direktzugriff auf ein leeres Optional-Objekt führt zu fehlerhaftem Verhalten.
Der Destruktor ist als noexcept deklariert [SWS_RDS_90242]. Eventuell auftretende Fehler bei der Ressourcenbereinigung in abgeleiteten Strukturen dürfen somit nicht als Ausnahmen weitergereicht werden, sondern müssen intern behandelt werden.
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11.
gemini-3.8-flash-medium· 2026-10-13