Permet la surveillance des canaux de diagnostic actifs ainsi que le contrôle de la session de diagnostic et du niveau de sécurité.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 1824b6dbecd2ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet la surveillance des canaux de diagnostic actifs ainsi que le contrôle de la session de diagnostic et du niveau de sécurité.
La classe ara::diag::Conversation représente un canal de communication de diagnostic pour la surveillance de l'état d'activité, de la session de diagnostic et du niveau de sécurité, ainsi que pour la réinitialisation vers la session par défaut [SWS_DM_00692][SWS_DM_00701]. Les applications obtiennent des instances exclusivement sous forme de références via des fonctions de recherche statiques, car les instanciations propres ainsi que les opérations de copie et de déplacement sont supprimées [SWS_DM_02090]. Alors que les interrogations d'état en lecture peuvent être exécutées de manière thread-safe, les enregistrements de rappels et la réinitialisation de la session nécessitent une synchronisation externe.
Contexte
La classe ara::diag::Conversation représente l'interface vers un canal de communication entre un testeur de diagnostic externe et l'Adaptive Platform SWS Diagnostics §8.2 « Conversation ». Elle sert de passerelle entre l'application et la gestion interne du diagnostic (DM) pour suivre et commander les activités de diagnostic en cours. Par le biais de ses instances, les applications adaptatives ont accès à l'état de connexion actuel [SWS_DM_00694], à la session de diagnostic active [SWS_DM_00696], au niveau de sécurité [SWS_DM_00698] ainsi qu'aux caractéristiques d'identification du canal [SWS_DM_00700].
Les instances de ara::diag::Conversation sont entièrement instanciées et gérées par le démon Diagnostic Management. Une création, une copie ou un déplacement manuels par l'application sont exclus : le constructeur de copie [SWS_DM_02090] et le constructeur de déplacement [SWS_DM_02092] tout comme les opérateurs d'assignation [SWS_DM_02091][SWS_DM_02093] sont supprimés (=delete). La durée de vie des objets référencés devrait donc être directement liée à l'état d'exécution du sous-système de diagnostic. Question Q-f8deca481d5b76e1 (ouverte)
L'accès aux instances existantes s'effectue exclusivement via des fonctions d'interrogation statiques. GetAllConversations() permet d'obtenir des références vers l'ensemble des connexions configurées [SWS_DM_00782], tandis que GetCurrentActiveConversations() fournit une liste de tous les canaux actuellement actifs dont l'état d'activité correspond à kActive[SWS_DM_00783]. De plus, GetConversation(metaInfo) permet de résoudre une connexion spécifique à partir des métadonnées d'une requête de diagnostic en cours [SWS_DM_00692].
En ce qui concerne la concurrence, tous les accès en lecture à l'état et aux identifiants sont spécifiés comme étant thread-safe [SWS_DM_00694][SWS_DM_00696][SWS_DM_00698]. En revanche, l'enregistrement de rappels de notification ainsi que la réinitialisation de la session sont considérés comme non sûrs pour les threads (not thread-safe) [SWS_DM_00695][SWS_DM_00701] et nécessitent une synchronisation du côté de l'application.
Parcours d'utilisation
Un cas d'utilisation typique comprend la détermination de la connexion, l'enregistrement de fonctions de notification et la surveillance ciblée ou la manipulation de l'état de la session :
Obtenir une référence : lors de la réception d'une requête de diagnostic, l'instance associée est obtenue au moyen de GetConversation(metaInfo)[SWS_DM_00692].
Configurer la surveillance d'état : via les méthodes d'enregistrement SetActivityNotifier()[SWS_DM_00695][SWS_DM_02126], SetDiagnosticSessionNotifier()[SWS_DM_00697][SWS_DM_02127] et SetSecurityLevelNotifier()[SWS_DM_00699][SWS_DM_02128], l'application est notifiée en cas de changements. Un appel répété écrase le rappel précédemment enregistré.
Interroger l'état : l'état instantané peut être déterminé de manière synchrone avec GetDiagnosticSession()[SWS_DM_00696] ou GetDiagnosticSecurityLevel()[SWS_DM_00698]. Au moyen de GetDiagnosticSessionShortName()[SWS_DM_00707] et GetDiagnosticSecurityLevelShortName()[SWS_DM_00708], les énumérations peuvent être résolues en identifiants courts lisibles.
Réinitialiser la session : si la logique nécessite une interruption ou un repli vers l'état initial, ResetToDefaultSession() replace le canal dans la session par défaut [SWS_DM_00701].
Diagramme de séquence : séquence d'interaction typique pour l'enregistrement de notificateurs, l'interrogation d'état et la réinitialisation de session. Sources : [SWS_DM_00692], [SWS_DM_00697], [SWS_DM_00696], [SWS_DM_00701].
Scénarios d'erreur
Les méthodes de ara::diag::Conversation signalent les erreurs via ara::core::Result. Si la fonctionnalité de base de Diagnostic Management est temporairement indisponible, GetConversation(), GetActivityStatus(), GetDiagnosticSession(), GetDiagnosticSecurityLevel() et GetConversationIdentifier() échouent avec le code d'erreur DiagErrc::kServiceNotAvailable[SWS_DM_00692][SWS_DM_00694][SWS_DM_00696][SWS_DM_00698][SWS_DM_00700]. Les appels suivent ici la sémantique de rollback et restent sans effets de bord.
Pour les fonctions de conversion en chaîne GetDiagnosticSessionShortName()[SWS_DM_00707] et GetDiagnosticSecurityLevelShortName()[SWS_DM_00708], la transmission d'une valeur d'énumération inconnue ou invalide entraîne l'erreur DiagErrc::kInvalidArgument. Pour les méthodes d'enregistrement de notificateurs ainsi que pour ResetToDefaultSession(), aucun code d'erreur standardisé n'est défini dans la spécification [SWS_DM_00701].
Ce guide se base exclusivement sur la spécification AUTOSAR Adaptive R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
Represents the current active diagnostic SecurityLevel of an active conversation.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : a38bce94acc6ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La méthode GetDiagnosticSecurityLevel de la classe ara::diag::Conversation sert à déterminer de manière synchrone le niveau de sécurité actuellement actif d'une conversation de diagnostic (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.6 « GetDiagnosticSecurityLevel », [SWS_DM_00698]). Elle est mise à disposition via l'en-tête #include "ara/diag/conversation.h", ne prend aucun paramètre de transmission et est déclarée avec le spécificateur noexcept.
Comme type de retour, la fonction fournit un ara::core::Result<SecurityLevelType>. En cas de succès, cet objet contient directement la valeur d'énumération de l'état de sécurité actuel de la connexion active [SWS_DM_00698].
Gestion des erreurs et concurrence
Si l'interrogation échoue, la méthode fournit un ara::core::Result avec le code d'erreur DiagErrc::kServiceNotAvailable[SWS_DM_00698]. En appliquant une sémantique de retour arrière (rollback), cela signale que des fonctions essentielles de Diagnostic Management (DM) ne sont pas disponibles au moment de l'appel. En matière de sûreté d'exécution, GetDiagnosticSecurityLevel est classé comme thread-safe ainsi qu'exception-safe [SWS_DM_00698] et autorise ainsi des appels concurrents depuis différents threads.
Interaction
Interprétation : un appel devrait généralement avoir lieu avant l'exécution d'activités de diagnostic protégées, afin de vérifier la présence du niveau d'autorisation requis. Question Q-8c056d4c5199524d (ouverte) Pour un traitement ultérieur ou une sortie de diagnostic, le SecurityLevelType déterminé peut être traduit en son nom court symbolique associé (shortName sous forme de ara::core::StringView) via la méthode GetDiagnosticSecurityLevelShortName (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.7 « GetDiagnosticSecurityLevelShortName », [SWS_DM_00708]).
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR Adaptive R25-11.
Converts the given diagnostic SecurityLevel into the ShortName.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 384b6d7f7a21ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La méthode synchrone ara::diag::Conversation::GetDiagnosticSecurityLevelShortName issue de l'en-tête ara/diag/conversation.h résout un niveau de sécurité transmis de type SecurityLevelType en l'identifiant du nom court configuré (DiagnosticSecurityLevel.shortName) [SWS_DM_00708]. L'appel renvoie le résultat sous forme de ara::core::Result<ara::core::StringView>.
Gestion des erreurs
En cas d'erreur, la fonction renvoie le code d'erreur DiagErrc::kInvalidArgument[SWS_DM_00708]. L'instance du serveur de diagnostic valide à cette occasion la valeur du paramètre sur la base de deux conditions :
si l'état verrouillé kLocked est transmis en tant qu'argument securityLevel, le serveur de diagnostic doit impérativement renvoyer kInvalidArgument[SWS_DM_01259].
si la valeur transmise ne correspond à aucune entrée configurée selon le calcul ((DiagnosticSecurityAccess.requestSeedId + 1) / 2) dans le DiagnosticContributionSet, l'appel échoue également avec kInvalidArgument[SWS_DM_01260].
Concurrence et restrictions
La méthode est déclarée comme noexcept et spécifiée comme sûre face aux exceptions (exception safe) et sûre pour les threads (thread-safe) [SWS_DM_00708]. En raison de la sûreté des threads spécifiée, l'appel devrait également être sûr lors d'activités de diagnostic concurrentes sans synchronisation par mutex côté application. Question Q-b851a473c2d836b7 (ouverte) Avant d'accéder à la chaîne de caractères référencée, l'application doit vérifier si le ara::core::Result contient une erreur.
Cette note d'utilisation a été générée automatiquement. Toutes les références proviennent des spécifications de la plateforme AUTOSAR Adaptive pour la version R25-11.
Method to reset the current session to default session.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 040cba85c191ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode ara::diag::Conversation::ResetToDefaultSession permet à une Adaptive Application de réinitialiser explicitement une conversation de diagnostic vers la session par défaut (Default Session) [SWS_DM_00701].
Utilisation
L'appel s'effectue sans paramètre sur une instance de ara::diag::Conversation via le fichier d'en-tête #include "ara/diag/conversation.h"[SWS_DM_00701]. Si la méthode est appelée, l'instance du Diagnostic Server termine d'abord la requête en cours et ne fait basculer la session de diagnostic de la conversation vers la Default Session qu'après [SWS_DM_00842].
Gestion des erreurs et concurrence
Valeur de retour et erreurs : La fonction renvoie un ara::core::Result<void>[SWS_DM_00701]. Aucun code d'erreur standardisé n'est prescrit ; Interprétation : D'éventuelles erreurs dans le Result devraient refléter des problèmes spécifiques au constructeur lors du traitement de l'ordre par le Diagnostic Server. Question Q-9f780f4ef7991bf4 (ouverte)
Sécurité des threads : La fonction est sûre face aux exceptions (noexcept), mais spécifiée comme non sûre au niveau des threads (not thread-safe) [SWS_DM_00701]. Les appels concurrents sur le même objet de conversation doivent donc être coordonnés par l'application appelante.
Interaction
La méthode complète le caractère informatif de l'interface de conversation par un contrôle ciblé de l'état AUTOSAR_AP_SWS_Diagnostics §7 « Diagnostic Conversation Interface ». Elle garantit que les requêtes de diagnostic existantes se terminent de manière ordonnée avant que l'état de la conversation ne soit modifié [SWS_DM_00842].
Cette note d'utilisation a été générée automatiquement et repose exclusivement sur les documents de spécification d'AUTOSAR Adaptive R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 49e9828acc72ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La méthode ara::diag::Conversation::SetActivityNotifier sert à enregistrer une fonction de notification (notifier) qui est appelée à chaque fois que l'état d'activité de la conversation de diagnostic change [SWS_DM_00695]. La déclaration s'effectue via le fichier d'en-tête #include "ara/diag/conversation.h" dans la portée de la classe ara::diag::ConversationAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.11 « SetActivityNotifier ». Un nouvel appel ou des appels successifs sur la même instance écrasent complètement le notificateur précédemment enregistré [SWS_DM_00695], [SWS_DM_01355].
Gestion des erreurs et concurrence
La valeur de retour est typée comme ara::core::Result<void> et signale le succès ou un état d'erreur ; l'interface ne spécifie toutefois aucun code d'erreur standardisé [SWS_DM_00695]. La méthode est déclarée comme noexcept et sans exception (exception safe).
En ce qui concerne la sécurité des threads, la fonction est classée comme non sûre au niveau des threads (not thread-safe) [SWS_DM_00695]. Si l'accès à la même instance de conversation a lieu depuis plusieurs threads, l'appel d'enregistrement doit être synchronisé côté application.
Interaction dans le cycle de vie
Les instances de la conversation sont fournies par le Diagnostic Server, le nombre maximal de conversations simultanées étant configuré via maxConversations[SWS_DM_00840]. Lorsque le cycle de vie d'une conversation de diagnostic prend fin, le Diagnostic Server définit l'état d'activité sur kInactive[SWS_DM_00843]. Cela devrait signaler au notificateur enregistré la fin de la communication de diagnostic active. Question Q-93c30267eb100ed7 (ouverte)
Ce texte a été généré par un système d'IA et validé par un comité de rédaction.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b40c717f1178ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction SetDiagnosticSessionNotifier appartient à la classe ara::diag::Conversation et est fournie via le fichier d'en-tête #include "ara/diag/conversation.h"[SWS_DM_00697]. Elle permet aux applications d'enregistrer une fonction notificateur qui est déclenchée lors de chaque changement de session de diagnostic.
En guise de valeur de retour, l'interface renvoie un ara::core::Result<void> qui confirme soit un enregistrement réussi, soit contient un objet d'erreur [SWS_DM_00697]. La spécification ne définit aucun code d'erreur standardisé pour cet appel ; les erreurs survenues devraient donc être dues à des validations spécifiques à l'implémentation. Question Q-1ac7eebee90e3c22 (ouverte)
Concurrence et restrictions
Sécurité des threads : La méthode est spécifiée comme non sûre au niveau des threads (not thread-safe) [SWS_DM_00697]. Les appels concurrents pour la même instance de conversation doivent donc être synchronisés côté application.
Sécurité face aux exceptions : La fonction est déclarée comme noexcept et est considérée comme sans exception (exception safe) [SWS_DM_00697].
Cette note d'utilisation a été générée automatiquement. Elle repose exclusivement sur les documents de spécification d'AUTOSAR Adaptive version R25-11.
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f0130e1f2bdeProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La méthode ara::diag::Conversation::SetSecurityLevelNotifier sert à enregistrer une fonction de rappel qui est notifiée dès que le niveau de sécurité (SecurityLevel) de la conversation de diagnostic change [SWS_DM_00699]. Elle est déclarée via l'en-tête ara/diag/conversation.hAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 « SetSecurityLevelNotifier ». Elle reçoit en paramètre la fonction à appeler notifier. Un nouvel appel de la méthode écrase complètement une fonction notificateur précédemment enregistrée [SWS_DM_00699].
Sémantique et valeur de retour
La fonction est définie comme noexcept et spécifiée comme sans exception (exception safe) [SWS_DM_00699]. En guise de type de retour, elle fournit ara::core::Result<void>, qui ne renvoie soit aucune valeur, soit une erreur survenue [SWS_DM_00699].
Gestion des erreurs
La spécification ne définit aucun code d'erreur standardisé pour SetSecurityLevelNotifier[SWS_DM_00699]. D'éventuelles erreurs renvoyées dans le ara::core::Result devraient donc être spécifiques au constructeur ou dues au runtime de la plateforme sous-jacente. Question Q-c8dd53e9d661cc78 (ouverte)
Concurrence et restrictions
En ce qui concerne la sécurité des threads, la méthode est explicitement classée comme not thread-safe[SWS_DM_00699]. Les accès concurrents à la même instance de ara::diag::Conversation doivent ainsi être synchronisés côté appelant. De plus, la définition de l'API possède le statut DRAFTAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 « SetSecurityLevelNotifier » dans l'état actuel de la documentation.
Cette note d'utilisation est basée sur la spécification AUTOSAR Adaptive Platform Release R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand