Definieert de tijdgrenzen voor de tijdgebaseerde ontdendering van diagnosegebeurtenissen bij de monitorinitialisatie.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: beb974918ec8HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Definieert de tijdgrenzen voor de tijdgebaseerde ontdendering van diagnosegebeurtenissen bij de monitorinitialisatie.
De datastructuur ara::diag::TimeBased dient voor de configuratie van de tijdgebaseerde ontdendering voor diagnosegebeurtenissen [SWS_DM_00539]. Deze geeft aan de constructor van ara::diag::Monitor de drempelwaarden in milliseconden door, waarna bij het verstrijken ervan een gebeurtenis als hersteld of defect wordt geclassificeerd. Diagnostic Management start en bestuurt de interne ontdendertimer aan de hand van deze drempels bij binnenkomende statusmeldingen. Een persistente opslag van de interne tellerwaarde over herstarts heen wordt voor tijdgebaseerde ontdenderingsmethoden niet ondersteund AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 “Time-based debouncing”.
Context
De C++-structuur ara::diag::TimeBased definieert de configuratieparameters voor de tijdgebaseerde ontdendering (time-based debouncing) van diagnosegebeurtenissen in het Diagnostic Management van het AUTOSAR Adaptive Platform [SWS_DM_00539]. Deze omsluit de twee tijdsduren in milliseconden die bepalend zijn voor de statusovergangen van een diagnosegebeurtenis: failedMs als foutdrempel [SWS_DM_00629] en passedMs als hersteldrempel [SWS_DM_00630].
In het totale systeem verbindt de structuur drie essentiële componenten: de diagnosticerende applicatiefunctie, de klasse ara::diag::Monitor en Diagnostic Management (DM) [SWS_DM_00550]. De applicatie instantieert de structuur voor het vastleggen van gebeurtenisspecifieke ontdendertijden en geeft deze door aan de constructor van de diagnosemonitor [SWS_DM_00550]. De DM activeert vervolgens het tijdgebaseerde ontdenderingsalgoritme voor deze gebeurtenis [SWS_DM_00015] en berekent op basis van de interne timer en de geconfigureerde drempelwaarden de gebeurtenisstatusbit kTestFailedAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 “Time-based debouncing”.
Als eenvoudige datacontainer zonder dynamische resources heeft ara::diag::TimeBased een ongecompliceerde levenscyclus [SWS_DM_00539]. De structuur wordt gewoonlijk lokaal op de stack of in het statische geheugenbereik door de applicatie aangemaakt, met de doeltijden geïnitialiseerd en als waarde aan de constructor van ara::diag::Monitor doorgegeven [SWS_DM_00550] (AUTOSAR_AP_SWS_Diagnostics §8.40.1.1.2.3 “Monitor”).
Interpretatie: Door doorgifte op waarde worden de parameters bij het aanmaken van de monitor gekopieerd, zodat het oorspronkelijke TimeBased-object na voltooiing van de constructor-aanroep veilig kan worden verworpen. Vraag (open) De DM beheert de dynamische toestand van de ontdender-timer vanaf dat moment zelfstandig en initialiseert de waarde ervan bij de systeemstart op 0 [SWS_DM_00085]. Aangezien TimeBased geen interne synchronisatiemechanismen heeft, moeten gelijktijdige schrijftoegangen tot een gedeelde instantie door de toepassing worden uitgesloten.
Gebruikspad
Het typische gebruik is onderverdeeld in de volgende stappen:
Parametrisering en initialisatie: De toepassing instantieert ara::diag::TimeBased, stelt failedMs[SWS_DM_00629] en passedMs[SWS_DM_00630] in en geeft de structuur door aan de constructor van ara::diag::Monitor[SWS_DM_00550].
Timer-initialisatie: De DM start de ontdenderdienst en initialiseert de gebeurtenisinterne timer met de waarde nul [SWS_DM_00085].
Melding van voorcontrole-resultaten: Detecteert de monitor een foutvrije conditie, dan roept deze ReportMonitorAction met kPrepassed aan. De DM start de timer in de richting van de herstelde toestand [SWS_DM_00878] en werkt doorlopend de foutdetectieteller (Fault Detection Counter, FDC) [SWS_DM_00030] bij.
Kwalificatie: Bereikt de timer de drempelwaarde passedMs, dan kwalificeert de DM de gebeurtenis als kFinallyHealed[SWS_DM_00878]. Meldt de monitor in plaats daarvan kFailed, dan wordt de timer direct op failedMs gezet en de gebeurtenis als kFinallyDefective verwerkt [SWS_DM_00033].
Bevriezen en hervatten: Via ReportMonitorAction(kFreezeDebouncing) kan de ontdendering desgewenst worden onderbroken [SWS_DM_00880] en bij nieuwe acties (kPrepassed of kPrefailed) worden hervat vanaf de bevroren tellerstand [SWS_DM_00038].
Bij het gebruik van tijdsgebaseerde ontdendering gelden functionele pre- en postcondities:
Voorwaardelijke timerstart: Bij het melden van kPrepassed start de DM de timer alleen dan in de richting van kFinallyHealed wanneer deze niet al in die richting loopt en de gebeurtenis niet al als hersteld geldt [SWS_DM_00878].
Verkorte foutkwalificatie: Wordt direct kFailed of kPassed gemeld, dan stelt de DM de ontdender-timer onmiddellijk in op de betreffende drempelwaarde en voltooit de classificatie zonder wachttijd [SWS_DM_00033], [SWS_DM_00036].
Exclusiviteit van het bevriezen: De actie kFreezeDebouncing wordt door de DM uitsluitend ondersteund voor gebeurtenissen met tijdsgebaseerde ontdendering [SWS_DM_00880].
gemini-3.8-flash-low· 2026-10-13 · Duits origineel