Kapselt aktive diagnosegestützte Leseübertragungen und leitet eingehende Datentransfers an registrierte Handler weiter.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9db606b147f6HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Kapselt aktive diagnosegestützte Leseübertragungen und leitet eingehende Datentransfers an registrierte Handler weiter.
Die Klasse dient der Kapselung und strukturierten Verwaltung aller Varianten diagnosebasierter Leseübertragungen innerhalb des adaptiven AUTOSAR-Diagnosemoduls gemäß [SWS_DM_01548]. Nach der erfolgreichen Einleitung eines Lesevorgangs delegiert die Diagnostic-Server-Instanz eingehende Anfragen für den sequenziellen Datenblocktransfer sowie für den Sitzungsabschluss an die registrierten Methoden des Lese-Handlers [SWS_DM_01317]. Durch die gezielte Deaktivierung von Kopieroperationen bei gleichzeitiger Unterstützung von Move-Semantik gewährleistet die Klasse dabei eine eindeutige Besitzzuordnung der zugrunde liegenden Transfersitzung.
Kontext
Die Klasse ara::diag::DataTransferReadSession repräsentiert die Kapselung aller Varianten für das diagnosegestützte Lesen von Datenblöcken im adaptiven Diagnosemodul [SWS_DM_01548]. Im Rahmen standardisierter UDS-Dienste wie RequestFileTransfer (0x38), TransferData (0x36) und RequestTransferExit (0x37) fungiert die Sitzungsklasse als Bindeglied zwischen der internen Laufzeitumgebung des Diagnose-Servers und den anwendungsspezifischen Lese-Handlern SWS Diagnostics §7 „Realization of TransferData and RequestTransferExit“. Sie stellt sicher, dass laufende Auslesevorgänge – etwa für Dateien über ReadFile[SWS_DM_01314] oder Verzeichnisse über ReadDir[SWS_DM_01315] – isoliert verwaltet und an die zugehörigen Handler weitergeleitet werden.
Eine Instanz von ara::diag::DataTransferReadSession besitzt eine strikt an die Transfersitzung gekoppelte Lebensdauer. Die Erzeugung über einen Standardkonstruktor ist explizit untersagt [SWS_DM_01549]. Stattdessen wird die Sitzung über spezialisierte Template-Konstruktoren initialisiert, welche die anwendungsspezifischen Handler registrieren SWS Diagnostics §7 „Realization of TransferData and RequestTransferExit“. Die Instanziierung dürfte in der Praxis typischerweise durch den Diagnose-Server oder den Service-Handler bei Initiierung des Dateitransfers erfolgen. Frage Q-b0706bcd28c702c6 (offen)
Um Mehrfachbelegungen oder inkonsistente Sitzungszustände auszuschließen, ist ara::diag::DataTransferReadSession als unkopierbare Einzelinstanz konzipiert: Sowohl der Kopierkonstruktor [SWS_DM_01553] als auch der Kopierzuweisungsoperator [SWS_DM_01554] sind gelöscht (=delete). Eine Übergabe von Besitzverhältnissen ist ausschließlich über Move-Semantik vorgesehen. Der Move-Konstruktor [SWS_DM_01551] und der Move-Zuweisungsoperator [SWS_DM_01552] sind als noexcept=default definiert. Die Zerstörung erfolgt deterministisch über den Destruktor [SWS_DM_01550], der ebenfalls als noexcept=default deklariert ist. Vermutlich führt der Abschluss des Transfers über RequestTransferExit zur Freigabe des Objekts. Frage Q-c1999fd1f283a007 (offen)
Nutzungspfad
Der typische Ablauf einer Lese-Transfersitzung gliedert sich in drei aufeinanderfolgende Phasen:
Initialisierung: Ein externer Diagnose-Client sendet RequestFileTransfer mit einem Lese-Modus wie ReadFile (0x04) [SWS_DM_01314] oder ReadDir (0x05) [SWS_DM_01315]. Hierbei wird die Sitzungsinstanz erzeugt und der Lese-Handler registriert.
Datentransfer: Eingehende Diagnoseanfragen des Typs TransferData (0x36) verarbeitet der Diagnose-Server, indem er die korrespondierende Read-Methode des über die Template-Konstruktoren registrierten Handlers aufruft [SWS_DM_01317]. Dies geschieht iterativ für jeden angeforderten Datenblock.
Abschluss: Sobald alle Daten übertragen wurden, sendet der Client RequestTransferExit (0x37). Der Diagnose-Server ruft daraufhin die Exit-Methode des registrierten Handlers auf, um den Lesevorgang ordnungsgemäß zu beenden [SWS_DM_01318].
Da ara::diag::DataTransferReadSession als final deklariert ist und der Standardkonstruktor [SWS_DM_01549] nicht existiert, wird eine fehlerhafte Erzeugung ohne registrierten Handler bereits zur Übersetzungszeit verhindert. Ebenso unterbinden die gelöschten Kopieroperationen [SWS_DM_01553] versehentliches Duplizieren von Sitzungszuständen. Sowohl Move-Konstruktion als auch Move-Zuweisung und Zerstörung garantieren durch ihre noexcept-Spezifikation absolute Ausnahmesicherheit [SWS_DM_01551][SWS_DM_01550]. Schlägt die Bereitstellung von Datenblöcken im Handler fehl, wird dies im Rahmen der UDS-Kommunikation auf Protokollebene behandelt.
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 (Modul diag) und fasst die Anforderungen an ara::diag::DataTransferReadSession zusammen.
gemini-3.8-flash-medium· 2026-10-13