Met à disposition du Diagnostic Management le mode d'énergie DoIP actuel du véhicule via une interface de rappel (callback).
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : afa4b2f1975cProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Met à disposition du Diagnostic Management le mode d'énergie DoIP actuel du véhicule via une interface de rappel (callback).
La classe d'interface ara::diag::DoIPPowerMode permet aux applications de mettre à disposition du Diagnostic Management le mode d'énergie DoIP actuel via la fonction de rappel GetDoIPPowerMode()[SWS_DM_00734]. Après l'instanciation, le gestionnaire doit être activé via Offer() et désenregistré via StopOffer() avant la destruction [SWS_DM_00735], [SWS_DM_00736]. En tant qu'exemplaire unique, la classe n'est ni copiable ni déplaçable [SWS_DM_01645].
Contexte
La classe abstraite ara::diag::DoIPPowerMode définit l'interface pour la mise à disposition du mode d'énergie DoIP actuel auprès du Diagnostic Management (DM). Dans les architectures de véhicules qui utilisent le diagnostic sur Internet Protocol (DoIP), le protocole de communication doit être informé de l'état de fonctionnement du réseau de bord ou de l'alimentation en tension. Le logiciel d'application dérive une classe de gestionnaire concrète de ara::diag::DoIPPowerMode et implémente l'interrogation du mode d'énergie [SWS_DM_00734]. Les partenaires d'interaction sont l'application de diagnostic fournisseuse, qui offre l'interface, ainsi que le système d'exécution du DM, qui délègue les demandes entrantes à ce gestionnaire [SWS_DM_00735].
Cycle de vie
Les instances de ara::diag::DoIPPowerMode sont créées en interne dans l'application et identifiées via un prototype de port qui est référencé par un ara::core::InstanceSpecifier[SWS_DM_00732]. Lors de l'appel du constructeur, l'argument ConcurrencyType permet de définir si la méthode de rappel GetDoIPPowerMode() doit être exécutée avec sécurité multithread (kConcurrent) ou sans sécurité multithread (kNotConcurrent) [SWS_DM_00732]. Le constructeur lui-même est implémenté avec sécurité multithread [SWS_DM_00732].
Selon la spécification, il s'agit d'une instance non copiable et non déplaçable : le constructeur de copie [SWS_DM_01645] et le constructeur de déplacement [SWS_DM_01646] ainsi que les opérateurs d'affectation correspondants [SWS_DM_01643], [SWS_DM_01644] sont explicitement supprimés (=delete).
Après l'instanciation, le gestionnaire doit être activé via Offer() afin que le DM puisse transmettre les requêtes [SWS_DM_00735]. Pour mettre fin à la transmission des requêtes, StopOffer() est appelé [SWS_DM_00736]. Le destructeur virtuel ~DoIPPowerMode()[SWS_DM_00733] ainsi que Offer() et StopOffer() sont spécifiés comme n'étant pas à sécurité multithread. Il conviendrait vraisemblablement de toujours exécuter StopOffer() avant d'appeler le destructeur, afin d'interrompre proprement les interactions en attente avec le DM. Question Q-85ede935aa303c45 (ouverte)
Parcours d'utilisation
L'utilisation typique de ara::diag::DoIPPowerMode suit un enchaînement fixe composé de l'initialisation, de l'enregistrement du service, de l'interrogation cyclique ou événementielle du mode et du désenregistrement :
L'application instancie sa classe dérivée avec le InstanceSpecifier approprié et le ConcurrencyType souhaité [SWS_DM_00732].
L'application enregistre activement le gestionnaire auprès du Diagnostic Management au moyen de Offer()[SWS_DM_00735].
Dès que le protocole DoIP a besoin de l'état, le DM appelle la fonction purement virtuelle GetDoIPPowerMode()[SWS_DM_00734]. L'implémentation renvoie un ara::core::Future<PowerModeType>, qui est résolu de manière asynchrone [SWS_DM_00734].
Lors de la fin du fonctionnement, l'application appelle StopOffer() pour ne plus accepter de nouvelles demandes [SWS_DM_00736].
L'instance est libérée via le destructeur [SWS_DM_00733].
Lors de l'appel du constructeur, des violations de modèle et d'affectation documentées peuvent survenir [SWS_DM_00732] :
InstanceSpecifierMappingIntegrityViolation : l'identifiant ne peut pas être résolu dans le contexte de l'exécutable ou ne référence aucun élément PortPrototype [SWS_DM_00732].
PortInterfaceMappingViolation : le PortPrototype référencé n'est pas typé par un DiagnosticDoIPPowerModeInterface[SWS_DM_00732].
ProcessMappingViolation : il existe une référence d'instance, mais aucun processus modélisé correspondant pour l'environnement d'exécution [SWS_DM_00732].
InstanceSpecifierAlreadyInUseViolation : le InstanceSpecifier a déjà été utilisé au sein du même processus pour une autre instance [SWS_DM_00732].
Si Offer() est appelée alors que le service est déjà activement proposé, la méthode renvoie le code d'erreur DiagOfferErrc::kAlreadyOffered via le ara::core::Result[SWS_DM_00735]. La méthode GetDoIPPowerMode() ne définit en revanche aucun code d'erreur standardisé [SWS_DM_00734].
Ce guide est basé sur la spécification AUTOSAR pour l'Adaptive Platform (Release R25-11). Toutes les indications et tous les codes d'erreur s'appuient sur les exigences SWS référencées.
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 DiagnosticDoIpPowerModePortMapping needs to be typed by a DiagnosticDoIPPowerModeInterface. 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 DiagnosticDoIPPowerModeInterface
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 : 5f8fb75036b6Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode synchrone Offer de la classe ara::diag::DoIPPowerMode sert à une Adaptive Application à enregistrer et activer le service pour le DoIP-Power-Mode auprès du Diagnostic Management (DM) [SWS_DM_00735]. L'appel met le DM en mesure de transférer les messages de requête entrants vers ce gestionnaire [SWS_DM_00735]. La fonction n'attend aucun paramètre de transmission, ne lève aucune exception (noexcept) et fournit comme valeur de retour un ara::core::Result<void>[SWS_DM_00735].
Tant que Offer n'a pas encore été appelée par l'application fournisseuse, le DM répond aux requêtes client demandant des informations sur le DoIP-Power-Mode par la valeur d'état 0 (« Not ready ») conformément à l'ISO 13400-2 [SWS_DM_01525]. Si le gestionnaire est enregistré et que le DM a besoin du Power-Mode actuel pour répondre aux messages DoIP, il interroge celui-ci via ara::diag::DoIPPowerMode::GetDoIPPowerMode[SWS_DM_00814].
En cas d'erreur, l'objet Result contient un code d'erreur correspondant. Si la méthode a déjà été appelée auparavant avec succès sur l'instance concernée, un nouvel appel échoue et renvoie DiagOfferErrc::kAlreadyOffered avec une sémantique de retour arrière (rollback) [SWS_DM_00735].
Concernant la concurrence, la fonction est spécifiée comme non sûre au niveau des threads (not thread-safe) [SWS_DM_00735]. Les appels parallèles sur la même instance doivent donc être synchronisés par l'appelant. La fonction offre une sécurité complète vis-à-vis des exceptions (exception safe) [SWS_DM_00735].
Cette note d'utilisation a été créée par une IA et est basée sur les spécifications de la version 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 : 2a0861404a22ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode StopOffer de la classe ara::diag::DoIPPowerMode désactive le réacheminement des messages de requête de diagnostic entrants par Diagnostic Management (DM) vers le gestionnaire [SWS_DM_00736]. La fonction est mise à disposition via le fichier d'en-tête ara/diag/doip_power_mode.h, ne possède aucune valeur de retour et ne prend aucun paramètre [SWS_DM_00736].
Pour le comportement face aux erreurs et l'environnement d'exécution, les détails de spécification suivants s'appliquent :
Sûreté face aux exceptions : la fonction est déclarée comme noexcept et définie comme sûre face aux exceptions (exception safe) [SWS_DM_00736]. Aucune exception n'est levée et aucun code d'erreur n'est renvoyé.
Sûreté des threads : l'opération est spécifiée comme non sûre pour les threads (not thread-safe) [SWS_DM_00736]. Interprétation : si la méthode est appelée dans des scénarios multithread ou parallèlement à d'autres opérations de l'instance, une synchronisation externe par l'application devrait être nécessaire. Question Q-1593f08472d584d1 (ouverte)
Le modèle de mise à disposition avec Offer et StopOffer est conçu de manière uniforme dans Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors ». L'arrêt du réacheminement des requêtes DM via StopOffer est utilisé de manière analogue pour d'autres composants de diagnostic, tels que ara::diag::DoIPGroupIdentification[SWS_DM_00726], ara::diag::DoIPActivationLine[SWS_DM_00837], ara::diag::GenericUDSService[SWS_DM_00620], ara::diag::DownloadService[SWS_DM_00793] et ara::diag::Authentication[SWS_DM_01131].
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand