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

Руководство пользователяСОЗДАНО ИИ

Определяет временные границы для устранения дребезга диагностических событий по времени при инициализации монитора.
СОЗДАНО ИИ не проверено Модель: 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 определяет параметры конфигурации для устранения дребезга диагностических событий по времени (time-based debouncing) в Diagnostic Management в AUTOSAR Adaptive Platform [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 запускает службу устранения дребезга и инициализирует внутренний таймер события нулевым значением [SWS_DM_00085].
  3. Передача предварительных результатов проверки: если монитор обнаруживает состояние без ошибок, он вызывает ReportMonitorAction с kPrepassed. 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»; таймер сбрасывается в ноль при каждом запуске [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#fc1d60a6
Content hash
fc1d60a6
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#f87b0ee1
Content hash
f87b0ee1
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