DEENESPTFRRUARHIKOZHNL

estrutura 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

Guia do utilizadorGERADO POR IA

Define os limites de tempo para o debouncing baseado em tempo de eventos de diagnóstico durante a inicialização do monitor.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: beb974918ec8 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Define os limites de tempo para o debouncing baseado em tempo de eventos de diagnóstico durante a inicialização do monitor.

A estrutura de dados ara::diag::TimeBased destina-se à configuração do debouncing baseado em tempo para eventos de diagnóstico [SWS_DM_00539]. Ela transmite ao construtor de ara::diag::Monitor os valores de limiar em milissegundos após cujo decurso um evento é classificado como recuperado ou com falha. O Diagnostic Management inicia e controla o temporizador de debouncing interno com base nesses limiares mediante a receção de mensagens de estado. O armazenamento persistente do valor do contador interno ao longo de reinicializações não é suportado para métodos de debouncing baseados em tempo AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 «Time-based debouncing».

Contexto

A estrutura C++ ara::diag::TimeBased define os parâmetros de configuração para o debouncing baseado em tempo (time-based debouncing) de eventos de diagnóstico no Diagnostic Management da AUTOSAR Adaptive Platform [SWS_DM_00539]. Ela encapsula as duas durações em milissegundos que são determinantes para as transições de estado de um evento de diagnóstico: failedMs como limiar de falha [SWS_DM_00629] e passedMs como limiar de recuperação [SWS_DM_00630].

No sistema global, a estrutura interliga três componentes essenciais: a função de aplicação de diagnóstico, a classe ara::diag::Monitor e o Diagnostic Management (DM) [SWS_DM_00550]. A aplicação instancia a estrutura para a definição de tempos de debouncing específicos do evento e passa-a ao construtor do monitor de diagnóstico [SWS_DM_00550]. O DM ativa, em seguida, o algoritmo de debouncing baseado em tempo para este evento [SWS_DM_00015] e calcula o bit de estado do evento kTestFailed AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 «Time-based debouncing» com base no temporizador interno e nos valores de limiar configurados.

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: interação entre a aplicação, ara::diag::TimeBased, ara::diag::Monitor e o Diagnostic Management. Fontes: [SWS_DM_00539], [SWS_DM_00550], [SWS_DM_00015]

Ciclo de vida

Como um contentor de dados simples sem recursos dinâmicos, o ara::diag::TimeBased possui um ciclo de vida descomplicado [SWS_DM_00539]. A estrutura é normalmente criada localmente na pilha ou na área de memória estática pela aplicação, inicializada com os tempos-alvo e passada por valor ao construtor de ara::diag::Monitor [SWS_DM_00550] (AUTOSAR_AP_SWS_Diagnostics §8.40.1.1.2.3 «Monitor»).

Interpretação: através da passagem por valor, os parâmetros são copiados aquando da criação do monitor, permitindo que o objeto TimeBased original seja descartado em segurança após a conclusão da chamada do construtor. Pergunta (aberta) A partir desse momento, o DM gere autonomamente o estado dinâmico do temporizador de debouncing e define inicialmente o seu valor para 0 no arranque do sistema [SWS_DM_00085]. Como o TimeBased não apresenta mecanismos de sincronização internos, acessos de escrita concorrentes a uma instância partilhada devem ser excluídos pelo lado da aplicação.

Caminho de utilização

A utilização típica divide-se nos seguintes passos:

  1. Parametrização e inicialização: a aplicação instancia ara::diag::TimeBased, define failedMs [SWS_DM_00629] bem como passedMs [SWS_DM_00630] e passa a estrutura ao construtor de ara::diag::Monitor [SWS_DM_00550].
  2. Inicialização do temporizador: o DM inicia o serviço de debouncing e inicializa o temporizador interno do evento com o valor zero [SWS_DM_00085].
  3. Notificação de resultados de pré-verificação: se o monitor detetar uma condição sem falhas, chama ReportMonitorAction com kPrepassed. O DM inicia o temporizador na direção do estado de recuperação [SWS_DM_00878] e atualiza continuamente o contador de deteção de falhas (Fault Detection Counter, FDC) [SWS_DM_00030].
  4. Qualificação: assim que o temporizador atinge o limiar passedMs, o DM qualifica o evento como kFinallyHealed [SWS_DM_00878]. Se o monitor reportar kFailed em vez disso, o temporizador é diretamente definido para failedMs e o evento é processado como kFinallyDefective [SWS_DM_00033].
  5. Congelamento e retoma: através de ReportMonitorAction(kFreezeDebouncing), o debouncing pode ser pausado se necessário [SWS_DM_00880] e retomado a partir do valor de contagem congelado mediante novas ações (kPrepassed ou kPrefailed) [SWS_DM_00038].
Fluxo do debounce baseado em tempoAplicaçãoMonitorDMMonitor(specifier, notifier, timeBased)Aktivierung Entprellung & Timer-Init (0)ReportMonitorAction(kPrepassed)Start Timer Richtung kFinallyHealedTimer erreicht passedMsEvent als kFinallyHealed qualifiziertoptDebounce einfrierenReportMonitorAction(kFreezeDebouncing)Timer einfrierenReportMonitorAction(kPrepassed)Retomar temporizador com estado congeladooptDirekter FehlerReportMonitorAction(kFailed)Definir temporizador para failedMs & kFinallyDefective

Diagrama de sequência: interação entre a aplicação, o monitor e o DM durante o debouncing baseado em tempo. Fontes: [SWS_DM_00550], [SWS_DM_00085], [SWS_DM_00878], [SWS_DM_00033], [SWS_DM_00880], [SWS_DM_00038]

Cenários de erro

Aplicam-se pré e pós-condições funcionais ao utilizar o debouncing baseado em tempo:

  • Início condicional do temporizador: na notificação de kPrepassed, o DM só inicia o temporizador na direção kFinallyHealed se este ainda não estiver a decorrer nessa direção e o evento ainda não for considerado recuperado [SWS_DM_00878].
  • Qualificação abreviada de falha: se for reportado diretamente kFailed ou kPassed, o DM define imediatamente o temporizador de debouncing para o respetivo valor de limiar e conclui a classificação sem tempo de espera [SWS_DM_00033], [SWS_DM_00036].
  • Exclusividade do congelamento: a ação kFreezeDebouncing é suportada pelo DM exclusivamente para eventos com debouncing baseado em tempo [SWS_DM_00880].
  • Sem persistência do contador: o armazenamento do valor do contador de debouncing ao longo de ciclos de reset e de arranque (debounceCounterStorage) não está previsto para debouncings baseados em tempo AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 «Time-based debouncing»; o temporizador é reposto a zero a cada arranque [SWS_DM_00085].

Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11 e resume os requisitos da estrutura ara::diag::TimeBased.

Diagrama de classes UML

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__TimeBased382 «struct» TimeBased + failedMs + passedMs

Constantes

failedMs variável

time until failed in (ms)

std::uint32_t failedMs;
passedMs variável

time until passed in (ms)

std::uint32_t passedMs;

Documentação das constantes / variáveis

variável 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#20fd56a6
Content hash
20fd56a6
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

variável 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#949f7bdd
Content hash
949f7bdd
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