Dient der Ausführung von Diagnoseüberwachungen und der Statusmeldung an das Diagnostic Management.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 49f63d89472dHerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient der Ausführung von Diagnoseüberwachungen und der Statusmeldung an das Diagnostic Management.
Die Klasse ara::diag::Monitor stellt die funktionale Schnittstelle zur Implementierung von Diagnose-Überwachungsfunktionen und deren Anbindung an das Diagnostic Management bereit [SWS_DM_00548]. Nach der Bindung an einen Port-Prototyp signalisiert die Anwendung über Offer() ihre Empfangsbereitschaft und übermittelt Testergebnisse fortlaufend über ReportMonitorAction()[SWS_DM_01088], [SWS_DM_00543]. Monitor-Instanzen sind weder kopier- noch verschiebbar und sämtliche Operationen sind als nicht threadsicher spezifiziert [SWS_DM_01685].
Kontext
Die Klasse ara::diag::Monitor stellt die standardisierte C++-Schnittstelle zur Realisierung von Diagnose-Überwachungsfunktionen (Monitoren) innerhalb der Adaptive Platform dar [SWS_DM_00548]. Ein Monitor ist für die Erkennung und Meldung von Fehlersymptomen in funktionalen Software-Komponenten verantwortlich und übermittelt deren Zustände an das Modul Diagnostic Management (DM).
Die Bindung an das AUTOSAR-Systemmodell erfolgt über einen ara::core::InstanceSpecifier, welcher zwingend auf einen durch ein DiagnosticMonitorInterface typisierten PortPrototype verweisen muss [SWS_DM_00548]. An der Gesamtabwicklung sind im Wesentlichen drei Komponenten beteiligt: die anwendungsspezifische Funktionsüberwachung (Application), die lokale Schnittstelleninstanz von ara::diag::Monitor sowie das Plattform-Modul Diagnostic Management (DM), welches Ereignisse entgegennimmt und Reinitialisierungen anfordert.
Die Instanziierung eines Monitors richtet sich nach dem im Modell definierten Entprellmechanismus (Debouncing). Die Adaptive Platform stellt hierfür vier Konstruktorvarianten bereit:
Monitor-interne Entprellung mit Registrierung eines InitMonitorNotifier-Callbacks und eines Funktionszeigers zur Abfrage des Fault Detection Counters (std::function<std::int8_t()> getFaultDetectionCounter) [SWS_DM_00548].
Zählerbasierte Entprellung unter Übergabe von Parametern des Typs CounterBased[SWS_DM_00549].
Zeitbasierte Entprellung unter Übergabe von Parametern des Typs TimeBased[SWS_DM_00550].
Direkte Überwachung ohne Entprellalgorithmus [SWS_DM_01972].
Instanzen von ara::diag::Monitor sind fest an ihren ursprünglichen Speicherort gebunden: Kopierkonstruktor [SWS_DM_01685] und Kopierzuweisungsoperator [SWS_DM_01683] sind gelöscht (delete). Gleichermaßen sind Verschiebekonstruktor [SWS_DM_01686] und Verschiebezuweisung [SWS_DM_01684] explizit gelöscht.
Nach der Erzeugung befindet sich die Instanz im Zustand Nicht angeboten (Unoffered). Erst durch den expliziten Aufruf von Offer() erklärt die Anwendung ihre Bereitschaft, Diagnose-Callouts wie initMonitor zu empfangen und zu verarbeiten [SWS_DM_01088]. Mit StopOffer() wird die Weiterleitung von Diagnoseanfragen aus dem DM wieder deaktiviert [SWS_DM_01089]. Nach dem Aufruf von StopOffer() dürfte eine spätere Wiederaufnahme des Betriebs durch einen erneuten Aufruf von Offer() vermutlich möglich sein. Frage Q-136565db34b28ae6 (offen) Vor der finalen Zerstörung des Monitor-Objekts dürfte die Anwendung vermutlich StopOffer() ausführen müssen, um ausstehende Benachrichtigungen sicher zu unterbinden.
Zustandsdiagramm: Lebenszyklus-Zustände und Übergänge bei der Dienstbereitstellung von ara::diag::Monitor. Quellen: [SWS_DM_01088], [SWS_DM_01089]
Nutzungspfad
Der reguläre Ablauf zur Überwachung eines Fehlerpfads umfasst folgende Schritte:
Instanziierung: Die Anwendung erzeugt die Monitor-Instanz unter Angabe des InstanceSpecifier, des Callbacks initMonitor sowie eventuell benötigter Entprellparameter oder des FDC-Callbacks [SWS_DM_00548], [SWS_DM_00549].
Dienstangebot: Über Offer() meldet sich der Monitor beim DM als empfangsbereit an [SWS_DM_01088].
Initialisierung: Das Diagnostic Management informiert die Anwendung über das registrierte InitMonitorNotifier-Callback über anstehende Initialisierungsereignisse [SWS_DM_01088].
Zyklische/Ereignisbasierte Meldung: Während des operativen Betriebs meldet die Anwendung fortlaufend den Status des Überwachungspfads via ReportMonitorAction(action)[SWS_DM_00543]. Die übergebene Aktion enthält entweder Testergebnisse (qualifiziert/unqualifiziert) oder Befehle zur Entprellsteuerung bzw. Vorspeicherung (Prestorage). Wurde monitor-internes Debouncing konfiguriert, fragt das DM über den registrierten Callback bei Bedarf den Fehlereingrenzungswert ab [SWS_DM_00548].
Dienstbeendigung: Vor dem Herunterfahren oder bei Deaktivierung der Diagnosefunktion ruft die Anwendung StopOffer() auf, um eingehende DM-Nachrichten zu unterbinden [SWS_DM_01089].
Fehlersituationen manifestieren sich bei ara::diag::Monitor auf zwei unterschiedlichen Ebenen: als Fehlercode über ara::core::Result oder als Laufzeitverletzungen (Violations) des Frameworks.
Die Methode Offer() gibt ein ara::core::Result<void> zurück. Befindet sich der Monitor bereits im angebotenen Zustand, schlägt der Aufruf fehl und liefert den Fehlercode DiagOfferErrc::kAlreadyOffered[SWS_DM_01088].
Schwerwiegende Konfigurations- oder Aufruffehler lösen definierte Verletzungsmeldungen aus:
InstanceSpecifierMappingIntegrityViolation: Der InstanceSpecifier kann im Modellkontext des Prozesses nicht aufgelöst werden oder verweist nicht auf einen PortPrototype[SWS_DM_00548].
PortInterfaceMappingViolation: Der referenzierte Port ist nicht durch ein DiagnosticMonitorInterface typisiert [SWS_DM_00548].
ProcessMappingViolation: Es existiert kein passender modellierter Prozess zur Laufzeitinstanz [SWS_DM_00548].
InstanceSpecifierAlreadyInUseViolation: Der InstanceSpecifier wird innerhalb des aktuellen Prozesses bereits von einem anderen Monitor verwendet [SWS_DM_00548].
InvalidDebouncingAlgorithmViolation: Der im Konstruktor gewählte Entprellmechanismus weicht von der in den DEXT-Diagnosebeschreibungen modellierten Entprellmethode ab [SWS_DM_00548], [SWS_DM_00549], [SWS_DM_00550].
UnexpectedMonitorActionHandlingViolation: Der Methode ReportMonitorAction() wird ein Aktionswert übergeben, der für den konfigurierten Entprellalgorithmus nicht unterstützt wird [SWS_DM_00543].
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
getFaultDetectionCounter
Possibility to register a function to get the current FDC for this event.
Request a governed re-review of this record. The record is not changed immediately.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceCounterBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for CounterBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceTimeBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for TimeBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
Request a governed re-review of this record. The record is not changed immediately.
With the Offer the application states that it is ready to receive and process initMonitor callouts.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 2e8d03769af8Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Mit dem Aufruf der Methode Offer signalisiert eine Adaptive Application gegenüber dem Diagnostic Management (DM), dass sie zur Entgegennahme und Verarbeitung von initMonitor-Callouts bereit ist [SWS_DM_01088]. Die Methode der Klasse ara::diag::Monitor besitzt keine Parameter und liefert ara::core::Result<void> zurück [SWS_DM_01088]. Obwohl der Name in Anlehnung an ara::com gewählt wurde, handelt es sich um eine spezifische Implementierung der Diagnosekomponente und darf nicht mit Kommunikationsdiensten verwechselt werden AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“.
Im Fehlerfall gibt die Methode den Fehlercode DiagOfferErrc::kAlreadyOffered zurück, falls der Dienst bereits zuvor angeboten wurde [SWS_DM_01088]. Dies entspricht dem Enumerator zur Meldung bereits aktiver Angebote innerhalb der Diagnose-Fehlerdomänen [SWS_DM_00514]. Bei erfolgreichem Aufruf enthält das Rückgabeobjekt keinen Fehler.
Bezüglich der Nebenläufigkeit ist die Methode als not thread-safe spezifiziert, wodurch parallele Aufrufe auf derselben Instanz anwendungsseitig synchronisiert werden müssen [SWS_DM_01088]. Zudem ist die Funktion als ausnahmesicher (exception safe) und mit noexcept deklariert [SWS_DM_01088].
Function to report the status information being relevant for error monitoring paths.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8334da733b55Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Methode ReportMonitorAction der Klasse ara::diag::Monitor meldet Status- und Überwachungsinformationen einer Diagnoseprüfung an das Fehlermonitoring des Diagnostic Management Daemons [SWS_DM_00543]. Über den Parameter action vom Typ MonitorAction übergibt die Anwendung entweder ein qualifiziertes bzw. unqualifiziertes Testergebnis oder Steuerbefehle zur Steuerung der Entprellung sowie zur Auslösung einer Vorspeicherung (Prestorage) [SWS_DM_00543]. Die Funktion liefert keinen Rückgabewert (void) und ist als noexcept sowie ausnahmesicher deklariert [SWS_DM_00543].
Wird ReportMonitorAction mit einem Wert für action aufgerufen, der von dem konfigurierten Entprellverfahren des Diagnose-Events nicht unterstützt wird, löst der Diagnostic Manager eine Prozessverletzung aus [SWS_DM_01988]. Zudem definiert das System interne Fehlercodes im Typ DiagErrc, beispielsweise kReportIgnored für Situationen, in denen Freigabebedingungen nicht erfüllt sind [SWS_DM_00514].
Für die Integration und Nebenläufigkeit gelten folgende Randbedingungen:
Thread-Sicherheit: Die Funktion ist nicht threadsicher (not thread-safe) [SWS_DM_00543]. Parallele Aufrufe auf derselben Monitor-Instanz müssen aufruferseitig synchronisiert werden (im Unterschied zu MultipleMonitor, wo die Threadsicherheit über den Konstruktor konfigurierbar ist [SWS_DM_01698]).
Freigabebedingungen: Ist eine dem Diagnose-Event zugeordnete Enable Condition nicht erfüllt, wird der Aufruf von ReportMonitorAction ignoriert SWS Diagnostics §7.3.4.1.4 „EnableConditions“.
Entprellung: Gemeldete Aktionen wie kPrefailed verändern den internen Entprellzähler gemäß konfigurierter Schrittweite [SWS_DM_00875], bis bei Erreichen des Schwellenwerts der Fehler als kFinallyDefective eingestuft wird [SWS_DM_00024].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR AP R25-11 erstellt.
UnexpectedMoni- ara::diag::Monitor::ReportMonitorAction is called with torActionHan- a parameter action value that is not supported by the used dlingViolation debouncing method.
Parameter (in)
Parameter
Beschreibung
action
Contains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e17ef3becf1dHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ara::diag::Monitor::StopOffer deaktiviert die Weiterleitung von Anfragen und Nachrichten aus dem Diagnostic Management (DM) an die betreffende Monitor-Instanz ([SWS_DM_01089]). Der Aufruf wird synchron ausgeführt, erfordert keine Übergabeparameter und besitzt keinen Rückgabewert ([SWS_DM_01089]). Die Operation dient als Gegenstück zu Offer und gestattet einer Adaptive Application, die aktive Überwachung auszusetzen, sofern der zugehörige Systemteil zeitweise nicht überwacht werden muss (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“). Zwar orientiert sich der Bezeichner an den Schnittstellen aus ara::com, die Spezifikation betont jedoch ausdrücklich, dass es sich um eine eigenständige Implementierung von ara::diag::Monitor handelt (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“).
Hinsichtlich der Fehlerbehandlung ist die Funktion als noexcept deklariert und gilt als ausnahmesicher (exception safe); spezifische Fehlercodes oder Fehlermeldungen existieren nicht ([SWS_DM_01089]). Als wesentliche Einschränkung ist StopOffer als nicht threadsicher (not thread-safe) klassifiziert ([SWS_DM_01089]). Interpretation: Bei nebenläufigen Zugriffen auf dasselbe Monitor-Objekt dürfte der Aufrufer selbst für eine geeignete Synchronisation zuständig sein. Frage Q-3ead3049b4378083 (offen)
Im Gesamtsystem fügt sich StopOffer in ein einheitliches Muster des Diagnosemoduls ein: Analoge Schnittstellen zum Deaktivieren der DM-Nachrichtenweiterleitung finden sich unter anderem bei GenericRoutine ([SWS_DM_00558]), CommunicationControl ([SWS_DM_00810]), EcuResetRequest ([SWS_DM_01017]) sowie Authentication ([SWS_DM_01131]).
Dieser Nutzungshinweis wurde automatisiert generiert und basiert auf den Spezifikationen von AUTOSAR Adaptive R25-11.
gemini-3.8-flash-medium· 2026-10-13