Permet aux applications adaptatives de fournir l'identification d'entité DoIP pour le Diagnostic Management.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 73f8b2cf1d2eProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet aux applications adaptatives de fournir l'identification d'entité DoIP pour le Diagnostic Management.
La classe ara::diag::DoIPEntityIdentification permet aux applications adaptatives de fournir de manière dynamique l'identification d'entité (EID) pour le protocole de diagnostic DoIP [SWS_DM_01361]. Après l'instanciation, l'application active la transmission au moyen de Offer() et répond aux interrogations du Diagnostic Management via la méthode virtuelle pure GetEntityId() de manière asynchrone au moyen d'un Future [SWS_DM_01366], [SWS_DM_01367]. Si l'interface n'est pas encore mise à disposition lors d'une interrogation, le Diagnostic Management envoie à titre de remplacement une valeur 0xFF standardisée [SWS_DM_01528].
Contexte
La classe ara::diag::DoIPEntityIdentification sert à fournir de manière dynamique l'identification d'entité (EID) pour le protocole DoIP (Diagnostic over IP) [SWS_DM_01361]. Dans un environnement AUTOSAR Adaptive, elle forme la passerelle fonctionnelle entre une application adaptative individuelle et le Diagnostic Management (DM) AUTOSAR_AP_SWS_Diagnostics, p. 107. Si, dans la configuration, DoIpNetworkConfiguration.eidRetrieval est réglé sur le mode DoIpEidRetrievalEnum.eidUseApi, le Diagnostic Management demande l'EID via cette interface de programmation [SWS_DM_01361]. La liaison à l'architecture logicielle s'effectue via un ara::core::InstanceSpecifier, qui fait référence à un PortPrototype d'un DiagnosticDoIPEntityIdentificationInterface[SWS_DM_01364].
Cycle de vie
La création s'effectue via le constructeur explicite, auquel est transmis, outre le InstanceSpecifier, le paramètre ConcurrencyType (kConcurrent ou kNotConcurrent) [SWS_DM_01364]. Ce dernier détermine si les interrogations ultérieures de l'interface doivent être traitées de manière thread-safe [SWS_DM_01364], [SWS_DM_01366]. Après la construction, l'objet demeure initialement dans l'état inactif. L'appel de Offer() débloque l'interface pour le Diagnostic Management et active le transfert des requêtes vers le gestionnaire [SWS_DM_01367]. Avant la destruction de l'objet ou à l'arrêt du fonctionnement, StopOffer() interrompt de nouveau le transfert [SWS_DM_01368]. La destruction s'effectue enfin via le destructeur virtuel [SWS_DM_01365]. Ni Offer(), StopOffer() ni le destructeur ne sont thread-safe et nécessitent donc une synchronisation coordonnée dans le code d'application [SWS_DM_01365], [SWS_DM_01367], [SWS_DM_01368].
Dans le scénario d'utilisation type, l'application adaptative dérive sa propre classe d'implémentation de ara::diag::DoIPEntityIdentification et surcharge la méthode purement virtuelle GetEntityId()[SWS_DM_01366]. Après instanciation avec un identifiant valide, l'application enregistre le gestionnaire à l'aide de Offer()[SWS_DM_01367]. Dès que le Diagnostic Management a besoin de l'ID d'entité pour composer des messages DoIP, il appelle GetEntityId()[SWS_DM_01361], [SWS_DM_01366]. La méthode renvoie un ara::core::Future<EntityId>, ce qui permet de déterminer et de mettre à disposition les données d'identification de manière asynchrone [SWS_DM_01366]. Lorsque le fonctionnement prend fin, l'application retire l'offre via StopOffer()[SWS_DM_01368].
Des configurations de modèle erronées lors de la construction entraînent des violations d'exécution spécifiques : si le InstanceSpecifier ne peut pas être résolu dans le modèle ou ne fait pas référence à un PortPrototype, il en résulte une InstanceSpecifierMappingIntegrityViolation[SWS_DM_01364]. Si le mappage de port ne fait pas référence à un DiagnosticDoIPEntityIdentificationInterface, il s'agit d'une PortInterfaceMappingViolation, tandis qu'une correspondance de processus manquante déclenche une ProcessMappingViolation[SWS_DM_01364]. Si le même identifiant est utilisé plusieurs fois au sein du processus, une InstanceSpecifierAlreadyInUseViolation s'ensuit [SWS_DM_01364].
Si Offer() est appelée alors que le service est déjà activement proposé, la méthode renvoie un ara::core::Result avec le code d'erreur DiagOfferErrc::kAlreadyOffered[SWS_DM_01367]. Si le Diagnostic Management ne parvient pas à interroger l'EID – par exemple parce que l'interface n'était pas encore proposée au moment de la demande –, un repli de protocole défini s'applique : le Diagnostic Management envoie en remplacement une valeur d'EID de 6 octets de 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF dans les messages DoIP [SWS_DM_01528].
Ce guide a été généré par un assistant IA sur la base de 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 DiagnosticDoIpEntityIdentificationPortMapping needs to be typed by a DiagnosticDoIPEntityIdentificationInterface. 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 DiagnosticDoIPEntityIdentificationInterface.
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 : 60c723a50d6cProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode Offer de la classe ara::diag::DoIPEntityIdentification active le transfert des requêtes DoIP entrantes par le démon de Diagnostic Management (DM) vers le gestionnaire enregistré ([SWS_DM_01367]). Ce n'est qu'après le succès de l'appel que les messages sont transmis au gestionnaire. Interprétation : l'appel a lieu typiquement lors de la phase d'initialisation de l'Adaptive Application, avant que les messages de diagnostic ne doivent être reçus. Question Q-4b78d4f80bda63a4 (ouverte)
Utilisation et sémantique :
Contexte d'appel : l'opération est exécutée de manière synchrone et est déclarée comme noexcept ; elle ne lève aucune exception ([SWS_DM_01367]).
Valeur de retour : elle renvoie un ara::core::Result<void>, qui ne contient aucune valeur en cas de succès ([SWS_DM_01367]).
Traitement des erreurs :
Si l'interface a déjà été proposée pour l'instance, l'appel échoue et renvoie, avec une sémantique de retour arrière (rollback), le code d'erreur DiagOfferErrc::kAlreadyOffered ([SWS_DM_01367]).
Concurrence et restrictions :
L'interface est spécifiée comme not thread-safe ([SWS_DM_01367]). Les appels simultanés sur la même instance doivent être synchronisés par l'application appelante.
Interaction :
Le modèle d'enregistrement correspond à la démarche d'autres services DoIP tels que DoIPGroupIdentification ([SWS_DM_00725]) et DoIPPowerMode ([SWS_DM_00735]) ainsi que de gestionnaires UDS génériques ([SWS_DM_00619]). La convention de nommage suit le modèle connu de ara::com, mais constitue un enregistrement autonome auprès du DM (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »).
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R25-11.
This StopOffer will disable the forwarding of request messages from DM.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2e0edce0b8e6ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La méthode ara::diag::DoIPEntityIdentification::StopOffer met fin à la proposition du service d'identification d'entité DoIP et désactive le transfert des messages de requête depuis le Diagnostic Management (DM) vers l'application [SWS_DM_01368]. L'interface est fournie via le fichier d'en-tête ara/diag/doip_entity_identification.h. Elle ne prend aucun paramètre et ne renvoie aucune valeur de retour (void) [SWS_DM_01368]. Interprétation : étant donné que la signature ne prévoit ni objet future ni notification par callback, l'appel devrait être exécuté de manière synchrone et bloquante jusqu'à ce que le transfert soit arrêté dans le DM. Question Q-75f67df3a003b08f (ouverte)
Traitement des erreurs et sécurité vis-à-vis des exceptions
L'opération est déclarée avec le spécificateur noexcept et spécifiée comme sûre vis-à-vis des exceptions (exception safe) [SWS_DM_01368]. Aucun code d'erreur spécifique n'est renvoyé et aucune exception n'est déclenchée.
Concurrence et restrictions
En ce qui concerne l’environnement d’exécution, la méthode est classée comme non sécurisée pour les threads (not thread-safe) [SWS_DM_01368]. Si des appels parallèles ou des accès concurrents à la même instance de ara::diag::DoIPEntityIdentification ont lieu, ils doivent être synchronisés côté application.
Interaction
Ce comportement s’intègre dans le modèle uniforme de cycle de vie d’AUTOSAR Adaptive Diagnostic Management. Une désactivation comparable du routage des messages a lieu par exemple lors de l’identification de groupe via [SWS_DM_00726] ainsi que pour les commutateurs de diagnostic et les moniteurs via [SWS_DM_01089]. Comme le souligne AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors », le nommage de Offer et StopOffer s’inspire des modèles de ara::com, mais constitue une implémentation indépendante pour les interfaces de diagnostic.
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand