DEENESPTFRRUARHIKOZHNL

구조체 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

사용자 가이드AI 생성

모니터 초기화 시 진단 이벤트의 시간 기반 디바운싱을 위한 시간 한계를 정의합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: beb974918ec8 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

모니터 초기화 시 진단 이벤트의 시간 기반 디바운싱을 위한 시간 한계를 정의합니다.

데이터 구조체 ara::diag::TimeBased은 진단 이벤트에 대한 시간 기반 디바운싱을 구성하는 데 사용됩니다[SWS_DM_00539]. 이는 이벤트가 복구되었거나 결함이 있는 것으로 분류되는 기준이 되는 임계값을 밀리초 단위로 ara::diag::Monitor의 생성자에 전달합니다. Diagnostic Management는 상태 메시지가 수신될 때 이러한 임계값을 기반으로 내부 디바운스 타이머를 시작하고 제어합니다. 재부팅 전반에 걸친 내부 카운터 값의 영속적 저장은 시간 기반 디바운싱 방식에서 지원되지 않습니다AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 “Time-based debouncing”.

컨텍스트

C++ 구조체 ara::diag::TimeBased은 AUTOSAR Adaptive Platform의 Diagnostic Management에서 진단 이벤트의 시간 기반 디바운싱(time-based debouncing)을 위한 구성 매개변수를 정의합니다[SWS_DM_00539]. 이 구조체는 진단 이벤트의 상태 전이에 결정적인 두 가지 지속 시간을 밀리초 단위로 캡슐화합니다: 오류 임계값으로서의 failedMs[SWS_DM_00629] 및 복구 임계값으로서의 passedMs[SWS_DM_00630].

전체 시스템에서 이 구조체는 세 가지 필수 구성 요소인 진단 애플리케이션 기능, ara::diag::Monitor 클래스, 그리고 Diagnostic Management(DM)를 연결합니다[SWS_DM_00550]. 애플리케이션은 이벤트별 디바운싱 시간을 정의하기 위해 구조체를 인스턴스화하고 진단 모니터의 생성자에 전달합니다[SWS_DM_00550]. 그러면 DM은 이 이벤트에 대해 시간 기반 디바운싱 알고리즘을 활성화하고[SWS_DM_00015] 내부 타이머와 구성된 임계값을 기반으로 이벤트 상태 비트를 계산합니다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

컨텍스트 다이어그램: 애플리케이션, ara::diag::TimeBased, ara::diag::Monitor 및 Diagnostic Management 간의 상호작용. 출처: [SWS_DM_00539], [SWS_DM_00550], [SWS_DM_00015]

수명 주기

동적 리소스가 없는 단순 데이터 컨테이너로서 ara::diag::TimeBased은 단순한 라이프사이클을 갖습니다[SWS_DM_00539]. 이 구조체는 일반적으로 애플리케이션에 의해 스택이나 정적 메모리 영역에 로컬로 생성되고, 목표 시간으로 초기화되며, 값으로 ara::diag::Monitor의 생성자에 전달됩니다[SWS_DM_00550](AUTOSAR_AP_SWS_Diagnostics §8.40.1.1.2.3 “Monitor”).

해석: 값으로 전달되므로 매개변수는 모니터 생성 시 복사되며, 따라서 원래의 TimeBased 객체는 생성자 호출 완료 후 안전하게 폐기될 수 있습니다. 질문 (열림) DM은 이 시점부터 디바운스 타이머의 동적 상태를 독립적으로 관리하며 시스템 시작 시 해당 값을 0으로 초기화합니다[SWS_DM_00085]. TimeBased에는 내부 동기화 메커니즘이 없으므로 공유 인스턴스에 대한 동시 쓰기 액세스는 애플리케이션 측에서 배제되어야 합니다.

사용 경로

일반적인 사용은 다음과 같은 단계로 나뉩니다:

  1. 매개변수화 및 초기화: 애플리케이션은 ara::diag::TimeBased을 인스턴스화하고, failedMs [SWS_DM_00629] 및 passedMs [SWS_DM_00630]을 설정하며, 구조체를 ara::diag::Monitor의 생성자에 전달합니다[SWS_DM_00550].
  2. 타이머 초기화: DM이 디바운싱 서비스를 시작하고 이벤트 내부 타이머를 값 0으로 초기화합니다[SWS_DM_00085].
  3. 사전 검사 결과 보고: 모니터가 결함 없는 조건을 감지하면 kPrepassed과 함께 ReportMonitorAction을 호출합니다. DM은 복구 상태 방향으로 타이머를 시작하고[SWS_DM_00878] 오류 감지 카운터(Fault Detection Counter, FDC)를 지속적으로 업데이트합니다[SWS_DM_00030].
  4. 한정: 타이머가 임계값 passedMs에 도달하면 DM은 이벤트를 kFinallyHealed로 한정합니다[SWS_DM_00878]. 모니터가 대신 kFailed을 보고하면 타이머가 failedMs로 직접 설정되고 이벤트가 kFinallyDefective로 처리됩니다[SWS_DM_00033].
  5. 동결 및 재개: 필요한 경우 ReportMonitorAction(kFreezeDebouncing)을 통해 디바운싱을 일시 중지할 수 있으며[SWS_DM_00880], 새로운 조치(kPrepassed 또는 kPrefailed) 시 동결된 카운터 상태부터 다시 재개할 수 있습니다[SWS_DM_00038].
시간 기반 디바운싱 흐름애플리케이션MonitorDMMonitor(specifier, notifier, timeBased)Aktivierung Entprellung & Timer-Init (0)ReportMonitorAction(kPrepassed)Start Timer Richtung kFinallyHealedTimer erreicht passedMsEvent als kFinallyHealed qualifiziertoptDebounce einfrierenReportMonitorAction(kFreezeDebouncing)Timer einfrierenReportMonitorAction(kPrepassed)고정된 상태에서 타이머 재개optDirekter FehlerReportMonitorAction(kFailed)타이머를 failedMs로 설정 및 kFinallyDefective

시퀀스 다이어그램: 시간 기반 디바운싱 중 애플리케이션, 모니터 및 DM 간의 상호작용. 출처: [SWS_DM_00550], [SWS_DM_00085], [SWS_DM_00878], [SWS_DM_00033], [SWS_DM_00880], [SWS_DM_00038]

오류 시나리오

시간 기반 디바운싱을 사용할 때 다음과 같은 기능적 사전 조건 및 사후 조건이 적용됩니다:

  • 조건부 타이머 시작: kPrepassed 보고 시, DM은 타이머가 아직 해당 방향으로 실행되고 있지 않고 이벤트가 아직 복구된 것으로 간주되지 않는 경우에만 kFinallyHealed 방향으로 타이머를 시작합니다[SWS_DM_00878].
  • 단축된 오류 한정: kFailed 또는 kPassed이 직접 보고되면 DM은 디바운스 타이머를 각 임계값으로 즉시 설정하고 대기 시간 없이 분류를 완료합니다[SWS_DM_00033], [SWS_DM_00036].
  • 동결의 독점성: kFreezeDebouncing 조치는 DM에 의해 시간 기반 디바운싱이 적용된 이벤트에 대해서만 독점적으로 지원됩니다[SWS_DM_00880].
  • 카운터 미지속: 리셋 및 시동 주기 전반에 걸친 디바운스 카운터 값의 저장(debounceCounterStorage)은 시간 기반 디바운스에 제공되지 않으며 AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 “Time-based debouncing”; 타이머는 시동마다 0으로 재설정됩니다 [SWS_DM_00085].

이 가이드는 AUTOSAR Adaptive Platform R25-11 사양을 기반으로 하며 ara::diag::TimeBased 구조체에 대한 요구사항을 요약합니다.

UML 클래스 다이어그램

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

G nara__diag__TimeBased382 «struct» TimeBased + failedMs + passedMs

상수

failedMs 변수

time until failed in (ms)

std::uint32_t failedMs;
passedMs 변수

time until passed in (ms)

std::uint32_t passedMs;

상수 / 변수 문서

변수 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#4228b3b3
Content hash
4228b3b3
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

변수 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#7fe59e65
Content hash
7fe59e65
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