Definieert de gemeenschappelijke AVTPDU-kopgegevensvelden voor IEEE-1722-datagrammen in de module Raw Data Stream.
Context
In het AUTOSAR Adaptive Platform stelt de module Raw Data Stream (RDS) mechanismen beschikbaar voor de efficiënte uitwisseling van ongestructureerde datastromen en gestandaardiseerde streamingprotocollen. De klasse ara::rds::IEEE1722DatagramAVTPDUCommonHeaderFields dient binnen deze module als fundamentele representatie van de gemeenschappelijke kopgegevensvelden (Common Header Fields) van Audio/Video Transport Protocol Data Units (AVTPDU's) conform IEEE 1722, zoals gespecificeerd in SWS RawDataStream §1 “IEEE 1722 Datagram”.
De structuur kapselt de wezenlijke protocolvelden in die voor AVTPDU-datagrammen in de IEEE-1722-standaard zijn gedefinieerd. Hiertoe behoort het attribuut version van het type std::uint8_t ([SWS_RDS_90232]), dat de protocolversie van de AVTP-standaard afbeeldt. Verder neemt het dataveld avtpStreamDataSubtype van het type std::uint16_t ([SWS_RDS_90230]) het subtype van de AVTP-streamingpayload op om het specifieke formaat van de getransporteerde datastromen te identificeren. Aanvullend slaat het element headerSpecific als std::uint8_t ([SWS_RDS_90231]) protocol- en formatspecifieke stuurbits en vlaggen van de AVTPDU-header op.
Alle payloadvelden van de klasse worden gedeclareerd onder de toegangsmodificator protected. Hieruit volgt de interpretatie dat ara::rds::IEEE1722DatagramAVTPDUCommonHeaderFields primair geconcipieerd lijkt te zijn als fundamentele basisklasse voor gespecialiseerde IEEE-1722-datagramklassen binnen de RDS-module, in plaats van direct door gebruikers als zelfstandig waarde-object te worden geïnstantieerd. Vraag Q-674fc96343869829 (open)
Levenscyclus
De levenscyclus van ara::rds::IEEE1722DatagramAVTPDUCommonHeaderFields richt zich naar de rol als fundamentele headerstructuur. De instantiëring vindt plaats in combinatie met een concrete specialisatie die overerft van deze basisklasse. De toewijzing en initialisatie van de beschermde attributen version ([SWS_RDS_90232]), avtpStreamDataSubtype ([SWS_RDS_90230]) en headerSpecific ([SWS_RDS_90231]) worden gewoonlijk uitgevoerd in de constructor van de afgeleide klasse.
Voor het vernietigen van instanties stelt de specificatie expliciet een virtuele destructor beschikbaar: ~IEEE1722DatagramAVTPDUCommonHeaderFields() noexcept ([SWS_RDS_90233]). De aanwezigheid van deze virtuele destructor waarborgt dat afgeleide datagram-objecten polymorf via pointers of referenties naar de basisklasse veilig kunnen worden vernietigd, zonder dat er ongedefinieerd gedrag of resourcelekken ontstaan. Door de specificator noexcept wordt contractueel gegarandeerd dat tijdens het destructieproces geen excepties kunnen worden opgeworpen.
Wat betreft eigendomsverhoudingen en geheugenbeheer is de klasse onderworpen aan de algemene conventies voor datatransferobjecten in de RDS-module: instanties worden typisch ofwel op de stack van een verwerkende functie aangehouden of beheerd door bovenliggende databuffers en streamhandlers. Met betrekking tot concurrency biedt de datastructuur geen interne synchronisatiemechanismen. Interpretatie: de gelijktijdige toegang van meerdere threads tot dezelfde instantie vereist daarom vermoedelijk een externe synchronisatie door de aanroepende applicatie of het omringende runtimesysteem. Vraag (open)
Gebruikspad
Het typische gebruikspad is onderverdeeld in het aanmaken, invullen en evalueren van datagrammen in het kader van streamingverbindingen. Omdat de velden beschermd zijn, benaderen ontwikkelaars de basisvelden via gespecialiseerde subklassen.
Bij het verzenden van een IEEE-1722-datastroom instantieert de applicatie of een interne pijplijn van de RDS-module een afgeleide datagramklasse. Vervolgens worden de gemeenschappelijke AVTPDU-headervelden ingevuld: het veld version ([SWS_RDS_90232]) wordt ingesteld op de telkens ondersteunde protocolversie. Het veld avtpStreamDataSubtype ([SWS_RDS_90230]) wordt voorzien van de kenmerkende waarde van het specifieke payloadtype om de ontvanger in staat te stellen de datastroom te decoderen. Ten slotte configureert de afgeleide implementatie het veld headerSpecific ([SWS_RDS_90231]) met de vereiste sturende controlebits conform de IEEE-1722-specificatie.
Bij de ontvangst van netwerkpakketten via de Raw Data Stream verloopt het proces omgekeerd: inkomende ruwe gegevens worden gedeserialiseerd en overgebracht naar de overeenkomstige attributen van de afgeleide datagramklasse. Bovenliggende componenten kunnen vervolgens via polymorfe interfaces of getypeerde toegangsmethoden van de subklasse de headerinformatie controleren. Na succesvolle verwerking en doorgifte van de AVTPDU-payload naar de doelontvanger wordt het datagram vrijgegeven, waarbij de virtuele destructor ([SWS_RDS_90233]) de correcte vrijgave van alle resources waarborgt. Interpretatie: de geserialiseerde overdracht via het netwerk vindt vermoedelijk plaats via nageschakelde serialiseerders van de RDS-stack, die de header conform IEEE 1722 in de bytestroom ordenen. Vraag Q-7f31ac02b5e4facf (open)
Foutscenario's
Foutscenario's bij het werken met ara::rds::IEEE1722DatagramAVTPDUCommonHeaderFields vloeien primair voort uit onjuiste waarden in de headervelden of onjuist levenscyclusbeheer.
Op het niveau van de data-elementen kunnen ongeldige waarden leiden tot protocolschendingen. Wordt bijvoorbeeld voor version ([SWS_RDS_90232]) een door de tegenpartij niet-ondersteunde versiewaarde meegegeven, dan kan dit leiden tot het verwerpen van de gehele AVTPDU door de communicatiepartner. Evenzo leidt een foutief ingesteld veld avtpStreamDataSubtype ([SWS_RDS_90230]) ertoe dat de ontvanger de datastroom niet correct aan de passende decoder kan toewijzen. Een inconsistente toewijzing van headerSpecific ([SWS_RDS_90231]) kan op zijn beurt misinterpretaties met betrekking tot synchronisatievlaggen of datalengtes tot gevolg hebben.
Op C++-niveau sluit de virtuele destructor ~IEEE1722DatagramAVTPDUCommonHeaderFields() noexcept ([SWS_RDS_90233]) excepties tijdens het vernietigingsproces uit. Mocht een afgeleide klasse tijdens de vrijgave van resources eigen foutafhandelingslogica uitvoeren, dan moet gewaarborgd zijn dat ook daar geen excepties worden gegenereerd, om een onmiddellijke programma-afbreking via std::terminate te voorkomen.
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive R25-11 en is geautomatiseerd gegenereerd.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel