Kapselt actieve diagnoseondersteunde leesoverdrachten in en stuurt binnenkomende gegevensoverdrachten door naar geregistreerde handlers.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9db606b147f6HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Kapselt actieve diagnoseondersteunde leesoverdrachten in en stuurt binnenkomende gegevensoverdrachten door naar geregistreerde handlers.
De klasse dient voor het inkapselen en gestructureerd beheren van alle varianten van diagnosegebaseerde leesoverdrachten binnen de adaptieve AUTOSAR-diagnosemodule conform [SWS_DM_01548]. Na het succesvol initiëren van een leesbewerking delegeert de Diagnostic Server-instantie binnenkomende verzoeken voor de sequentiële datablokoverdracht en voor het afsluiten van de sessie naar de geregistreerde methoden van de lees-handler [SWS_DM_01317]. Door het doelgericht uitschakelen van kopieeroperaties bij gelijktijdige ondersteuning van move-semantiek waarborgt de klasse daarbij een eenduidige toewijzing van het eigendom van de onderliggende overdrachtssessie.
Context
De klasse ara::diag::DataTransferReadSession representeert de inkapseling van alle varianten voor het diagnoseondersteund lezen van datablokken in de adaptieve diagnosemodule [SWS_DM_01548]. In het kader van gestandaardiseerde UDS-services zoals RequestFileTransfer (0x38), TransferData (0x36) en RequestTransferExit (0x37) fungeert de sessieklasse als schakel tussen de interne runtime-omgeving van de diagnoseserver en de applicatiespecifieke lees-handlers SWS Diagnostics §7 “Realization of TransferData and RequestTransferExit”. Deze zorgt ervoor dat lopende uitleesbewerkingen – zoals voor bestanden via ReadFile[SWS_DM_01314] of mappen via ReadDir[SWS_DM_01315] – geïsoleerd worden beheerd en naar de bijbehorende handlers worden doorgestuurd.
Een instantie van ara::diag::DataTransferReadSession heeft een levensduur die strikt gekoppeld is aan de overdrachtssessie. Het aanmaken via een standaardconstructor is expliciet verboden [SWS_DM_01549]. In plaats daarvan wordt de sessie geïnitialiseerd via gespecialiseerde template-constructors die de applicatiespecifieke handlers registreren SWS Diagnostics §7 “Realization of TransferData and RequestTransferExit”. De instantiëring vindt in de praktijk vermoedelijk typisch plaats door de diagnoseserver of de service-handler bij initiatie van de bestandsoverdracht. Vraag Q-b0706bcd28c702c6 (open)
Om meervoudige toewijzingen of inconsistente sessietoestanden uit te sluiten, is ara::diag::DataTransferReadSession ontworpen als niet-kopieerbare enkelvoudige instantie: zowel de copy-constructor [SWS_DM_01553] als de copy-toewijzingsoperator [SWS_DM_01554] zijn verwijderd (=delete). Een overdracht van eigendomsverhoudingen is uitsluitend voorzien via move-semantiek. De move-constructor [SWS_DM_01551] en de move-toewijzingsoperator [SWS_DM_01552] zijn gedefinieerd als noexcept=default. De vernietiging vindt deterministisch plaats via de destructor [SWS_DM_01550], die eveneens als noexcept=default is gedeclareerd. Vermoedelijk leidt de voltooiing van de overdracht via RequestTransferExit tot het vrijgeven van het object. Vraag Q-c1999fd1f283a007 (open)
Gebruikspad
Het typische verloop van een lees-overdrachtssessie is onderverdeeld in drie opeenvolgende fasen:
Initialisatie: Een externe diagnoseclient verzendt RequestFileTransfer met een leesmodus zoals ReadFile (0x04) [SWS_DM_01314] of ReadDir (0x05) [SWS_DM_01315]. Hierbij wordt de sessie-instantie aangemaakt en de lees-handler geregistreerd.
Gegevensoverdracht: Binnenkomende diagnoseverzoeken van het type TransferData (0x36) verwerkt de diagnoseserver door de corresponderende Read-methode van de via de template-constructors geregistreerde handler aan te roepen [SWS_DM_01317]. Dit gebeurt iteratief voor elk opgevraagd datablok.
Voltooiing: Zodra alle gegevens zijn overgedragen, verzendt de client RequestTransferExit (0x37). De diagnoseserver roept daaropvolgend de Exit-methode van de geregistreerde handler aan om de leesbewerking correct te beëindigen [SWS_DM_01318].
Omdat ara::diag::DataTransferReadSession gedeclareerd is als final en de standaardconstructor [SWS_DM_01549] niet bestaat, wordt een foutieve creatie zonder geregistreerde handler al tijdens compilatietijd voorkomen. Evenzo verhinderen de verwijderde kopieeroperaties [SWS_DM_01553] het per ongeluk dupliceren van sessietoestanden. Zowel move-constructie als move-toewijzing en vernietiging garanderen door hun noexcept-specificatie absolute uitzonderingsveiligheid [SWS_DM_01551][SWS_DM_01550]. Faalt de levering van datablokken in de handler, dan wordt dit in het kader van de UDS-communicatie op protocolniveau afgehandeld.
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11 (module diag) en vat de eisen aan ara::diag::DataTransferReadSession samen.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel