Sert à l'exécution de surveillances de diagnostic et à la notification d'état au Diagnostic Management.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 49f63d89472dProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert à l'exécution de surveillances de diagnostic et à la notification d'état au Diagnostic Management.
La classe ara::diag::Monitor fournit l'interface fonctionnelle pour l'implémentation de fonctions de surveillance de diagnostic et leur raccordement au Diagnostic Management [SWS_DM_00548]. Après la liaison à un prototype de port, l'application signale via Offer() qu'elle est prête à recevoir et transmet en continu les résultats de test via ReportMonitorAction()[SWS_DM_01088], [SWS_DM_00543]. Les instances de moniteur ne sont ni copiables ni déplaçables et toutes les opérations sont spécifiées comme non thread-safe [SWS_DM_01685].
Contexte
La classe ara::diag::Monitor représente l'interface C++ standardisée pour la réalisation de fonctions de surveillance de diagnostic (moniteurs) au sein de l'Adaptive Platform [SWS_DM_00548]. Un moniteur est responsable de la détection et du signalement des symptômes de défauts dans les composants logiciels fonctionnels et transmet leurs états au module Diagnostic Management (DM).
La liaison au modèle de système AUTOSAR s'effectue via un ara::core::InstanceSpecifier, qui doit obligatoirement référencer un PortPrototype typé par un DiagnosticMonitorInterface[SWS_DM_00548]. Trois composants participent principalement au déroulement global : la surveillance fonctionnelle spécifique à l'application (Application), l'instance d'interface locale de ara::diag::Monitor ainsi que le module de plateforme Diagnostic Management (DM), qui reçoit les événements et demande les réinitialisations.
L'instanciation d'un moniteur dépend du mécanisme de filtrage des rebonds (debouncing) défini dans le modèle. L'Adaptive Platform fournit à cet effet quatre variantes de constructeur :
Dévalidation interne au moniteur avec enregistrement d'un callback InitMonitorNotifier et d'un pointeur de fonction pour l'interrogation du Fault Detection Counter (std::function<std::int8_t()> getFaultDetectionCounter) [SWS_DM_00548].
Dévalidation par compteur avec transmission de paramètres du type CounterBased[SWS_DM_00549].
Dévalidation temporelle avec transmission de paramètres du type TimeBased[SWS_DM_00550].
Surveillance directe sans algorithme de dévalidation [SWS_DM_01972].
Les instances de ara::diag::Monitor sont strictement liées à leur emplacement mémoire d'origine : le constructeur de copie [SWS_DM_01685] et l'opérateur d'assignation par copie [SWS_DM_01683] sont supprimés (delete). De même, le constructeur de déplacement [SWS_DM_01686] et l'assignation par déplacement [SWS_DM_01684] sont explicitement supprimés.
Après sa création, l'instance se trouve dans l'état Non proposé (Unoffered). Ce n'est que par l'appel explicite de Offer() que l'application déclare être prête à recevoir et traiter les callouts de diagnostic tels que initMonitor[SWS_DM_01088]. Avec StopOffer(), le réacheminement des requêtes de diagnostic provenant du DM est à nouveau désactivé [SWS_DM_01089]. Après l'appel de StopOffer(), une reprise ultérieure du fonctionnement par un nouvel appel de Offer() devrait probablement être possible. Question Q-136565db34b28ae6 (ouverte) Avant la destruction finale de l'objet Monitor, l'application devrait probablement exécuter StopOffer() afin d'empêcher de manière sûre les notifications en attente.
En ce qui concerne la concurrence, toutes les fonctions membres de ara::diag::Monitor sont spécifiées comme non thread-safe[SWS_DM_00548], [SWS_DM_01088], [SWS_DM_00543], [SWS_DM_01089]. Si plusieurs threads du logiciel d'application accèdent au même moniteur, la synchronisation incombe à l'application. Toutes les méthodes sont cependant déclarées comme sûres vis-à-vis des exceptions (noexcept) [SWS_DM_00548], [SWS_DM_01088], [SWS_DM_00543], [SWS_DM_01089].
Diagramme d'états : États du cycle de vie et transitions lors de la mise à disposition de services d'ara::diag::Monitor. Sources : [SWS_DM_01088], [SWS_DM_01089]
Parcours d'utilisation
Le déroulement standard pour la surveillance d'un chemin de défaillance comprend les étapes suivantes :
Instanciation : l'application crée l'instance de Monitor en spécifiant l'InstanceSpecifier, le callback initMonitor ainsi que les paramètres de dévalidation éventuellement requis ou le callback FDC [SWS_DM_00548], [SWS_DM_00549].
Offre de service : via Offer(), le moniteur se déclare prêt à recevoir auprès du DM [SWS_DM_01088].
Initialisation : le Diagnostic Management informe l'application des événements d'initialisation en attente via le callback InitMonitorNotifier enregistré [SWS_DM_01088].
Notification cyclique / basée sur des événements : pendant le fonctionnement opérationnel, l'application notifie en continu l'état du chemin de surveillance via ReportMonitorAction(action)[SWS_DM_00543]. L'action transmise contient soit des résultats de test (qualifiés/non qualifiés), soit des commandes de contrôle de dévalidation ou de pré-mémorisation (Prestorage). Si une dévalidation interne au moniteur a été configurée, le DM interroge en cas de besoin la valeur de détection de défaillance via le callback enregistré [SWS_DM_00548].
Fin de service : avant l'arrêt ou lors de la désactivation de la fonction de diagnostic, l'application appelle StopOffer() afin d'empêcher les messages entrants du DM [SWS_DM_01089].
Les situations d'erreur se manifestent pour ara::diag::Monitor à deux niveaux distincts : sous forme de code d'erreur via ara::core::Result ou sous forme de violations d'exécution (Violations) du framework.
La méthode Offer() renvoie un ara::core::Result<void>. Si le moniteur se trouve déjà dans l'état proposé, l'appel échoue et renvoie le code d'erreur DiagOfferErrc::kAlreadyOffered[SWS_DM_01088].
Les erreurs graves de configuration ou d'appel déclenchent des messages de violation définis :
InstanceSpecifierMappingIntegrityViolation : l'InstanceSpecifier ne peut pas être résolu dans le contexte de modèle du processus ou ne fait pas référence à un PortPrototype[SWS_DM_00548].
PortInterfaceMappingViolation\u202f: Le port référencé n'est pas typé par un DiagnosticMonitorInterface[SWS_DM_00548].
InstanceSpecifierAlreadyInUseViolation : l'InstanceSpecifier est déjà utilisé par un autre moniteur au sein du processus actuel [SWS_DM_00548].
InvalidDebouncingAlgorithmViolation : le mécanisme de dévalidation sélectionné dans le constructeur diffère de la méthode de dévalidation modélisée dans les descriptions de diagnostic DEXT [SWS_DM_00548], [SWS_DM_00549], [SWS_DM_00550].
UnexpectedMonitorActionHandlingViolation : une valeur d'action qui n'est pas prise en charge pour l'algorithme de dévalidation configuré est transmise à la méthode ReportMonitorAction()[SWS_DM_00543].
Ce guide est basé sur la spécification AUTOSAR Adaptive Platform Release 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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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.
InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
getFaultDetectionCounter
Possibility to register a function to get the current FDC for this event.
Request a governed re-review of this record. The record is not changed immediately.
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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceCounterBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for CounterBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceTimeBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for TimeBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
Request a governed re-review of this record. The record is not changed immediately.
With the Offer the application states that it is ready to receive and process initMonitor callouts.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2e8d03769af8Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Par l'appel de la méthode Offer, une Adaptive Application signale au Diagnostic Management (DM) qu'elle est prête pour la réception et le traitement des callouts initMonitor[SWS_DM_01088]. La méthode de la classe ara::diag::Monitor ne possède aucun paramètre et renvoie ara::core::Result<void>[SWS_DM_01088]. Bien que le nom ait été choisi par analogie avec ara::com, il s'agit d'une implémentation spécifique du composant de diagnostic qui ne doit pas être confondue avec des services de communication AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors ».
En cas d'erreur, la méthode renvoie le code d'erreur DiagOfferErrc::kAlreadyOffered si le service a déjà été proposé auparavant [SWS_DM_01088]. Cela correspond à l'énumérateur signalant des offres déjà actives au sein des domaines d'erreur de diagnostic [SWS_DM_00514]. En cas d'appel réussi, l'objet de retour ne contient aucune erreur.
Concernant la concurrence, la méthode est spécifiée comme not thread-safe, ce qui implique que les appels parallèles sur la même instance doivent être synchronisés côté application [SWS_DM_01088]. De plus, la fonction est déclarée comme sûre vis-à-vis des exceptions (exception safe) et avec noexcept[SWS_DM_01088].
Function to report the status information being relevant for error monitoring paths.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 8334da733b55Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode synchrone ReportMonitorAction de la classe ara::diag::Monitor signale les informations d'état et de surveillance d'un contrôle de diagnostic au monitoring des défauts du démon de Diagnostic Management [SWS_DM_00543]. Via le paramètre action de type MonitorAction, l'application transmet soit un résultat de test qualifié ou non qualifié, soit des commandes de contrôle pour piloter le filtrage (déboubage) ainsi que pour déclencher un pré-enregistrement (Prestorage) [SWS_DM_00543]. La fonction ne fournit aucune valeur de retour (void) et est déclarée comme noexcept ainsi que sûre du point de vue des exceptions [SWS_DM_00543].
Si ReportMonitorAction est appelée avec une valeur pour action qui n'est pas prise en charge par la méthode de filtrage configurée pour l'événement de diagnostic, le Diagnostic Manager déclenche une violation de processus [SWS_DM_01988]. De plus, le système définit des codes d'erreur internes dans le type DiagErrc, par exemple kReportIgnored pour les situations dans lesquelles les conditions de validation (Enable Conditions) ne sont pas remplies [SWS_DM_00514].
Pour l'intégration et la concurrence, les contraintes suivantes s'appliquent :
Sûreté des threads : la fonction n'est pas sûre pour les threads (not thread-safe) [SWS_DM_00543]. Les appels parallèles sur la même instance de moniteur doivent être synchronisés côté appelant (à la différence de MultipleMonitor, où la sûreté des threads est configurable via le constructeur [SWS_DM_01698]).
Conditions de validation : si une Enable Condition associée à l'événement de diagnostic n'est pas remplie, l'appel de ReportMonitorAction est ignoré SWS Diagnostics §7.3.4.1.4 « EnableConditions ».
Filtrage (déboubage) : les actions signalées telles que kPrefailed modifient le compteur interne de filtrage selon le pas configuré [SWS_DM_00875], jusqu'à ce que, lorsque la valeur de seuil est atteinte, le défaut soit classé comme kFinallyDefective[SWS_DM_00024].
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR AP R25-11.
UnexpectedMoni- ara::diag::Monitor::ReportMonitorAction is called with torActionHan- a parameter action value that is not supported by the used dlingViolation debouncing method.
Parameter (in)
Parameter
Beschreibung
action
Contains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
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 : e17ef3becf1dProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode ara::diag::Monitor::StopOffer désactive le transfert des requêtes et messages du Diagnostic Management (DM) vers l'instance de moniteur concernée ([SWS_DM_01089]). L'appel est exécuté de manière synchrone, ne nécessite aucun paramètre d'entrée et n'a pas de valeur de retour ([SWS_DM_01089]). L'opération sert de pendant à Offer et permet à une Adaptive Application de suspendre la surveillance active, pour autant que la partie de système associée n'ait pas besoin d'être surveillée temporairement (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »). Bien que l'identifiant s'oriente sur les interfaces issues de ara::com, la spécification souligne expressément qu'il s'agit d'une implémentation autonome de ara::diag::Monitor (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »).
Concernant le traitement des erreurs, la fonction est déclarée comme noexcept et considérée comme sûre vis-à-vis des exceptions (exception safe) ; aucun code d'erreur ni message d'erreur spécifique n'existe ([SWS_DM_01089]). Comme restriction essentielle, StopOffer est classée comme non sûre pour les threads (not thread-safe) ([SWS_DM_01089]). Interprétation : lors d'accès concurrents au même objet moniteur, l'appelant devrait être lui-même responsable d'une synchronisation appropriée. Question Q-3ead3049b4378083 (ouverte)
Dans le système global, StopOffer s'intègre dans un modèle uniforme du module de diagnostic : des interfaces analogues pour désactiver le transfert des messages du DM se trouvent entre autres chez GenericRoutine ([SWS_DM_00558]), CommunicationControl ([SWS_DM_00810]), EcuResetRequest ([SWS_DM_01017]) ainsi que Authentication ([SWS_DM_01131]).
Cette note d'utilisation a été générée automatiquement et se base sur les spécifications d'AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand