Definiert die Zeitgrenzen für die zeitbasierte Entprellung von Diagnoseereignissen bei der Monitor-Initialisierung.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: beb974918ec8HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Definiert die Zeitgrenzen für die zeitbasierte Entprellung von Diagnoseereignissen bei der Monitor-Initialisierung.
Die Datenstruktur ara::diag::TimeBased dient der Konfiguration der zeitbasierten Entprellung für Diagnoseereignisse [SWS_DM_00539]. Sie übergibt dem Konstruktor von ara::diag::Monitor die Schwellwerte in Millisekunden, nach deren Ablauf ein Ereignis als geheilt oder fehlerhaft eingestuft wird. Das Diagnostic Management startet und steuert den internen Entprell-Timer anhand dieser Schwellen bei eingehenden Statusmeldungen. Eine persistente Speicherung des internen Zählerwerts über Neustarts hinweg wird für zeitbasierte Entprellverfahren nicht unterstützt AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 „Time-based debouncing“.
Kontext
Die C++-Struktur ara::diag::TimeBased definiert die Konfigurationsparameter für die zeitbasierte Entprellung (time-based debouncing) von Diagnoseereignissen im Diagnostic Management der AUTOSAR Adaptive Platform [SWS_DM_00539]. Sie kapselt die beiden Zeitdauern in Millisekunden, die für die Statusübergänge eines Diagnoseereignisses maßgeblich sind: failedMs als Fehlerschwelle [SWS_DM_00629] und passedMs als Heilungsschwelle [SWS_DM_00630].
Im Gesamtsystem verbindet die Struktur drei wesentliche Komponenten: die diagnostizierende Anwendungsfunktion, die Klasse ara::diag::Monitor sowie das Diagnostic Management (DM) [SWS_DM_00550]. Die Anwendung instanziiert die Struktur zur Festlegung ereignisspezifischer Entprellzeiten und übergibt sie an den Konstruktor des Diagnosemonitors [SWS_DM_00550]. Das DM aktiviert daraufhin den zeitbasierten Entprellalgorithmus für dieses Ereignis [SWS_DM_00015] und berechnet auf Basis des internen Timers und der konfigurierten Schwellwerte das Ereignisstatusbit kTestFailedAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 „Time-based debouncing“.
Kontextdiagramm: Zusammenspiel von Anwendung, ara::diag::TimeBased, ara::diag::Monitor und dem Diagnostic Management. Quellen: [SWS_DM_00539], [SWS_DM_00550], [SWS_DM_00015]
Lebenszyklus
Als einfacher Datenbehälter ohne dynamische Ressourcen besitzt ara::diag::TimeBased einen unkomplizierten Lebenszyklus [SWS_DM_00539]. Die Struktur wird üblicherweise lokal auf dem Stack oder im statischen Speicherbereich durch die Anwendung erzeugt, mit den Zielzeiten initialisiert und als Wert an den Konstruktor von ara::diag::Monitor übergeben [SWS_DM_00550] (AUTOSAR_AP_SWS_Diagnostics §8.40.1.1.2.3 „Monitor“).
Interpretation: Durch die Übergabe per Wert werden die Parameter bei der Monitorerzeugung kopiert, sodass das ursprüngliche TimeBased-Objekt nach Abschluss des Konstruktoraufrufs sicher verworfen werden kann. Frage (offen) Das DM verwaltet den dynamischen Zustand des Entprell-Timers ab diesem Zeitpunkt eigenständig und setzt dessen Wert beim Systemstart initial auf 0 [SWS_DM_00085]. Da TimeBased keine internen Synchronisationsmechanismen aufweist, sind nebenläufige Schreibzugriffe auf eine gemeinsame Instanz anwendungsseitig auszuschließen.
Nutzungspfad
Die typische Nutzung gliedert sich in folgende Schritte:
Parametrierung und Initialisierung: Die Anwendung instanziiert ara::diag::TimeBased, setzt failedMs[SWS_DM_00629] sowie passedMs[SWS_DM_00630] und übergibt die Struktur dem Konstruktor von ara::diag::Monitor[SWS_DM_00550].
Timer-Initialisierung: Das DM startet den Entprellungsdienst und initialisiert den ereignisinternen Timer mit dem Wert null [SWS_DM_00085].
Meldung von Vorprüfergebnissen: Erkennt der Monitor eine fehlerfreie Bedingung, ruft er ReportMonitorAction mit kPrepassed auf. Das DM startet den Timer in Richtung des Heilungszustands [SWS_DM_00878] und aktualisiert fortlaufend den Fehlertoleranzzähler (Fault Detection Counter, FDC) [SWS_DM_00030].
Qualifizierung: Erreicht der Timer die Schwelle passedMs, qualifiziert das DM das Ereignis als kFinallyHealed[SWS_DM_00878]. Meldet der Monitor stattdessen kFailed, wird der Timer direkt auf failedMs gesetzt und das Ereignis als kFinallyDefective verarbeitet [SWS_DM_00033].
Einfrieren und Fortsetzen: Über ReportMonitorAction(kFreezeDebouncing) kann die Entprellung bei Bedarf angehalten [SWS_DM_00880] und bei neuen Aktionen (kPrepassed oder kPrefailed) ab dem gefrorenen Zählerstand fortgesetzt werden [SWS_DM_00038].
Bei der Verwendung zeitbasierter Entprellung gelten funktionale Vor- und Nachbedingungen:
Bedingter Timer-Start: Bei Meldung von kPrepassed startet das DM den Timer nur dann in Richtung kFinallyHealed, wenn er nicht bereits in diese Richtung läuft und das Ereignis nicht bereits als geheilt gilt [SWS_DM_00878].
Verkürzte Fehlerqualifizierung: Wird direkt kFailed oder kPassed gemeldet, setzt das DM den Entprell-Timer unverzüglich auf den jeweiligen Schwellwert und schließt die Einstufung ohne Wartezeit ab [SWS_DM_00033], [SWS_DM_00036].
Exklusivität des Einfrierens: Die Aktion kFreezeDebouncing wird vom DM ausschließlich für Ereignisse mit zeitbasierter Entprellung unterstützt [SWS_DM_00880].
Keine Persistierung des Zählers: Eine Speicherung des Entprell-Zählerstands über Reset- und Start-up-Zyklen hinweg (debounceCounterStorage) ist für zeitbasierte Entprellungen nicht vorgesehen AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 „Time-based debouncing“; der Timer wird bei jedem Start-up auf null gesetzt [SWS_DM_00085].
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 und fasst die Anforderungen an die Struktur ara::diag::TimeBased zusammen.
UML-Klassendiagramm
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-medium· 2026-10-13