Repräsentiert das bitkodierte Statusbyte eines Diagnose-Events und bietet typsichere Prüfmethoden für Statusbits.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c0a8a1df20deHerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Repräsentiert das bitkodierte Statusbyte eines Diagnose-Events und bietet typsichere Prüfmethoden für Statusbits.
Die Struktur ara::diag::EventStatusByte kapselt das bitkodierte Statusbyte eines einzelnen Diagnose-Ereignisses innerhalb der Adaptive Platform [SWS_DM_00644]. Sie stellt Methoden zur typsicheren Abfrage gesetzter oder ungesetzter Statusbits sowie zusammengesetzter Prüfzustände bereit [SWS_DM_01755]. Da die Berechnung stets das spezifische Ereignis abbildet, bleibt sie von übergeordneten DTC-Ereigniskombinationen unberührt. Als leichtgewichtiges Wertobjekt sind alle lesenden Zugriffe ausnahmesicher und nebenläufig lesbar, während verändernde Zuweisungen extern synchronisiert werden müssen.
Kontext
Die Struktur ara::diag::EventStatusByte kapselt das bitkodierte Statusbyte eines Diagnose-Ereignisses im Fehlerspeicher des AUTOSAR-Adaptive-Diagnosemanagements [SWS_DM_00644]. Gemäß der Spezifikation repräsentiert das EventStatusByte stets präzise den Zustand des zugeordneten Einzel-Events und wird durch eine eventuelle Ereigniskombination (Event Combination) bei der Berechnung nicht beeinflusst (AUTOSAR_AP_SWS_Diagnostics S. 234). Zu den Interaktionspartnern gehört primär der Diagnostic Management Core (DM), der bei Statusaktualisierungen von Ereignissen den UDS-DTC-Status ermittelt [SWS_DM_01109] und über konfigurierte Callbacks informiert [SWS_DM_01110]. Interpretation: Über den Typalias ara::diag::EventStatusByteNotifier[SWS_DM_02118] dürfte dieser Statuswechsel registrierten Anwendungsfunktionen gemeldet werden, damit diese auf Zustandsänderungen reagieren können. Frage Q-8fd114acd74569ee (offen)
Lebenszyklus
Instanzen von ara::diag::EventStatusByte sind leichtgewichtige Wertobjekte, die im Header ara/diag/event_types.h definiert sind [SWS_DM_01753]. Die Erzeugung erfolgt entweder durch Kopieren, Verschieben oder über einen variadischen Template-Konstruktor, der eine beliebige Menge von zu setzenden EventStatusBits entgegennimmt [SWS_DM_01753]. Da Konstruktoren und Zuweisungsoperatoren als constexpr und noexcept deklariert sind, können Objekte bereits zur Übersetzungszeit konstruiert werden (AUTOSAR_AP_SWS_Diagnostics §8.47.2.1.1 „Special Member Functions“).
Hinsichtlich Besitz und Lebensdauer wird das Objekt typischerweise per Wert (by-value) oder konstanter Referenz an Notifier übergeben. Der Move-Konstruktor [SWS_DM_01751] und der Copy-Konstruktor [SWS_DM_01752] garantieren Ausnahme- und Thread-Sicherheit. Im Gegensatz dazu sind der Copy-Zuweisungsoperator [SWS_DM_01750] sowie der Move-Zuweisungsoperator [SWS_DM_01749] in der Spezifikation explizit als nicht thread-sicher (not thread-safe) klassifiziert. Mehrere nebenläufige Lesezugriffe auf ein bestehendes Statusbyte sind thread-sicher möglich, verändernde Zuweisungen an eine geteilte Instanz erfordern jedoch externe Synchronisation.
Nutzungspfad
Ein typischer Anwendungsfall besteht darin, ein vom Diagnostic Management übermitteltes Statusbyte auf bestimmte Diagnosekriterien hin zu überprüfen. Die Klasse stellt dafür spezialisierte Auswertemethoden bereit:
Prüfung auf Fehlertest: Mit IsFailedAndTested() lässt sich direkt prüfen, ob sowohl das Bit kTestFailed als auch kTestFailedThisOperationCycle gesetzt sind [SWS_DM_01757]. Interpretation: Dies signalisiert der Anwendung, dass das Ereignis im aktuellen Betriebszyklus bereits getestet und als fehlerhaft bewertet wurde. Frage (offen)
Prüfung auf fehlerfreien Test: Die Methode IsPassedAndTested() liefert true, sofern weder kTestFailed noch kTestNotCompletedThisOperationCycle gesetzt sind [SWS_DM_01756].
Generische Bitprüfungen: Über das Template IsSet(bits...) kann verifiziert werden, ob alle übergebenen Statusbits gesetzt sind [SWS_DM_01755]. Komplementär dazu prüft IsNotSet(bits...), ob keines der übergebenen Bits aktiv ist [SWS_DM_01754].
Beim Zurücksetzen von Fehlern durch eine clearDTC-Operation bereinigt das Diagnostic Management alle bezogenen Ereignisse unabhängig davon, ob Ereigniskombinationen konfiguriert sind [SWS_DM_01108]. Das folgende Sequenzdiagramm veranschaulicht das Zusammenspiel bei einer Statusaktualisierung und der anschließenden Auswertung in der Anwendung.
Da ara::diag::EventStatusByte ein elementarer Datenbehälter ist, sind sämtliche Elementfunktionen als noexcept und vollständig ausnahmesicher spezifiziert ([SWS_DM_01749] bis [SWS_DM_01757]). Es werden weder C++-Exceptions ausgelöst noch Fehlercodes in Form von ara::core::Result zurückgegeben.
Fehlersituationen in der Anwendung entstehen somit nicht durch API-Fehlercodes, sondern durch semantische Fehlinterpretationen oder Synchronisationsfehler. Typische Risiken sind konkurrierende Schreibzugriffe über Zuweisungsoperatoren ohne Mutex-Schutz ([SWS_DM_01749], [SWS_DM_01750]) oder eine fälschliche Annahme, dass das EventStatusByte durch kombinierte DTCs modifiziert werde, obwohl es laut Spezifikation strikt an das Einzelevent gebunden bleibt (AUTOSAR_AP_SWS_Diagnostics S. 234).
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11 und fasst die Eigenschaften der Klasse gemäß dem Dokument AUTOSAR_AP_SWS_Diagnostics zusammen.
gemini-3.8-flash-medium· 2026-10-13