DEENESPTFRRUARHIKOZHNL

structure ara::diag::TimeBased

[SWS_DM_00539] Upstream: RS_Diag_04225

struct TimeBased {...};

Represents the parameters for time-based debouncing.

Header-Datei#include "ara/diag/monitor_types.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

Guide utilisateurGÉNÉRÉ PAR IA

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 IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : beb974918ec8 Provenance Questions 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 kTestFailed AUTOSAR_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.

TimeBasedContext Anwendung Anwendung TimeBased TimeBased Anwendung->TimeBased erzeugt Monitor Monitor Anwendung->Monitor instanziiert TimeBased->Monitor konfiguriert DM DM Monitor->DM meldet Aktionen

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 :

  1. 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].
  2. 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].
  3. 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].
  4. 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].
  5. 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].
Déroulement du filtrage temporel antirebondApplicationmoniteurDMMonitor(specifier, notifier, timeBased)Aktivierung Entprellung & Timer-Init (0)ReportMonitorAction(kPrepassed)Start Timer Richtung kFinallyHealedTimer erreicht passedMsEvent als kFinallyHealed qualifiziertoptDebounce einfrierenReportMonitorAction(kFreezeDebouncing)Timer einfrierenReportMonitorAction(kPrepassed)Reprendre le temporisateur avec l'état geléoptDirekter FehlerReportMonitorAction(kFailed)Définir le temporisateur sur failedMs & kFinallyDefective

Diagramme de séquence : interaction entre l'application, le moniteur et le DM pendant le filtrage basé sur le temps. Sources : [SWS_DM_00550], [SWS_DM_00085], [SWS_DM_00878], [SWS_DM_00033], [SWS_DM_00880], [SWS_DM_00038]

Scénarios d'erreur

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.

G nara__diag__TimeBased382 «struct» TimeBased + failedMs + passedMs

Constantes

failedMs variable

time until failed in (ms)

std::uint32_t failedMs;
passedMs variable

time until passed in (ms)

std::uint32_t passedMs;

Documentation des constantes / variables

variable failedMs [SWS_DM_00629] Upstream: RS_Diag_04225

std::uint32_t failedMs;

time until failed in (ms)

Header-Datei#include "ara/diag/monitor_types.h"
Scopestruct ara::diag::TimeBased
SymbolfailedMs
Typstd::uint32_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00629
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00629@rel:R25-11#8525d65b
Content hash
8525d65b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00629
Status: valid/unmigrated Version: rel:R25-11#b234c6d7 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00629@rel:R25-11#b234c6d7
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#8525d65b2026-09-30
  • R20-11rel:R20-11#447b3a6c2026-10-14
  • R21-11rel:R21-11#deb8168b2026-10-14
  • R22-11rel:R22-11#c639f78a2026-10-14
  • R23-11rel:R23-11#bbcf28342026-10-14
  • R24-11rel:R24-11#b234c6d72026-10-14
  • R25-11rel:R25-11#b234c6d72026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable passedMs [SWS_DM_00630] Upstream: RS_Diag_04225

std::uint32_t passedMs;

time until passed in (ms)

Header-Datei#include "ara/diag/monitor_types.h"
Scopestruct ara::diag::TimeBased
SymbolpassedMs
Typstd::uint32_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00630
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00630@rel:R25-11#7291fe1e
Content hash
7291fe1e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00630
Status: valid/unmigrated Version: rel:R25-11#6fd0c00c Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00630@rel:R25-11#6fd0c00c
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#7291fe1e2026-09-30
  • R20-11rel:R20-11#3097b5012026-10-14
  • R21-11rel:R21-11#5ff8b1572026-10-14
  • R22-11rel:R22-11#5132f5a52026-10-14
  • R23-11rel:R23-11#6fd0c00c2026-10-14
  • R24-11rel:R24-11#6fd0c00c2026-10-14
  • R25-11rel:R25-11#6fd0c00c2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill