Sert à fournir l'état d'identification de groupe DoIP au Diagnostic Manager.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : dea27beb11bbProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert à fournir l'état d'identification de groupe DoIP au Diagnostic Manager.
La classe ara::diag::DoIPGroupIdentification sert d'interface abstraite pour les applications Adaptive afin de fournir au Diagnostic Management l'état actuel de l'identification de groupe DoIP [SWS_DM_00724]. Après l'instanciation spécifique au port, l'application active le transfert des requêtes via Offer() et y met fin avant la destruction de l'objet au moyen de StopOffer()[SWS_DM_00725]. L'instance du gestionnaire est unique, n'est ni copiable ni déplaçable, et répond aux interrogations de manière asynchrone via un ara::core::Future.
Contexte
La classe ara::diag::DoIPGroupIdentification met à disposition l'interface fonctionnelle du Diagnostic Management (AUTOSAR AP SWS Diagnostics p. 73), par laquelle une application adaptative fournit l'état actuel d'identification de groupe (état GID) pour le protocole DoIP [SWS_DM_00724]. Au sein de l'architecture de la plateforme, la classe agit en tant qu'intermédiaire entre deux partenaires d'interaction principaux : le démon interne Diagnostic Management (DM), qui traite les messages standardisés d'identification de véhicule et DoIP sur le réseau, et l'implémentation spécifique à l'application, qui concrétise la méthode virtuelle pure GetGidStatus(). La mise à disposition et la réception des requêtes sont contrôlées par des offres de service explicites [SWS_DM_00725].
Cycle de vie
Une instance de DoIPGroupIdentification représente un port de diagnostic unique. Pour cette raison, la classe est conçue comme un objet géré en tant qu'exemplaire unique : le constructeur de copie [SWS_DM_01641] et le constructeur de déplacement [SWS_DM_01642] tout comme les opérateurs d'affectation correspondants [SWS_DM_01639], [SWS_DM_01640] sont explicitement supprimés (=delete).
La création s'effectue obligatoirement via le constructeur paramétré en spécifiant un ara::core::InstanceSpecifier ainsi que le mode de concurrence ConcurrencyType[SWS_DM_00722]. Le cycle de vie se divise en phases suivantes :
Non offert (Not Offered) : après la construction, l'objet existe dans l'espace d'adressage du processus, mais ne reçoit pas encore de requêtes de la part du DM.
Offert (Offered) : par l'appel synchrone de Offer()[SWS_DM_00725], le gestionnaire est activé auprès du DM, de sorte que les demandes d'état DoIP entrantes soient transmises.
Arrêté (Stopped) : l'appel de StopOffer()[SWS_DM_00726] retire au DM l'autorisation de transmission et replace l'objet dans l'état inactif.
La destruction a lieu via le destructeur virtuel ~DoIPGroupIdentification()[SWS_DM_00723]. En ce qui concerne la concurrence, le constructeur est à sécurité multithread, tandis que Offer(), StopOffer() ainsi que le destructeur ne sont pas à sécurité multithread [SWS_DM_00722], [SWS_DM_00723], [SWS_DM_00725], [SWS_DM_00726]. La sécurité multithread de la fonction d'interrogation GetGidStatus() est définie conditionnellement par le ConcurrencyType choisi dans le constructeur [SWS_DM_00724]. Interprétation : le destructeur devrait interrompre implicitement les transmissions en cours si StopOffer() n'a pas été appelé au préalable. Question Q-50d70fb679462321 (ouverte)
Parcours d'utilisation
L'utilisation typique comprend l'initialisation, l'activation, le traitement asynchrone et la désactivation :
Une classe de diagnostic concrète hérite de ara::diag::DoIPGroupIdentification et implémente la méthode GetGidStatus()[SWS_DM_00724].
L'application crée l'objet avec le InstanceSpecifier du PortPrototype configuré et définit si GetGidStatus() peut être appelée de manière concurrente (kConcurrent) ou non (kNotConcurrent) [SWS_DM_00722].
Au moyen de Offer(), l'application arme le gestionnaire pour le Diagnostic Management [SWS_DM_00725].
Dès que des requêtes DoIP arrivent, le DM appelle GetGidStatus() ; l'application renvoie l'état du GID de façon asynchrone via ara::core::Future<GidStatus>[SWS_DM_00724].
Avant l'arrêt du service ou l'arrêt du composant, l'application appelle StopOffer()[SWS_DM_00726], suivi de la destruction de l'objet [SWS_DM_00723].
Lors de l'utilisation de DoIPGroupIdentification, des conditions d'erreur sont définies pour la phase de construction et de mise à disposition :
Erreurs de modèle et d'affectation (constructeur) : en cas d'échec de l'instanciation, des violations standardisées sont signalées [SWS_DM_00722] :
InstanceSpecifierMappingIntegrityViolation : l'identifiant ne peut pas être résolu ou ne référence pas un prototype de port.
PortInterfaceMappingViolation : le port référencé n'est pas typé comme DiagnosticDoIPGroupIdentificationInterface.
ProcessMappingViolation : aucun processus approprié n'est affecté au contexte d'exécution dans le modèle.
InstanceSpecifierAlreadyInUseViolation : l'identifiant de port spécifié est déjà utilisé par une autre instance dans le processus en cours d'exécution.
Erreur de mise à disposition du service (Offer()) : la méthode renvoie un ara::core::Result<void>. Si le service a déjà été proposé avec succès pour ce gestionnaire, un nouvel appel échoue avec le code d'erreur DiagOfferErrc::kAlreadyOffered[SWS_DM_00725].
Erreur lors de l'interrogation d'état : l'interface GetGidStatus() ne spécifie aucun code d'erreur standardisé [SWS_DM_00724] ; les erreurs internes à l'application doivent être représentées via l'objet résultat du future renvoyé.
Ce guide se base exclusivement sur la spécification AUTOSAR Adaptive R25-11.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticDoIpGroupIdentificationPortMapping needs to be typed by a DiagnosticDoIPGroupIdentificationInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDoIPGroupIdentificationInterface.
concurrencyType
Specifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to forward request messages to this handler.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c580e08dd024Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction membre synchrone Offer de la classe ara::diag::DoIPGroupIdentification signale au Diagnostic Management (DM) que l'Adaptive Application fournisseuse est prête et que les requêtes pour l'identification de groupe DoIP peuvent être traitées [SWS_DM_00725]. Ce n'est qu'après cet appel que le DM peut, en cas de besoin, récupérer l'ID de groupe via la méthode GetGidStatus, pour autant qu'aucune configuration fixe n'existe [SWS_DM_00813].
Concernant le contexte d'appel et la concurrence, les conditions suivantes s'appliquent :
Signature et sémantique : l'appel s'effectue sans paramètre et renvoie de manière synchrone un ara::core::Result<void>[SWS_DM_00725]. La méthode est déclarée en tant que noexcept et est sûre vis-à-vis des exceptions (exception safe) [SWS_DM_00725].
Sécurité des threads : l'opération est spécifiée comme non sûre au niveau des threads (not thread-safe) [SWS_DM_00725]. Les appels sur la même instance ne doivent pas être effectués de manière non protégée à partir de threads concurrents.
En cas d'erreur, l'objet résultant fournit le code d'erreur DiagOfferErrc::kAlreadyOffered avec une sémantique de retour arrière (rollback) si le service a déjà été proposé pour cette interface [SWS_DM_00725].
Tant que l'application n'a pas encore exécuté Offer et que le DM doit envoyer une identification de groupe DoIP, le comportement de repli s'applique : le DM transmet comme valeur de GID soit 0x00 0x00 0x00 0x00 0x00 0x00 soit 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF conformément à l'ISO 13400-2 pour désigner « value not set » [SWS_DM_01527].
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR.
This StopOffer will disable the forwarding of request messages from DM to this handler.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : da4bfe9455e6ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode StopOffer de la classe ara::diag::DoIPGroupIdentification met fin à la mise à disposition du gestionnaire et désactive le transfert des messages de requête entrants (request messages) du Diagnostic Management (DM) vers cette instance [SWS_DM_00726].
Utilisation et traitement des erreurs
L'opération déclarée dans l'en-tête ara/diag/doip_group_identification.h possède la signature void StopOffer () noexcept;[SWS_DM_00726]. Elle ne prend aucun paramètre, ne renvoie aucune valeur et est exécutée de manière synchrone [SWS_DM_00726]. La méthode est spécifiée comme sûre vis-à-vis des exceptions (exception safe) et ne lève aucune exception C++ ; aucun code d'erreur ni message d'erreur spécifique n'est prévu pour cette opération [SWS_DM_00726].
Concurrence et restrictions
En ce qui concerne la concurrence, StopOffer est explicitement spécifiée comme non sûre pour les threads (not thread-safe) [SWS_DM_00726]. Les applications appelantes doivent donc probablement s'assurer d'elles-mêmes qu'aucun appel concurrent n'a lieu sur la même instance. Question Q-3ac810ffb08cb197 (ouverte)
Interaction
Le module de diagnostic applique le modèle StopOffer de manière uniforme à travers les interfaces fonctionnelles, par exemple pour les routines génériques [SWS_DM_00558], le contrôle de communication [SWS_DM_00810] ainsi que les services d'authentification [SWS_DM_01131]. Bien que les désignations soient calquées, à fonction égale, sur la gestion des services dans ara::com, il s'agit d'une implémentation autonome de l'architecture de diagnostic AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors ».
Cette note d'utilisation a été générée par une IA et s'appuie exclusivement sur la spécification AUTOSAR pour R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand