Met à la disposition des applications des métadonnées liées au transport et au protocole pour une requête de diagnostic en cours.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4cec228b1decProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Met à la disposition des applications des métadonnées liées au transport et au protocole pour une requête de diagnostic en cours.
La classe ara::diag::MetaInfo fournit aux Adaptive Applications des métadonnées pertinentes telles que l'adresse source, l'adresse cible et le contexte de protocole d'une requête de diagnostic en cours (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1 « MetaInfo class »). Les applications interrogent ces valeurs de manière synchrone via des méthodes d'inspection au cours d'un appel de rappel initié par le Diagnostic Management. La durée de vie garantie de l'objet est alors strictement limitée au temps d'exécution de la fonction de rappel active, raison pour laquelle sa conservation au-delà de cet appel entraîne un comportement indéfini ([SWS_DM_01345]).
Contexte
La classe ara::diag::MetaInfo met à disposition un mécanisme standardisé afin de transmettre des métadonnées spécifiques au transport et au protocole depuis le Diagnostic Management (DM) aux Adaptive Applications concernées (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1 « MetaInfo class »). Dans l'architecture de diagnostic AUTOSAR Adaptive, le DM agit comme intermédiaire entre les clients de diagnostic externes et les clusters de fonctionnalités ou applications internes. Lorsqu'une requête de diagnostic parvient via un protocole de transport UDS ou SOVD, le DM extrait les données de protocole pertinentes et les transmet aux interfaces de l'application lors d'appels de méthodes ([SWS_DM_02094]).
Fournir le contexte d'appel ainsi que des paires clé-valeur spécifiques fait partie des tâches fondamentales de ara::diag::MetaInfo. Par le biais de l'interface, les services applicatifs obtiennent des informations sur l'adresse source (SA) du client de diagnostic au moyen de la clé kSA ([SWS_DM_02094]), sur l'adresse cible (TA) du serveur de diagnostic via kTA ([SWS_DM_02095]) ainsi que sur le type d'adressage UDS (physique ou fonctionnel) via la clé kTAType ([SWS_DM_02096]). Le contexte d'appel est typé via le type ara::diag::MetaInfo::Context ([SWS_DM_00977]). Les contextes possibles sont la communication de diagnostic standard kDiagnosticCommunication ([SWS_DM_01342]), l'accès à la mémoire d'événements kFaultMemory ([SWS_DM_01343]), les requêtes initiales DoIP comme la lecture du numéro d'identification du véhicule kDoIP ([SWS_DM_01344]) ainsi que les requêtes de service dans le contexte SOVD kSovd ([SWS_DM_01818]).
La création et la gestion des instances de ara::diag::MetaInfo incombent entièrement au Diagnostic Management. Le constructeur par défaut sans paramètre est explicitement supprimé ([SWS_DM_00972]). Par conséquent, une application ne peut ni instancier directement ses propres instances, ni les dupliquer via des opérations de copie, puisque tant le constructeur de copie ([SWS_DM_00973]) que l'opérateur d'affectation par copie ([SWS_DM_00975]) sont supprimés. Une instanciation a lieu vraisemblablement en interne par le DM avant l'appel des rappels applicatifs. ara::diag::MetaInfo prend en charge la sémantique de déplacement : le constructeur de déplacement ([SWS_DM_00974]) et l'opérateur d'affectation par déplacement ([SWS_DM_00976]) sont disponibles. La destruction s'effectue via le destructeur par défaut ([SWS_DM_00980]). Question Q-f695f92296527ce8 (ouverte)
Concernant les relations de propriété et la durée de validité, une liaison stricte à l'appel de méthode actif s'applique : pour chaque méthode adressée par le DM à l'application avec un objet MetaInfo comme paramètre, la durée de vie garantie est strictement restreinte à la durée de cet appel de méthode ([SWS_DM_01345], AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.2 « Lifetime of MetaInfo »). Après le retour de la fonction, la réutilisation ou le stockage de l'objet est inadmissible.
Pour ce qui est de la concurrence, les méthodes d'inspection en lecture GetContext() ([SWS_DM_00979]) et GetValue() ([SWS_DM_00978]) sont spécifiées comme thread-safe et sûres vis-à-vis des exceptions. En revanche, l'opérateur d'affectation par déplacement ([SWS_DM_00976]) et le destructeur ([SWS_DM_00980]) ne sont pas thread-safe. Si un rappel peut être invoqué de manière concurrente selon la configuration (AUTOSAR_AP_SWS_Diagnostics §7.3.1.2 « Concurrency of ara::diag interfaces »), le DM fournit à chaque appel un objet distinct, valide pour la durée de l'appel.
Parcours d'utilisation
Le chemin d'utilisation typique s'étend de la réception d'un appel de diagnostic jusqu'à l'évaluation des métadonnées transmises :
Appel par le DM : le Diagnostic Management appelle une méthode de rappel de l'application en transmettant une référence vers ara::diag::MetaInfo ([SWS_DM_01345]).
Déterminer le contexte : l'application appelle GetContext() ([SWS_DM_00979]) afin de déterminer si l'appel a lieu, par exemple, dans le cadre d'une communication de diagnostic standard (kDiagnosticCommunication, [SWS_DM_01342]) ou d'un accès à la mémoire d'événements (kFaultMemory, [SWS_DM_01343]).
Interroger les valeurs des clés : au moyen de GetValue() ([SWS_DM_00978]), l'application interroge de manière ciblée les attributs requis, comme l'adresse de l'expéditeur avec kSA ([SWS_DM_02094]), l'adresse cible avec kTA ([SWS_DM_02095]) ou le mode d'adressage avec kTAType ([SWS_DM_02096]).
Traiter le résultat :GetValue() renvoie un ara::core::Optional<ara::core::StringView> ([SWS_DM_00978]). Si la valeur est présente, l'application évalue la chaîne de caractères de façon synchrone afin d'effectuer des vérifications d'accès ou la logique d'adressage.
Conclusion de l'appel : l'application termine le traitement et retourne de la méthode de rappel, ce qui met fin à la durée de vie des métadonnées transmises ([SWS_DM_01345]).
Lors de l'utilisation de ara::diag::MetaInfo, les développeurs doivent respecter des préconditions et postconditions spécifiques :
Stockage au-delà de la durée du rappel : si une application conserve l'objet MetaInfo ou un ara::core::StringView renvoyé par GetValue() au-delà du temps d'exécution de la fonction de rappel, cela engendre un comportement indéfini ([SWS_DM_01345], AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.2 « Lifetime of MetaInfo »). Les valeurs nécessaires de manière asynchrone ou permanente doivent être conservées sous forme de copies distinctes de chaînes de caractères.
Interrogation de clés inexistantes : si une clé non fournie dans le contexte actuel est transmise, GetValue() ne lève pas d'exception, mais renvoie un ara::core::Optional vide ([SWS_DM_00978]). Les deux méthodes d'accès sont déclarées avec noexcept et sûres vis-à-vis des exceptions ([SWS_DM_00978], [SWS_DM_00979]).
Validité spécifique au contexte : dans le contexte kDoIP ([SWS_DM_01344]), aucune des clés standard n'est applicable d'après la spécification (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.1 « Provision of MetaInfo »). L'appel de GetValue() avec des clés UDS telles que kSA ou kTA ne fournit aucun résultat dans ce contexte.
Ce guide a été généré automatiquement par une IA sur la base de la spécification AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand