Sert d'interface pour les applications pour la vérification et l'exécution de réinitialisations de calculateurs UDS dans 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 : 5b921e2dd86fProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert d'interface pour les applications pour la vérification et l'exécution de réinitialisations de calculateurs UDS dans le Diagnostic Management.
La classe ara::diag::EcuResetRequest représente l'interface applicative pour le traitement des services de réinitialisation UDS (Service 0x11) dans le Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1. Après son activation au moyen de Offer(), elle reçoit les requêtes de vérification et d'exécution de redémarrages ainsi que de commande d'arrêt rapide (rapid shutdown) ([SWS_DM_01016], [SWS_DM_01013], [SWS_DM_01014]). Les instances ne sont ni copiables ni déplaçables et toutes les méthodes sont spécifiées comme non thread-safe ([SWS_DM_01010], [SWS_DM_01621]).
Contexte
La classe d'interface ara::diag::EcuResetRequest sert au traitement du service UDS ECUReset (Service 0x11) dans l'AUTOSAR Adaptive Platform AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1 « Service 0x11 – ECUReset – RapidPowerShutdown sub function ». Elle permet à une application d'agir en tant que gestionnaire (handler) pour les requêtes de réinitialisation du Diagnostic Management (DM). Les tâches incluent l'activation ou la désactivation de l'arrêt rapide ([SWS_DM_01012]), la vérification des demandes de réinitialisation entrantes ([SWS_DM_01013]) ainsi que l'exécution effective du redémarrage ([SWS_DM_01014]). Les partenaires d'interaction impliqués sont le testeur de diagnostic externe, l'instance du Diagnostic Management (DM ou Diagnostic Server) et l'implémentation applicative de EcuResetRequest.
Une instance de EcuResetRequest est créée via son constructeur explicite en spécifiant un ara::core::InstanceSpecifier qui référence un PortPrototype d'un DiagnosticEcuResetInterface ([SWS_DM_01010]). Conformément aux règles de conception, la classe n'est ni copiable ni déplaçable ; les constructeurs de copie et de déplacement ([SWS_DM_01621], [SWS_DM_01622]) ainsi que les opérateurs d'assignation correspondants ([SWS_DM_01619], [SWS_DM_01620]) sont explicitement supprimés (=delete). Toutes les méthodes d'interface ainsi que le destructeur ([SWS_DM_01011]) sont spécifiés comme not thread-safe ([SWS_DM_01010], [SWS_DM_01016], [SWS_DM_01017]). Après l'initialisation, le gestionnaire se trouve d'abord dans l'état où aucun transfert de requêtes n'a lieu, jusqu'à ce que l'enregistrement soit explicitement activé via Offer() ([SWS_DM_01016]). L'appel de StopOffer() désactive à nouveau le transfert des requêtes ([SWS_DM_01017]) avant que l'objet ne puisse être détruit ([SWS_DM_01011]).
Un chemin d'utilisation typique s'articule en initialisation, libération et traitement ultérieur des requêtes de diagnostic :
Instanciation et libération : l'application instancie la classe dérivée avec le InstanceSpecifier approprié ([SWS_DM_01010]) et appelle Offer() pour permettre au DM de transférer les requêtes ([SWS_DM_01016]).
Commande d'arrêt rapide : si le DM reçoit une requête UDS pour EnableRapidPowerShutdown ou DisableRapidPowerShutdown, il appelle EnableRapidShutdown(enable, metaInfo, cancellationHandler) ([SWS_DM_01020], [SWS_DM_01021], [SWS_DM_01012]). En cas d'acquittement positif, le DM insère la valeur configurée pour le temps d'arrêt dans la réponse (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1 [SWS_DM_01092]).
Demande de réinitialisation : pour toutes les autres sous-fonctions de réinitialisation UDS, le DM appelle la méthode RequestReset(resetType, id, metaInfo, cancellationHandler) ([SWS_DM_01013]). Le processus instanciateur doit vérifier soigneusement si un redémarrage de certaines parties ou de l'ensemble de la machine est autorisé ([SWS_DM_01013]). Via le cancellationHandler, l'état d'annulation peut être interrogé ou un notificateur peut être enregistré ([SWS_DM_01013]).
Exécution de la réinitialisation : si la requête est acceptée et qu'il est configuré que la réponse positive soit envoyée avant la réinitialisation (respondBeforeReset ou non présente), le Diagnostic Server envoie la réponse UDS positive et appelle ensuite ExecuteReset(metaInfo) (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_01023], [SWS_DM_01014]). Si respondAfterReset a été configuré à la place, la réponse positive n'est renvoyée qu'après le redémarrage, pour autant que RequestReset() n'ait signalé aucune erreur (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_00360]).
Désenregistrement du service : pour mettre fin au transfert de service, l'application appelle StopOffer() ([SWS_DM_01017]).
En cas d'erreur, les aspects suivants doivent être pris en compte lors des différents appels :
Violations de constructeur : lors de la création, des violations de modèle peuvent survenir, notamment si le InstanceSpecifier ne peut pas être résolu dans le modèle (InstanceSpecifierMappingIntegrityViolation), référence un mauvais élément de modèle, si l'association de port est manquante (PortInterfaceMappingViolation), en l'absence de référence de processus (ProcessMappingViolation) ou si l'identifiant est déjà utilisé dans le processus (InstanceSpecifierAlreadyInUseViolation) ([SWS_DM_01010]).
Erreurs d'enregistrement : si Offer() est appelé alors que le service est déjà proposé, la méthode renvoie un ara::core::Result avec le code d'erreur DiagOfferErrc::kAlreadyOffered ([SWS_DM_01016]).
Codes d'erreur de diagnostic (NRC) : si EnableRapidShutdown, RequestReset ou ExecuteReset ne peuvent pas se terminer avec succès, leurs futures de retour renvoient une erreur avec un Negative Response Code (NRC) ISO 14229-1 approprié via DiagUdsNrcErrc ([SWS_DM_01012], [SWS_DM_01013], [SWS_DM_01014]). Il convient de noter : si respondToReset est défini sur respondBeforeReset ou n'est pas configuré, une erreur dans ExecuteReset() n'a plus d'effet sur la réponse de diagnostic, car la confirmation positive a déjà été envoyée préalablement au testeur ([SWS_DM_01014], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_01023]).
Ce guide se base exclusivement sur les spécifications de l'AUTOSAR Adaptive Platform R25-11.
Called for any EcuReset subFunction, except En-/DisableRapidShutdown. The process, which is instantiating this interface, needs to evaluate carefully if the request to restart parts or the whole machine. Once the request to reset is accepted, the process, which is instantiating this interface, has to rely on this decision for the ExecuteReset() trigger.
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 typed by a pingViolation DiagnosticEcuResetInterface needs to be referenced by a DiagnosticServiceGenericMapping. 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 DiagnosticEcuResetInterface.
Request a governed re-review of this record. The record is not changed immediately.
Interface for subFunction En-/DisableRapidShutdown.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 64d1feb19eceProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation et contexte d'appel
La méthode purement virtuelle EnableRapidShutdown de la classe ara::diag::EcuResetRequest sert d'interface pour le traitement des sous-fonctions UDS pour l'arrêt rapide ([SWS_DM_01012]). Lors de requêtes de diagnostic entrantes du service 0x11 (ECUReset), le Diagnostic Manager (DM) appelle cette fonction : pour EnableRapidPowerShutdown avec l'argument enable = true ([SWS_DM_01020]) et pour DisableRapidPowerShutdown avec enable = false ([SWS_DM_01021]). Cela distingue ces deux sous-fonctions de tous les autres services ECUReset, qui déclenchent à la place RequestReset ([SWS_DM_00235]).
enable : active l'arrêt rapide avec true et le désactive avec false.
metaInfo : transmet des métadonnées relatives à la requête de diagnostic.
cancellationHandler : sert à surveiller l'état d'interruption via cancellationHandler.IsCanceled() ou à enregistrer un notificateur via cancellationHandler.SetNotifier() au cas où la conversation de diagnostic en cours serait interrompue.
Sémantique, traitement des erreurs et concurrence
L'interface renvoie un ara::core::Future<void> ; le traitement effectif s'effectue ainsi vraisemblablement de manière asynchrone en arrière-plan ([SWS_DM_01012]). Question Q-ee781913ae88fabb (ouverte) En cas de succès, le future ne fournit aucune valeur. En cas d'erreur, un Negative Response Code (NRC) approprié selon l'ISO 14229-1 doit être défini au moyen de DiagUdsNrcErrc (AUTOSAR_AP_SWS_Diagnostics §8.16.3.1.3.1 « EnableRapidShutdown »). La fonction est spécifiée comme noexcept et sûre vis-à-vis des exceptions (exception safe), mais est considérée comme non thread-safe (not thread-safe), raison pour laquelle les appels concurrents sur la même instance doivent être évités côté application ([SWS_DM_01012]).
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R25-11.
When enable is set to true the rapid shutdown will be enabled, setting enable to false will disable rapid shutdown.
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
process which is instantiating this interface, has to execute the requested reset.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 5a6dac3995bcProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode ExecuteReset de l'interface ara::diag::EcuResetRequest est appelée par le Diagnostic Server (DM) afin de déclencher effectivement dans le processus implémentant le reset d'ECU préalablement accepté via [SWS_DM_01013][SWS_DM_01014]. La metaInfo de la requête est transmise en tant que paramètre. La fonction est spécifiée comme non thread-safe (not thread-safe), mais sûre vis-à-vis des exceptions (exception safe) [SWS_DM_01014].
Le moment de l'appel par le Diagnostic Server dépend du paramètre de configuration DiagnosticEcuResetClass.respondToReset :
Si le paramètre est absent ou défini sur respondBeforeReset, le Diagnostic Server n'appelle ExecuteReset qu'après l'envoi de la réponse UDS positive [SWS_DM_01023].
Si respondAfterReset est configuré, l'appel de ExecuteReset s'effectue directement et sans envoi préalable de la réponse positive [SWS_DM_01090].
La fonction renvoie un ara::core::Future<void>[SWS_DM_01014]. Si les requêtes UDS entrantes ont été bloquées après l'acceptation du reset [SWS_DM_01022], le Diagnostic Server lève à nouveau ce blocage dès que le Future renvoyé par ExecuteReset est terminé [SWS_DM_01309]. Les erreurs éventuelles sont signalées par des NRC ISO 14229-1 au moyen de DiagUdsNrcErrc dans le Future ; avec la configuration respondBeforeReset, une erreur transmise reste toutefois sans effet [SWS_DM_01014].
Ce texte a été généré par une IA et se base sur la release AUTOSAR R25-11.
Return nothing or an error. In case the parameter DiagnosticEcu ResetClass.respondToReset is either not present or present and set to respondBeforeReset, a given error has no effect.
Fehler
Fehlercode
Beschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.
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 : c497a60736afProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
À l'aide de la méthode ara::diag::EcuResetRequest::Offer ([SWS_DM_01016]), une Adaptive Application signale au Diagnostic Management (DM) qu'elle est prête à recevoir les requêtes de diagnostic entrantes pour un reset d'ECU. L'appel synchrone autorise le DM à transférer les messages de requête correspondants à ce gestionnaire ([SWS_DM_01016]). L'appel devrait typiquement avoir lieu durant la phase d'initialisation de l'application, avant que les requêtes de diagnostic ne doivent être traitées par le DM. Question Q-93d794e6b1dba23e (ouverte)
Appel et traitement des erreurs
La fonction ne comporte aucun paramètre d'entrée, est déclarée comme noexcept et garantit la sécurité vis-à-vis des exceptions ([SWS_DM_01016]). Un ara::core::Result<void> sert de valeur de retour. Si la mise à disposition échoue parce que le service a déjà été proposé auparavant, la méthode renvoie le code d'erreur DiagOfferErrc::kAlreadyOffered avec une sémantique de rollback ([SWS_DM_01016]).
Concurrence et interaction
Conformément à la spécification, la fonction est classée comme not thread-safe ([SWS_DM_01016]). Les appels sur la même instance de ara::diag::EcuResetRequest doivent donc être synchronisés côté application. Le modèle de mise à disposition correspond à la conception d'interface uniforme dans l'Adaptive Diagnostic Management, telle qu'elle est également définie de manière analogue pour d'autres gestionnaires comme ara::diag::GenericUDSService::Offer ([SWS_DM_00619]), ara::diag::GenericRoutine::Offer ([SWS_DM_00557]) ou ara::diag::CommunicationControl::Offer ([SWS_DM_00809]). Bien que la dénomination soit inspirée de ara::com, il s'agit d'une implémentation autonome du Diagnostic Management (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »).
Cette note d'utilisation a été générée automatiquement et s'appuie sur la spécification AUTOSAR Adaptive R25-11.
Called for any EcuReset subFunction, except En-/DisableRapidShutdown. The process, which is instantiating this interface, needs to evaluate carefully if the request to restart parts or the whole machine. Once the request to reset is accepted, the process, which is instantiating this interface, has to rely on this decision for the ExecuteReset() trigger.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4ec2f9bf44c2Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode ara::diag::EcuResetRequest::RequestReset (#include "ara/diag/ecu_reset_request.h") est appelée par le serveur de diagnostic dès qu'une requête UDS pour le service 0x11 (ECUReset) est reçue ([SWS_DM_00235], SWS Diagnostics §7.3.2.8.5.2 « Service 0x11 – ECUReset – all other sub functions »). Cela s'applique à toutes les sous-fonctions de réinitialisation, à l'exception de EnableRapidPowerShutdown et DisableRapidPowerShutdown ([SWS_DM_01013]). L'application instanciatrice doit vérifier soigneusement avant l'acceptation si un redémarrage de certaines parties ou de l'ensemble de la machine peut être exécuté ([SWS_DM_01013]).
Paramètres et interface asynchrone
L'appel transmet le type de réinitialisation resetType, un identifiant optionnel id (évalué uniquement lorsque resetType est positionné à custom), les métadonnées metaInfo ainsi qu'un cancellationHandler ([SWS_DM_01013]). Via le cancellationHandler, l'application peut déterminer l'état d'annulation par IsCanceled ou enregistrer une fonction de rappel pour les événements d'annulation au moyen de SetNotifier ([SWS_DM_01013]). Le résultat est mis à disposition de manière asynchrone via ara::core::Future<void> ([SWS_DM_01013]).
Gestion des erreurs, contrôle du flux et concurrence
Si la réinitialisation ne peut pas être acceptée, un code d'erreur NRC approprié doit être renvoyé dans le future via DiagUdsNrcErrc selon l'ISO 14229-1 ([SWS_DM_01013]) ; de plus, le signalement d'un ApApplicationError est pris en compte ([SWS_DM_00360]). Si la requête est acceptée, cette décision est contraignante pour le déclencheur ExecuteReset ultérieur ([SWS_DM_01013]), et le serveur de diagnostic ignore les requêtes UDS entrantes suivantes ([SWS_DM_01022]) jusqu'à ce que le blocage soit levé après l'achèvement de ExecuteReset ([SWS_DM_01309]). L'exécution effective de la réinitialisation s'effectue en fonction de DiagnosticEcuResetClass.respondToReset soit après l'envoi de la réponse positive UDS ([SWS_DM_01023]), soit directement avant le redémarrage ([SWS_DM_01090]). La fonction est spécifiée comme exception safe, mais explicitement comme not thread-safe ([SWS_DM_01013]).
Cette note d'utilisation est basée sur la spécification AUTOSAR Adaptive Platform Release R25-11.
id of the custom reset type. Will only be evaluated when resetType is "custom".
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
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 : b9e940cd3ae2ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La méthode ara::diag::EcuResetRequest::StopOffer met fin à la fourniture du service de réinitialisation et désactive le transfert des messages de requête entrants du Diagnostic Management (DM) vers l'application ([SWS_DM_01017], AUTOSAR_AP_SWS_Diagnostics §8.16.3.1.3.5 « StopOffer »). La fonction a pour signature void StopOffer() noexcept, n'attend aucun paramètre et ne renvoie aucune valeur de retour.
Traitement des erreurs et comportement face aux exceptions
L'opération est déclarée comme noexcept et classée sur le plan des spécifications comme sûre vis-à-vis des exceptions (exception safe) ([SWS_DM_01017]). Aucune exception n'est levée et aucun code d'erreur spécifique n'est renvoyé à l'appelant.
Concurrence et restrictions
La méthode est explicitement classée comme non sûre pour les threads (not thread-safe) ([SWS_DM_01017]). Les appelants doivent synchroniser côté application les accès concurrents à la même instance de ara::diag::EcuResetRequest. Sur le plan fonctionnel, l'appel ne devrait être prévu qu'après une proposition préalable du gestionnaire, afin d'arrêter de manière ordonnée la réception d'autres requêtes de réinitialisation. Question Q-25f37b77dc8cf80f (ouverte)
Interaction
La désactivation du transfert via StopOffer suit le modèle d'interface uniforme des gestionnaires de diagnostic fonctionnels dans Adaptive AUTOSAR, tel qu'il est défini de manière analogue pour d'autres services comme CommunicationControl ([SWS_DM_00810]) ou DownloadService ([SWS_DM_00793]).
Cette note d'utilisation a été générée par une IA sur la base de la spécification pour AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand