Définit les limites temporelles pour le filtrage basé sur le temps des événements de diagnostic lors de l'initialisation du moniteur.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : beb974918ec8ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Définit les limites temporelles pour le filtrage basé sur le temps des événements de diagnostic lors de l'initialisation du moniteur.
La structure de données ara::diag::TimeBased sert à la configuration du filtrage basé sur le temps pour les événements de diagnostic [SWS_DM_00539]. Elle transmet au constructeur de ara::diag::Monitor les valeurs de seuil en millisecondes au terme desquelles un événement est classé comme guéri ou défectueux. Le Diagnostic Management démarre et contrôle le temporisateur interne de debouncing à l'aide de ces seuils lors de la réception de messages d'état. L'enregistrement persistant de la valeur du compteur interne au-delà des redémarrages n'est pas pris en charge pour les procédures de filtrage basé sur le temps AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 « Time-based debouncing ».
Contexte
La structure C++ ara::diag::TimeBased définit les paramètres de configuration pour le filtrage basé sur le temps (time-based debouncing) d'événements de diagnostic dans le Diagnostic Management de l'AUTOSAR Adaptive Platform [SWS_DM_00539]. Elle encapsule les deux durées en millisecondes déterminantes pour les transitions d'état d'un événement de diagnostic : failedMs comme seuil de défaut [SWS_DM_00629] et passedMs comme seuil de guérison [SWS_DM_00630].
Dans l'ensemble du système, la structure relie trois composants essentiels : la fonction applicative de diagnostic, la classe ara::diag::Monitor ainsi que le Diagnostic Management (DM) [SWS_DM_00550]. L'application instancie la structure pour définir les durées de debouncing spécifiques à l'événement et la transmet au constructeur du moniteur de diagnostic [SWS_DM_00550]. Le DM active ensuite l'algorithme de filtrage basé sur le temps pour cet événement [SWS_DM_00015] et calcule le bit d'état d'événement kTestFailedAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 « Time-based debouncing » sur la base du temporisateur interne et des valeurs de seuil configurées.
Diagramme de contexte : interaction entre l'application, ara::diag::TimeBased, ara::diag::Monitor et le Diagnostic Management. Sources : [SWS_DM_00539], [SWS_DM_00550], [SWS_DM_00015]
Cycle de vie
En tant que conteneur de données simple sans ressources dynamiques, ara::diag::TimeBased possède un cycle de vie direct [SWS_DM_00539]. La structure est habituellement créée localement sur la pile ou dans la mémoire statique par l'application, initialisée avec les durées cibles et transmise par valeur au constructeur de ara::diag::Monitor[SWS_DM_00550] (AUTOSAR_AP_SWS_Diagnostics §8.40.1.1.2.3 « Monitor »).
Interprétation : grâce au passage par valeur, les paramètres sont copiés lors de la création du moniteur, de sorte que l'objet TimeBased d'origine peut être supprimé en toute sécurité après l'achèvement de l'appel du constructeur. Question (ouverte) À partir de cet instant, le DM gère l'état dynamique du temporisateur de debouncing de manière autonome et initialise sa valeur à 0 lors du démarrage du système [SWS_DM_00085]. Étant donné que TimeBased ne comporte aucun mécanisme de synchronisation interne, les accès concurrents en écriture à une instance commune doivent être exclus côté application.
Parcours d'utilisation
L'utilisation typique se décompose en les étapes suivantes :
Paramétrage et initialisation : l'application instancie ara::diag::TimeBased, définit failedMs[SWS_DM_00629] ainsi que passedMs[SWS_DM_00630] et transmet la structure au constructeur de ara::diag::Monitor[SWS_DM_00550].
Initialisation du temporisateur : le DM démarre le service de debouncing et initialise le temporisateur interne à l'événement avec la valeur zéro [SWS_DM_00085].
Notification des résultats de pré-vérification : si le moniteur détecte une condition sans défaut, il appelle ReportMonitorAction avec kPrepassed. Le DM démarre le temporisateur en direction de l'état guéri [SWS_DM_00878] et met à jour en continu le compteur de détection de défauts (Fault Detection Counter, FDC) [SWS_DM_00030].
Qualification : si le temporisateur atteint le seuil passedMs, le DM qualifie l'événement comme kFinallyHealed[SWS_DM_00878]. Si le moniteur signale en revanche kFailed, le temporisateur est directement positionné à failedMs et l'événement est traité comme kFinallyDefective[SWS_DM_00033].
Gel et reprise : via ReportMonitorAction(kFreezeDebouncing), le filtrage peut être mis en pause si nécessaire [SWS_DM_00880] et être repris à partir de la valeur de compteur gelée lors de nouvelles actions (kPrepassed ou kPrefailed) [SWS_DM_00038].
Lors de l'utilisation d'un filtrage basé sur le temps, des préconditions et postconditions fonctionnelles s'appliquent :
Démarrage conditionnel du temporisateur : lors de la notification de kPrepassed, le DM ne démarre le temporisateur dans la direction kFinallyHealed que s'il ne fonctionne pas déjà dans cette direction et si l'événement n'est pas déjà considéré comme guéri [SWS_DM_00878].
Qualification de défaut raccourcie : si kFailed ou kPassed est directement signalé, le DM positionne immédiatement le temporisateur de debouncing sur la valeur de seuil respective et termine la classification sans temps d'attente [SWS_DM_00033], [SWS_DM_00036].
Exclusivité du gel : l'action kFreezeDebouncing n'est prise en charge par le DM qu'exclusivement pour les événements dotés d'un filtrage basé sur le temps [SWS_DM_00880].
Aucune persistance du compteur : une sauvegarde de la valeur du compteur de debouncing au-delà des cycles de réinitialisation et de démarrage (debounceCounterStorage) n'est pas prévue pour les filtrages basés sur le temps AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 « Time-based debouncing » ; le temporisateur est réinitialisé à zéro à chaque démarrage [SWS_DM_00085].
Ce guide repose sur la spécification AUTOSAR Adaptive Platform R25-11 et résume les exigences applicables à la structure ara::diag::TimeBased.
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original allemand