Permet de surveiller des cycles de fonctionnement de diagnostic ainsi que de déclencher un redémarrage de cycle via des ports modélisés.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3e8e62c1c567ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet de surveiller des cycles de fonctionnement de diagnostic ainsi que de déclencher un redémarrage de cycle via des ports modélisés.
La classe ara::diag::OperationCycle met à disposition de l’application des fonctions de contrôle et de surveillance des cycles de fonctionnement de diagnostic [SWS_DM_00752]. Les instances sont liées à un port modélisé via un ara::core::InstanceSpecifier, ne sont ni copiables ni déplaçables et ne doivent exister qu’une seule fois par identifiant dans le processus. SetNotifier permet de définir une notification pour les changements de cycle et RestartOperationCycle permet de déclencher un redémarrage du cycle de fonctionnement [SWS_DM_01102]. À l’exception du constructeur sûr pour les threads, toutes les méthodes ainsi que le destructeur ne sont pas sûrs pour les threads et nécessitent une synchronisation côté application en cas d’accès parallèle.
Contexte
La classe ara::diag::OperationCycle implémente le DiagnosticOperationCycleInterface au sein du diagnostic AUTOSAR Adaptive et fournit des fonctions pour la manipulation et le contrôle des cycles de fonctionnement. Elle sert d’interface entre l’application adaptative et le Diagnostic Management afin de surveiller les états des cycles de fonctionnement ou de les réinitialiser de manière ciblée.
Le raccordement au système global s’effectue via un ara::core::InstanceSpecifier, qui est transmis lors de l’appel du constructeur [SWS_DM_00752]. Cet identifiant référence un PortPrototype défini dans le modèle. Le modèle prescrit ici une affectation univoque : un PortPrototype référencé par un DiagnosticOperationCyclePortMapping doit être typé par le DiagnosticOperationCycleInterface[SWS_DM_00752]. En plus du contrôle, la classe interagit via une interface de rappel de type ara::diag::OperationCycle::OperationCycleSetNotifier (définie comme std::function<void(void)>), par laquelle les notifications lors d’un changement du cycle de fonctionnement sont transmises à l’application [SWS_DM_02078], [SWS_DM_00755].
Cycle de vie
La création de ara::diag::OperationCycle s’effectue explicitement en indiquant la spécification d’instance de port via le constructeur OperationCycle(const ara::core::InstanceSpecifier &specifier)[SWS_DM_00752]. Le constructeur est spécifié comme étant sans exception (exception safe) et sûr pour les threads (thread-safe) [SWS_DM_00752].
En matière de sémantique de possession et de copie, la classe est modélisée comme un objet unique strict, représentant une liaison 1:1 fixe avec le port modélisé. La copie et le déplacement sont totalement interdits :
Le constructeur de copie est supprimé (delete) afin d’exclure les duplications [SWS_DM_01598].
Le constructeur de déplacement est supprimé (delete) [SWS_DM_01599].
L’opérateur d’assignation par copie est supprimé (delete) [SWS_DM_01596].
L’opérateur d’assignation par déplacement est supprimé (delete) [SWS_DM_01597].
De plus, le framework interdit l’affectation multiple : un InstanceSpecifier ne doit pas être réutilisé pour une instanciation au sein du même processus [SWS_DM_00752]. La libération a lieu dans le destructeur ~OperationCycle()[SWS_DM_00753]. Contrairement au constructeur, le destructeur n’est pas sûr pour les threads (not thread-safe), bien qu’il soit déclaré comme étant sans exception [SWS_DM_00753]. Les autres méthodes de la classe ainsi que le type de rappel ne sont pas non plus sûrs pour les threads [SWS_DM_00755], [SWS_DM_01102], [SWS_DM_02078], de sorte que les accès parallèles à la même instance doivent être synchronisés côté application.
Parcours d'utilisation
Un chemin d’utilisation typique comprend l’instanciation, l’enregistrement optionnel d’un gestionnaire pour les changements de cycle, le déclenchement répété du redémarrage de cycle ainsi que la libération :
Instanciation : l’application crée l’objet OperationCycle en transmettant le InstanceSpecifier correspondant [SWS_DM_00752].
Enregistrer le notificateur : via la méthode SetNotifier, l’application enregistre une fonction de rappel de type OperationCycleSetNotifier[SWS_DM_00755], [SWS_DM_02078]. Cette fonction est appelée lorsque le cycle de fonctionnement change. Un appel successif de SetNotifier écrase entièrement le notificateur précédemment enregistré [SWS_DM_00755].
Redémarrer le cycle de fonctionnement : au moyen de RestartOperationCycle(), l’application déclenche le redémarrage du cycle de fonctionnement [SWS_DM_01102]. Le Diagnostic Management met à jour le cycle et notifie le callback enregistré lors des changements d’état [SWS_DM_00755]. La notification devrait s’effectuer ici de manière asynchrone dans le contexte du Diagnostic Management. Question Q-7cd22debf6fa91d7 (ouverte)
Destruction : lors de l’arrêt du composant logiciel, l’objet est détruit via le destructeur [SWS_DM_00753].
Les erreurs lors de l’initialisation sont signalées par le framework sous forme de violations, étant donné que le constructeur est déclaré comme noexcept[SWS_DM_00752] :
InstanceSpecifierMappingIntegrityViolation : le InstanceSpecifier ne peut pas être résolu dans le contexte de l’exécutable ou fait référence à un élément qui n’est pas un PortPrototype[SWS_DM_00752].
PortInterfaceMappingViolation : le PortPrototype référencé par DiagnosticOperationCyclePortMapping n’est pas typé par un DiagnosticOperationCycleInterface[SWS_DM_00752].
ProcessMappingViolation : une référence d’instance correspondante existe bien, mais aucun processus modélisé correspondant n’a été trouvé pour le processus d’exécution [SWS_DM_00752].
InstanceSpecifierAlreadyInUseViolation : le constructeur a été appelé avec un InstanceSpecifier qui est déjà utilisé au sein du processus actuel [SWS_DM_00752].
En fonctionnement normal, les méthodes SetNotifier et RestartOperationCycle renvoient un ara::core::Result<void>[SWS_DM_00755], [SWS_DM_01102]. Pour les deux fonctions, aucun code d’erreur spécifique n’est défini dans la norme (« This function does not specify any standardized errors. ») [SWS_DM_00755], [SWS_DM_01102]. L’utilisation du type Result devrait principalement servir à l’uniformité de la conception d’interface et offrir de l’espace pour des états d’erreur spécifiques à l’implémentation. Question Q-2c59a287c0d5783a (ouverte)
Ce guide a été généré par un système d'IA sur la base de la spécification AUTOSAR Adaptive R25-11.
Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
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 DiagnosticOperationCyclePortMapping needs to be typed by a DiagnosticOperationCycleInterface. 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 DiagnosticOperationCycleInterface.
Request a governed re-review of this record. The record is not changed immediately.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3cc8bab8ea58ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction membre RestartOperationCycle de la classe ara::diag::OperationCycle (fournie via #include "ara/diag/operation_cycle.h") sert à notifier au Diagnostic Management (DM) le redémarrage d'un cycle de fonctionnement [SWS_DM_01102]. Les cycles de fonctionnement tels que les cycles d'allumage (« Ignition on/off »), les cycles d'alimentation (« Power up/power down ») ou les durées de fonctionnement cumulées sont gérés par l'application adaptative et ont une influence directe sur l'octet d'état du DTC UDS ainsi que sur le comportement de la mémoire d'événements selon l'ISO 14229-1 SWS Diagnostics §7.3.4.3 « Operation Cycles Management ».
Appel et sémantique
La fonction est appelée sans paramètre et renvoie un ara::core::Result<void>[SWS_DM_01102]. Si le DM n'est pas encore prêt, au moment de l'appel, à traiter la notification de redémarrage, cette information n'est pas perdue : le DM met temporairement l'événement en mémoire tampon (mise en cache) et évalue le redémarrage du cycle dès que la connexion est rétablie [SWS_DM_01103].
Gestion des erreurs et concurrence
Aucun code d'erreur standardisé n'est spécifié pour RestartOperationCycle[SWS_DM_01102]. La fonction est spécifiée comme sûre vis-à-vis des exceptions (exception safe) et ne lève aucune exception C++ (noexcept) [SWS_DM_01102]. Cependant, l'interface étant explicitement désignée comme non thread-safe (not thread-safe) [SWS_DM_01102], les accès simultanés à la même instance par l'application appelante devraient devoir être synchronisés. Question Q-b3b258a20fd9db22 (ouverte)
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR R25-11.
Registering a notifier function which is called if the operation cycle 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 : 4ba4d539945dProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode ara::diag::OperationCycle::SetNotifier ([SWS_DM_00755]) sert à enregistrer une fonction de rappel côté application de type OperationCycleSetNotifier. Cette fonction notificatrice est appelée par Diagnostic Management (DM) dès que l'état du cycle de fonctionnement surveillé change ([SWS_DM_00755]). Pour utiliser la méthode, le fichier d'en-tête ara/diag/operation_cycle.h doit être inclus ([SWS_DM_00755]).
L'opération est déclarée comme noexcept et offre une sécurité vis-à-vis des exceptions (exception safe) ([SWS_DM_00755]). La valeur de retour synchrone fournie est ara::core::Result<void> ; aucun code d'erreur standardisé spécifique n'est cependant défini ([SWS_DM_00755]). D'éventuels états d'erreur dans l'objet Result devraient donc être spécifiques au constructeur ou à la plateforme. Question Q-6799492164efd793 (ouverte) En ce qui concerne la concurrence, la méthode est spécifiée comme non sûre pour les threads (not thread-safe) ([SWS_DM_00755]), de sorte que les appels parallèles sur une même instance d'objet doivent obligatoirement être synchronisés par l'application.
Cette note d'utilisation a été générée automatiquement et est basée sur la spécification AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand