Encapsule les transferts de lecture assistés par le diagnostic actifs et relaie les transferts de données entrants vers les gestionnaires enregistrés.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9db606b147f6ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Encapsule les transferts de lecture assistés par le diagnostic actifs et relaie les transferts de données entrants vers les gestionnaires enregistrés.
La classe sert à encapsuler et à gérer de manière structurée toutes les variantes de transferts de lecture basés sur le diagnostic au sein du module de diagnostic adaptatif AUTOSAR conformément à [SWS_DM_01548]. Après le lancement réussi d'une opération de lecture, l'instance du serveur de diagnostic délègue les requêtes entrantes pour le transfert séquentiel de blocs de données ainsi que pour la clôture de session aux méthodes enregistrées du gestionnaire de lecture [SWS_DM_01317]. En désactivant délibérément les opérations de copie tout en prenant en charge la sémantique de déplacement, la classe garantit ainsi une attribution univoque de la propriété de la session de transfert sous-jacente.
Contexte
La classe ara::diag::DataTransferReadSession représente l'encapsulation de toutes les variantes pour la lecture de blocs de données assistée par le diagnostic dans le module de diagnostic adaptatif [SWS_DM_01548]. Dans le cadre de services UDS standardisés tels que RequestFileTransfer (0x38), TransferData (0x36) et RequestTransferExit (0x37), la classe de session sert de lien entre l'environnement d'exécution interne du serveur de diagnostic et les gestionnaires de lecture spécifiques à l'application SWS Diagnostics §7 « Realization of TransferData and RequestTransferExit ». Elle garantit que les opérations d'extraction en cours – par exemple pour des fichiers via ReadFile[SWS_DM_01314] ou des répertoires via ReadDir[SWS_DM_01315] – soient gérées de manière isolée et relayées vers les gestionnaires correspondants.
Une instance de ara::diag::DataTransferReadSession possède une durée de vie strictement liée à la session de transfert. La création via un constructeur par défaut est explicitement interdite [SWS_DM_01549]. À la place, la session est initialisée via des constructeurs modèles spécialisés qui enregistrent les gestionnaires spécifiques à l'application SWS Diagnostics §7 « Realization of TransferData and RequestTransferExit ». En pratique, l'instanciation devrait généralement être effectuée par le serveur de diagnostic ou le gestionnaire de service lors de l'initiation du transfert de fichiers. Question Q-b0706bcd28c702c6 (ouverte)
Afin d'exclure les affectations multiples ou les états de session incohérents, ara::diag::DataTransferReadSession est conçue comme une instance unique non copiable : le constructeur de copie [SWS_DM_01553] ainsi que l'opérateur d'assignation par copie [SWS_DM_01554] sont supprimés (=delete). Un transfert de propriété est exclusivement prévu par sémantique de déplacement. Le constructeur de déplacement [SWS_DM_01551] et l'opérateur d'assignation par déplacement [SWS_DM_01552] sont définis comme noexcept=default. La destruction s'effectue de manière déterministe via le destructeur [SWS_DM_01550], qui est également déclaré comme noexcept=default. Vraisemblablement, la clôture du transfert via RequestTransferExit entraîne la libération de l'objet. Question Q-c1999fd1f283a007 (ouverte)
Parcours d'utilisation
Le déroulement typique d'une session de transfert en lecture se divise en trois phases successives :
Initialisation : un client de diagnostic externe envoie RequestFileTransfer avec un mode de lecture tel que ReadFile (0x04) [SWS_DM_01314] ou ReadDir (0x05) [SWS_DM_01315]. L'instance de session est alors créée et le gestionnaire de lecture est enregistré.
Transfert de données : le serveur de diagnostic traite les requêtes de diagnostic entrantes du type TransferData (0x36) en appelant la méthode Read correspondante du gestionnaire enregistré via les constructeurs modèles [SWS_DM_01317]. Cela s'effectue de manière itérative pour chaque bloc de données demandé.
Clôture : dès que toutes les données ont été transférées, le client envoie RequestTransferExit (0x37). Le serveur de diagnostic appelle ensuite la méthode Exit du gestionnaire enregistré afin de terminer l'opération de lecture de manière conforme [SWS_DM_01318].
Puisque ara::diag::DataTransferReadSession est déclarée comme final et que le constructeur par défaut [SWS_DM_01549] n'existe pas, une création erronée sans gestionnaire enregistré est évitée dès la compilation. De même, les opérations de copie supprimées [SWS_DM_01553] empêchent la duplication accidentelle des états de session. Tant la construction par déplacement que l'assignation par déplacement et la destruction garantissent une sécurité absolue vis-à-vis des exceptions grâce à leur spécification noexcept[SWS_DM_01551][SWS_DM_01550]. Si la mise à disposition de blocs de données dans le gestionnaire échoue, cela est traité au niveau du protocole dans le cadre de la communication UDS.
Ce guide repose sur la spécification AUTOSAR Adaptive Platform R25-11 (module diag) et récapitule les exigences relatives à ara::diag::DataTransferReadSession.
gemini-3.8-flash-low· 2026-10-13 · Original allemand