Vertegenwoordigt de bitgecodeerde statusbyte van een diagnose-event en biedt typeveilige controlemethoden voor statusbits.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c0a8a1df20deHerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Vertegenwoordigt de bitgecodeerde statusbyte van een diagnose-event en biedt typeveilige controlemethoden voor statusbits.
De structuur ara::diag::EventStatusByte kapselt de bitgecodeerde statusbyte van een individuele diagnosegebeurtenis binnen het Adaptive Platform in [SWS_DM_00644]. Ze stelt methoden beschikbaar voor het typeveilig opvragen van ingestelde of niet-ingestelde statusbits evenals samengestelde testtoestanden [SWS_DM_01755]. Omdat de berekening steeds de specifieke gebeurtenis afbeeldt, blijft deze onaangetast door bovenliggende DTC-gebeurteniscombinaties. Als lichtgewicht waardeobject zijn alle leestoegangen uitzonderingsveilig en gelijktijdig leesbaar, terwijl wijzigende toekenningen extern moeten worden gesynchroniseerd.
Context
De structuur ara::diag::EventStatusByte kapselt de bitgecodeerde statusbyte van een diagnosegebeurtenis in het foutgeheugen van het AUTOSAR Adaptive-diagnosebeheer in [SWS_DM_00644]. Volgens de specificatie vertegenwoordigt het EventStatusByte steeds exact de toestand van het toegewezen individuele event en wordt deze bij de berekening niet beïnvloed door een eventuele gebeurteniscombinatie (Event Combination) (AUTOSAR_AP_SWS_Diagnostics p. 234). Tot de interactiepartners behoort primair de Diagnostic Management Core (DM), die bij statusactualiseringen van gebeurtenissen de UDS-DTC-status bepaalt [SWS_DM_01109] en via geconfigureerde callbacks informeert [SWS_DM_01110]. Interpretatie: Via de type-alias ara::diag::EventStatusByteNotifier[SWS_DM_02118] wordt deze statuswijziging vermoedelijk gemeld aan geregistreerde toepassingsfuncties, zodat deze op toestandsveranderingen kunnen reageren. Vraag Q-8fd114acd74569ee (open)
Levenscyclus
Instanties van ara::diag::EventStatusByte zijn lichtgewicht waardeobjecten die zijn gedefinieerd in de header ara/diag/event_types.h[SWS_DM_01753]. De creatie vindt plaats door kopiëren, verplaatsen of via een variadische template constructor die een willekeurige reeks van in te stellen EventStatusBits accepteert [SWS_DM_01753]. Omdat constructors en toewijzingsoperatoren als constexpr en noexcept zijn gedeclareerd, kunnen objecten al tijdens compile-time worden geconstrueerd (AUTOSAR_AP_SWS_Diagnostics §8.47.2.1.1 “Special Member Functions”).
Wat betreft eigendom en levensduur wordt het object typisch op waarde (by-value) of via constante referentie overgedragen aan notifiers. De move constructor [SWS_DM_01751] en de copy constructor [SWS_DM_01752] garanderen uitzonderings- en thread-safety. Daarentegen zijn de copy assignment operator [SWS_DM_01750] evenals de move assignment operator [SWS_DM_01749] in de specificatie expliciet geclassificeerd als niet thread-safe (not thread-safe). Meerdere gelijktijdige leestoegangen tot een bestaande statusbyte zijn thread-safe mogelijk, maar wijzigende toekenningen aan een gedeelde instantie vereisen externe synchronisatie.
Gebruikspad
Een typische use-case bestaat erin een door het Diagnostic Management verzonden statusbyte te controleren op bepaalde diagnosecriteria. De klasse stelt daarvoor gespecialiseerde evaluatiemethoden beschikbaar:
Controle op fouttest: Met IsFailedAndTested() kan direct worden gecontroleerd of zowel bit kTestFailed als kTestFailedThisOperationCycle zijn ingesteld [SWS_DM_01757]. Interpretatie: Dit signaleert aan de toepassing dat de gebeurtenis in de huidige bedrijfscyclus reeds is getest en als foutief is beoordeeld. Vraag (open)
Controle op foutvrije test: De methode IsPassedAndTested() levert true op, mits noch kTestFailed noch kTestNotCompletedThisOperationCycle is ingesteld [SWS_DM_01756].
Generieke bitcontroles: Via de template IsSet(bits...) kan worden geverifieerd of alle doorgegeven statusbits zijn ingesteld [SWS_DM_01755]. Complementair daaraan controleert IsNotSet(bits...) of geen van de doorgegeven bits actief is [SWS_DM_01754].
Bij het resetten van fouten door een clearDTC-operatie schoont het Diagnostic Management alle gerelateerde gebeurtenissen op, ongeacht of er gebeurteniscombinaties zijn geconfigureerd [SWS_DM_01108]. Het volgende sequentiediagram illustreert het samenspel bij een statusactualisering en de daaropvolgende evaluatie in de toepassing.
Omdat ara::diag::EventStatusByte een elementaire datacontainer is, zijn alle elementfuncties als noexcept en volledig uitzonderingsveilig gespecificeerd ([SWS_DM_01749] tot [SWS_DM_01757]). Er worden noch C++-excepties geworpen, noch foutcodes in de vorm van ara::core::Result geretourneerd.
Foutsituaties in de toepassing ontstaan derhalve niet door API-foutcodes, maar door semantische misinterpretaties of synchronisatiefouten. Typische risico's zijn concurrerende schrijftoegangen via toewijzingsoperatoren zonder mutex-beveiliging ([SWS_DM_01749], [SWS_DM_01750]) of een foutieve aanname dat het EventStatusByte door gecombineerde DTC's wordt gewijzigd, hoewel het volgens de specificatie strikt gebonden blijft aan het individuele event (AUTOSAR_AP_SWS_Diagnostics p. 234).
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive R25-11 en vat de eigenschappen van de klasse samen conform het document AUTOSAR_AP_SWS_Diagnostics.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel