DEENESPTFRRUARHIKOZHNL

estructura 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

Guía del usuarioGENERADO POR IA

Define los límites temporales para el antirrebote basado en tiempo de eventos de diagnóstico durante la inicialización del monitor.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: beb974918ec8 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Define los límites temporales para el antirrebote basado en tiempo de eventos de diagnóstico durante la inicialización del monitor.

La estructura de datos ara::diag::TimeBased sirve para la configuración del antirrebote basado en tiempo para eventos de diagnóstico [SWS_DM_00539]. Transfiere al constructor de ara::diag::Monitor los valores de umbral en milisegundos tras cuyo transcurso un evento se clasifica como restablecido (curado) o defectuoso. Diagnostic Management inicia y controla el temporizador de antirrebote interno en función de estos umbrales al recibir notificaciones de estado entrantes. El almacenamiento persistente del valor del contador interno a través de reinicios no es compatible para los procedimientos de antirrebote basados en tiempo AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 «Time-based debouncing».

Contexto

La estructura de C++ ara::diag::TimeBased define los parámetros de configuración para el antirrebote basado en tiempo (time-based debouncing) de eventos de diagnóstico en Diagnostic Management de la AUTOSAR Adaptive Platform [SWS_DM_00539]. Encapsula las dos duraciones en milisegundos que son determinantes para las transiciones de estado de un evento de diagnóstico: failedMs como umbral de fallo [SWS_DM_00629] y passedMs como umbral de curación [SWS_DM_00630].

En el sistema global, la estructura conecta tres componentes esenciales: la función de aplicación de diagnóstico, la clase ara::diag::Monitor y Diagnostic Management (DM) [SWS_DM_00550]. La aplicación instancia la estructura para definir tiempos de antirrebote específicos del evento y la pasa al constructor del monitor de diagnóstico [SWS_DM_00550]. Acto seguido, el DM activa el algoritmo de antirrebote basado en tiempo para este evento [SWS_DM_00015] y calcula el bit de estado del evento basándose en el temporizador interno y en los umbrales configurados kTestFailed AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 «Time-based debouncing».

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

Diagrama de contexto: interacción entre la aplicación, ara::diag::TimeBased, ara::diag::Monitor y Diagnostic Management. Fuentes: [SWS_DM_00539], [SWS_DM_00550], [SWS_DM_00015]

Ciclo de vida

Como contenedor de datos simple sin recursos dinámicos, ara::diag::TimeBased posee un ciclo de vida sencillo [SWS_DM_00539]. La aplicación suele crear la estructura localmente en la pila o en el área de memoria estática, la inicializa con los tiempos de destino y la pasa por valor al constructor de ara::diag::Monitor [SWS_DM_00550] (AUTOSAR_AP_SWS_Diagnostics §8.40.1.1.2.3 «Monitor»).

Interpretación: mediante la transferencia por valor, los parámetros se copian durante la creación del monitor, de modo que el objeto TimeBased original puede descartarse de forma segura tras finalizar la llamada al constructor. Pregunta (abierta) A partir de ese momento, el DM gestiona el estado dinámico del temporizador de antirrebote de forma autónoma y establece inicialmente su valor en 0 al iniciar el sistema [SWS_DM_00085]. Dado que TimeBased no presenta mecanismos de sincronización internos, los accesos concurrentes de escritura a una instancia compartida deben excluirse del lado de la aplicación.

Ruta de uso

El uso típico se divide en los siguientes pasos:

  1. Parametrización e inicialización: la aplicación instancia ara::diag::TimeBased, establece failedMs [SWS_DM_00629] así como passedMs [SWS_DM_00630] y pasa la estructura al constructor de ara::diag::Monitor [SWS_DM_00550].
  2. Inicialización del temporizador: el DM inicia el servicio de antirrebote e inicializa el temporizador interno del evento con el valor cero [SWS_DM_00085].
  3. Notificación de resultados de comprobación previa: si el monitor detecta una condición sin fallos, llama a ReportMonitorAction con kPrepassed. El DM inicia el temporizador en dirección al estado de curación [SWS_DM_00878] y actualiza continuamente el contador de detección de fallos (Fault Detection Counter, FDC) [SWS_DM_00030].
  4. Calificación: si el temporizador alcanza el umbral passedMs, el DM califica el evento como kFinallyHealed [SWS_DM_00878]. Si, en cambio, el monitor notifica kFailed, el temporizador se ajusta directamente a failedMs y el evento se procesa como kFinallyDefective [SWS_DM_00033].
  5. Congelación y reanudación: mediante ReportMonitorAction(kFreezeDebouncing), el antirrebote puede detenerse en caso necesario [SWS_DM_00880] y, ante nuevas acciones (kPrepassed o kPrefailed), reanudarse a partir del recuento congelado [SWS_DM_00038].
Flujo del antirrebote basado en tiempoAplicaciónmonitorDMMonitor(specifier, notifier, timeBased)Aktivierung Entprellung & Timer-Init (0)ReportMonitorAction(kPrepassed)Start Timer Richtung kFinallyHealedTimer erreicht passedMsEvent als kFinallyHealed qualifiziertoptDebounce einfrierenReportMonitorAction(kFreezeDebouncing)Timer einfrierenReportMonitorAction(kPrepassed)Continuar temporizador con el valor congeladooptDirekter FehlerReportMonitorAction(kFailed)Ajustar temporizador a failedMs y kFinallyDefective

Diagrama de secuencia: interacción entre la aplicación, el monitor y el DM durante el antirrebote basado en tiempo. Fuentes: [SWS_DM_00550], [SWS_DM_00085], [SWS_DM_00878], [SWS_DM_00033], [SWS_DM_00880], [SWS_DM_00038]

Escenarios de error

Al utilizar el antirrebote basado en tiempo rigen precondiciones y poscondiciones funcionales:

  • Inicio condicional del temporizador: Al notificarse kPrepassed, el DM inicia el temporizador hacia kFinallyHealed únicamente si este no se encuentra ya funcionando en dicha dirección y el evento no se considera ya curado [SWS_DM_00878].
  • Calificación de fallos abreviada: Si se notifica directamente kFailed o kPassed, el DM ajusta de inmediato el temporizador de antirrebote al umbral correspondiente y concluye la clasificación sin tiempo de espera [SWS_DM_00033], [SWS_DM_00036].
  • Exclusividad de la congelación: La acción kFreezeDebouncing solo es compatible con el DM para eventos con antirrebote basado en tiempo [SWS_DM_00880].
  • Sin persistencia del contador: No está previsto el almacenamiento del valor del contador de antirrebote a lo largo de ciclos de reinicio y puesta en marcha (debounceCounterStorage) para antirrebotes basados en tiempo AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 «Time-based debouncing»; el temporizador se restablece a cero en cada puesta en marcha [SWS_DM_00085].

Esta guía se basa en la especificación AUTOSAR Adaptive Platform R25-11 y resume los requisitos para la estructura ara::diag::TimeBased.

Diagrama de clases 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;

Documentación de las 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