Sert à recevoir et à renvoyer des données utiles lors de réponses positives de services de routine génériques.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d9df3888892fProvenanceQuestions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert à recevoir et à renvoyer des données utiles lors de réponses positives de services de routine génériques.
La structure ara::diag::GenericRoutine::OperationOutput sert de structure de retour pour les messages de réponse positive des services de routine génériques dans AUTOSAR Adaptive [SWS_DM_00633]. Après l'exécution réussie d'une routine, l'application instancie la structure et renseigne le membre responseData avec les données utiles du résultat SWS Diagnostics p. 80. Une condition aux limites essentielle est que le vecteur responseData contienne exclusivement les données de résultat pures et que le RoutineIdentifier ne doive explicitement pas y figurer [SWS_DM_00633].
Contexte
La structure ara::diag::GenericRoutine::OperationOutput sert, dans le module de diagnostic d'AUTOSAR Adaptive, de conteneur de données dédié pour les messages de réponse positive des services de routine génériques [SWS_DM_00633]. Elle est disponible via le fichier d'en-tête ara/diag/generic_routine.h[SWS_DM_00633] et encapsule les données utiles qu'une application de diagnostic adaptative renvoie au Diagnostic Management (ara::diag) après l'exécution réussie d'une routine. Trois entités participent principalement à l'interaction : le testeur de diagnostic externe en tant qu'émetteur de requêtes de routine, le framework de plate-forme ara::diag pour le traitement du protocole et l'implémentation spécifique à l'application de GenericRoutine, qui exécute la logique métier et fournit le résultat SWS Diagnostics p. 80. La tâche fondamentale de OperationOutput consiste à fournir de manière structurée les pures données de sortie de la routine, le RoutineIdentifier ne faisant explicitement pas partie de cette structure de données [SWS_DM_00633].
Cycle de vie
En tant que structure de données légère (struct), OperationOutput possède un cycle de vie de valeur simple. L'instanciation s'effectue à la demande par l'application de diagnostic adaptative dès qu'une commande adressée à la routine (par exemple démarrage, arrêt ou interrogation de résultat) a pu être menée à bien de manière positive. L'unique élément de données est responseData de type ara::core::Vector<std::uint8_t>[SWS_DM_00633]. L'application alloue le vecteur, le remplit avec les données de retour spécifiques à l'application et transmet la structure achevée au sous-système de diagnostic. Le renvoi au framework de diagnostic devrait s'effectuer typiquement de manière asynchrone via des types Result ou Future de ara::core (interprétation : convention d'interface asynchrone de l'Adaptive Platform). Après la transmission, la responsabilité de la sérialisation passe à ara::diag. Dès que les données ont été transmises ou copiées dans des mémoires tampons internes, la structure est détruite dès la sortie de la portée concernée. Concernant la concurrence, il convient de noter que OperationOutput est créée pour le contexte d'une exécution d'opération individuelle ; un accès partagé et non protégé entre plusieurs threads n'a généralement pas lieu. Question Q-e672dfb8b9ff416a (ouverte)
Parcours d'utilisation
Le déroulement standard pour l'utilisation de OperationOutput comprend plusieurs phases successives :
Réception de la requête : un client de diagnostic envoie une requête UDS RoutineControl, qui est relayée par la couche de diagnostic à l'instance GenericRoutine compétente SWS Diagnostics p. 84.
Exécution : l'application adaptative exécute la routine demandée et traite les paramètres d'entrée.
Génération du résultat : après une exécution réussie, l'application crée un exemplaire de OperationOutput et renseigne responseData avec les valeurs d'octets résultantes [SWS_DM_00633].
Transmission de la réponse : la structure est renvoyée à ara::diag en tant que résultat d'opération positif.
Transmission de la réponse : le Diagnostic Management prend vraisemblablement en charge l'adjonction automatique du RoutineIdentifier devant le champ responseData lors de l'assemblage de la réponse UDS (interprétation : ajout de l'en-tête de protocole par le démon) et envoie le paquet global au client [SWS_DM_00633]. Question Q-ccdd2867b87d00d1 (ouverte)
Diagramme de séquence : déroulement typique de la mise à disposition des données via OperationOutput lors de l'exécution réussie d'une routine. Sources : [SWS_DM_00633], SWS Diagnostics p. 80.
Scénarios d'erreur
Si une erreur survient pendant l'exécution de la routine ou si les données d'entrée transmises sont non valides, le chemin d'utilisation de OperationOutput est interrompu. En cas d'erreur, l'application devrait transmettre un code d'erreur au Diagnostic Management au lieu de OperationOutput, déclenchant ainsi une réponse UDS négative (interprétation : chemin d'erreur via le domaine Result/Error). Question (ouverte) Une précondition essentielle pour l'utilisation de OperationOutput stipule donc que l'opération de routine a été achevée complètement et sans erreur. Comme postcondition, l'application garantit que responseData contient exclusivement les pures données utiles du message de réponse positive et qu'aucun préfixe de protocole tel que le RoutineIdentifier n'y figure [SWS_DM_00633]. Si une routine s'est terminée avec succès mais ne génère aucune donnée de retour supplémentaire, le vecteur responseData reste vide SWS Diagnostics p. 70.
Ce guide repose sur la spécification AUTOSAR Adaptive pour le module Diagnostics (R25-11). Les explications s'appuient sur l'extrait de spécification et sont soumises au cadre d'hypothèses documenté.
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original allemand