Ermöglicht die Überwachung aktiver Diagnosekanäle sowie die Kontrolle von Diagnosesitzung und Sicherheitsstufe.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1824b6dbecd2HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht die Überwachung aktiver Diagnosekanäle sowie die Kontrolle von Diagnosesitzung und Sicherheitsstufe.
Die Klasse ara::diag::Conversation repräsentiert einen Diagnosekommunikationskanal zur Überwachung von Aktivitätsstatus, Diagnosesitzung und Sicherheitsstufe sowie zum Zurücksetzen auf die Standardsitzung [SWS_DM_00692][SWS_DM_00701]. Anwendungen beziehen Instanzen ausschließlich als Referenzen über statische Suchfunktionen, da eigene Instanziierungen sowie Kopier- und Verschiebevorgänge gelöscht sind [SWS_DM_02090]. Während lesende Statusabfragen thread-safe ausgeführt werden können, erfordern Callback-Registrierungen und das Rücksetzen der Sitzung externe Synchronisation.
Kontext
Die Klasse ara::diag::Conversation repräsentiert die Schnittstelle zu einem Kommunikationskanal zwischen einem externen Diagnosetester und der Adaptive Platform SWS Diagnostics §8.2 „Conversation“. Sie dient als Bindeglied zwischen der Anwendung und dem internen Diagnostik-Management (DM), um laufende Diagnoseaktivitäten nachzuvollziehen und zu steuern. Über ihre Instanzen erhalten Adaptive Anwendungen Einblick in den aktuellen Verbindungszustand [SWS_DM_00694], die aktive Diagnosesitzung [SWS_DM_00696], die Sicherheitsstufe [SWS_DM_00698] sowie die Identifikationsmerkmale des Kanals [SWS_DM_00700].
Instanzen von ara::diag::Conversation werden vollständig durch den Diagnostic Management Daemon instanziiert und verwaltet. Ein manuelles Erzeugen, Kopieren oder Verschieben durch die Anwendung ist ausgeschlossen: Sowohl der Kopierkonstruktor [SWS_DM_02090] und Verschiebekonstruktor [SWS_DM_02092] als auch die Zuweisungsoperatoren [SWS_DM_02091][SWS_DM_02093] sind gelöscht (=delete). Die Lebensdauer der referenzierten Objekte dürfte daher unmittelbar an den Laufzeitzustand des Diagnosesubsystems gekoppelt sein. Frage Q-f8deca481d5b76e1 (offen)
Der Zugriff auf bestehende Instanzen erfolgt ausschließlich über statische Abfragefunktionen. Mit GetAllConversations() lassen sich Referenzen auf sämtliche konfigurierten Verbindungen abrufen [SWS_DM_00782], während GetCurrentActiveConversations() eine Liste aller aktuell aktiven Kanäle liefert, deren Aktivitätsstatus kActive entspricht [SWS_DM_00783]. Zudem kann über GetConversation(metaInfo) eine spezifische Verbindung anhand der Metadaten einer laufenden Diagnoseanfrage aufgelöst werden [SWS_DM_00692].
Hinsichtlich der Nebenläufigkeit sind sämtliche lesenden Zugriffe auf Status und Identifikatoren als thread-safe spezifiziert [SWS_DM_00694][SWS_DM_00696][SWS_DM_00698]. Das Registrieren von Benachrichtigungs-Callbacks sowie das Rücksetzen der Sitzung gelten hingegen als nicht thread-sicher (not thread-safe) [SWS_DM_00695][SWS_DM_00701] und erfordern anwendungsseitige Synchronisation.
Nutzungspfad
Ein typischer Anwendungsfall umfasst das Ermitteln der Verbindung, die Registrierung von Benachrichtigungsfunktionen und die gezielte Überwachung oder Manipulation des Sitzungszustands:
Referenz beschaffen: Bei einer eintreffenden Diagnoseanfrage wird die zugehörige Instanz mittels GetConversation(metaInfo) bezogen [SWS_DM_00692].
Zustandsüberwachung einrichten: Über die Registrierungsmethoden SetActivityNotifier()[SWS_DM_00695][SWS_DM_02126], SetDiagnosticSessionNotifier()[SWS_DM_00697][SWS_DM_02127] und SetSecurityLevelNotifier()[SWS_DM_00699][SWS_DM_02128] wird die Anwendung bei Änderungen benachrichtigt. Ein wiederholter Aufruf überschreibt den zuvor registrierten Callback.
Status abfragen: Der augenblickliche Zustand lässt sich synchron mit GetDiagnosticSession()[SWS_DM_00696] oder GetDiagnosticSecurityLevel()[SWS_DM_00698] ermitteln. Mittels GetDiagnosticSessionShortName()[SWS_DM_00707] und GetDiagnosticSecurityLevelShortName()[SWS_DM_00708] können die Enums in lesbare Kurzbezeichner aufgelöst werden.
Sitzung zurücksetzen: Erfordert die Logik einen Abbruch oder ein Zurückfallen in den Grundzustand, versetzt ResetToDefaultSession() den Kanal zurück in die Standardsitzung [SWS_DM_00701].
Methoden von ara::diag::Conversation signalisieren Fehler über ara::core::Result. Ist die grundlegende Funktionalität des Diagnostic Management vorübergehend nicht verfügbar, schlagen GetConversation(), GetActivityStatus(), GetDiagnosticSession(), GetDiagnosticSecurityLevel() und GetConversationIdentifier() mit dem Fehlercode DiagErrc::kServiceNotAvailable fehl [SWS_DM_00692][SWS_DM_00694][SWS_DM_00696][SWS_DM_00698][SWS_DM_00700]. Aufrufe folgen dabei der Rollback-Semantik und bleiben ohne Nebenwirkungen.
Bei den String-Konvertierungsfunktionen GetDiagnosticSessionShortName()[SWS_DM_00707] und GetDiagnosticSecurityLevelShortName()[SWS_DM_00708] führt die Übergabe eines unbekannten oder ungültigen Enumerationswerts zum Fehler DiagErrc::kInvalidArgument. Für die Notifier-Registrierungsmethoden sowie für ResetToDefaultSession() sind in der Spezifikation keine standardisierten Fehlercodes definiert [SWS_DM_00701].
Dieser Leitfaden basiert ausschließlich auf der AUTOSAR-Adaptive-Spezifikation R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
Represents the current active diagnostic SecurityLevel of an active conversation.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a38bce94acc6HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode GetDiagnosticSecurityLevel der Klasse ara::diag::Conversation dient der synchronen Ermittlung der aktuell aktiven Sicherheitsstufe einer Diagnosekonversation (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.6 „GetDiagnosticSecurityLevel“, [SWS_DM_00698]). Sie wird über den Header #include "ara/diag/conversation.h" bereitgestellt, nimmt keine Übergabeparameter entgegen und ist mit dem Spezifizierer noexcept deklariert.
Als Rückgabetyp liefert die Funktion ein ara::core::Result<SecurityLevelType>. Im Erfolgsfall enthält dieses Objekt direkt den Enum-Wert des aktuellen Sicherheitszustands der aktiven Verbindung [SWS_DM_00698].
Fehlerbehandlung und Nebenläufigkeit
Schlägt die Abfrage fehl, liefert die Methode ein ara::core::Result mit dem Fehlercode DiagErrc::kServiceNotAvailable[SWS_DM_00698]. Dies signalisiert unter Anwendung von Rollback-Semantik, dass essenzielle Funktionen des Diagnostic Management (DM) zum Aufrufzeitpunkt nicht verfügbar sind. In Bezug auf Ausführungssicherheit ist GetDiagnosticSecurityLevel als thread-safe sowie exception-safe klassifiziert [SWS_DM_00698] und erlaubt damit nebenläufige Aufrufe aus unterschiedlichen Threads.
Zusammenspiel
Interpretation: Ein Aufruf dürfte typischerweise vor der Ausführung geschützter Diagnoseaktivitäten erfolgen, um das Vorliegen der erforderlichen Berechtigungsstufe abzugleichen. Frage Q-8c056d4c5199524d (offen) Zur Weiterverarbeitung oder Diagnoseausgabe kann der ermittelte SecurityLevelType über die Methode GetDiagnosticSecurityLevelShortName (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.7 „GetDiagnosticSecurityLevelShortName“, [SWS_DM_00708]) in den zugehörigen symbolischen Kurznamen (shortName als ara::core::StringView) übersetzt werden.
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Adaptive R25-11 erstellt.
Converts the given diagnostic SecurityLevel into the ShortName.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 384b6d7f7a21HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Methode ara::diag::Conversation::GetDiagnosticSecurityLevelShortName aus dem Header ara/diag/conversation.h löst einen übergebenen Sicherheitslevel vom Typ SecurityLevelType in den Bezeichner des konfigurierten Kurznamens (DiagnosticSecurityLevel.shortName) auf [SWS_DM_00708]. Der Aufruf gibt das Ergebnis als ara::core::Result<ara::core::StringView> zurück.
Fehlerbehandlung
Im Fehlerfall liefert die Funktion den Fehlercode DiagErrc::kInvalidArgument zurück [SWS_DM_00708]. Die Instanz des Diagnostic Servers validiert den Parameterwert dabei anhand zweier Bedingungen:
Wird als Argument securityLevel der gesperrte Zustand kLocked übergeben, muss der Diagnostic Server zwingend kInvalidArgument zurückgeben [SWS_DM_01259].
Entspricht der übergebene Wert keinem konfigurierten Eintrag nach der Berechnung ((DiagnosticSecurityAccess.requestSeedId + 1) / 2) im DiagnosticContributionSet, schlägt der Aufruf ebenfalls mit kInvalidArgument fehl [SWS_DM_01260].
Nebenläufigkeit und Einschränkungen
Die Methode ist als noexcept deklariert sowie als ausnahmesicher (exception safe) und threadsicher (thread-safe) spezifiziert [SWS_DM_00708]. Aufgrund der spezifizierten Threadsicherheit dürfte der Aufruf auch bei nebenläufigen Diagnoseaktivitäten ohne anwendungsseitige Mutex-Synchronisation sicher sein. Frage Q-b851a473c2d836b7 (offen) Vor dem Zugriff auf die referenzierte Zeichenkette muss die Anwendung prüfen, ob das ara::core::Result einen Fehler enthält.
Dieser Nutzungshinweis wurde automatisiert erstellt. Alle Belege stammen aus den Spezifikationen der AUTOSAR-Adaptive-Plattform für Release R25-11.
Method to reset the current session to default session.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 040cba85c191HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ara::diag::Conversation::ResetToDefaultSession ermöglicht es einer Adaptive Application, eine Diagnosekonversation explizit in die Standard-Sitzung (Default Session) zurückzusetzen [SWS_DM_00701].
Verwendung
Der Aufruf erfolgt parameterlos an einer Instanz von ara::diag::Conversation über die Header-Datei #include "ara/diag/conversation.h"[SWS_DM_00701]. Wird die Methode aufgerufen, schließt die Instanz des Diagnostic Servers zunächst die laufende Anfrage ab und wechselt erst danach die Diagnosesitzung der Konversation in die Default Session [SWS_DM_00842].
Fehlerbehandlung und Nebenläufigkeit
Rückgabewert und Fehler: Die Funktion gibt ein ara::core::Result<void> zurück [SWS_DM_00701]. Es sind keine standardisierten Fehlercodes vorgegeben; Interpretation: Etwaige Fehler im Result dürften herstellerspezifische Probleme bei der Auftragsabwicklung durch den Diagnostic Server abbilden. Frage Q-9f780f4ef7991bf4 (offen)
Thread-Sicherheit: Die Funktion ist exceptionsicher (noexcept), aber als nicht threadsicher (not thread-safe) spezifiziert [SWS_DM_00701]. Parallele Aufrufe auf demselben Konversationsobjekt müssen daher durch die aufrufende Anwendung koordiniert werden.
Zusammenspiel
Die Methode ergänzt den informativen Charakter der Konversationsschnittstelle um eine gezielte Zustandssteuerung AUTOSAR_AP_SWS_Diagnostics §7 „Diagnostic Conversation Interface“. Sie stellt sicher, dass bestehende Diagnoseanforderungen geordnet beendet werden, bevor der Zustand der Konversation modifiziert wird [SWS_DM_00842].
Dieser Nutzungshinweis wurde automatisiert generiert und basiert ausschließlich auf den Spezifikationsdokumenten von AUTOSAR Adaptive R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 49e9828acc72HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode ara::diag::Conversation::SetActivityNotifier dient der Registrierung einer Benachrichtigungsfunktion (notifier), die immer dann aufgerufen wird, wenn sich der Aktivitätsstatus der Diagnosekonversation ändert [SWS_DM_00695]. Die Deklaration erfolgt über die Header-Datei #include "ara/diag/conversation.h" im Scope der Klasse ara::diag::ConversationAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.11 „SetActivityNotifier“. Ein erneuter bzw. aufeinanderfolgender Aufruf an derselben Instanz überschreibt den zuvor registrierten Notifier vollständig [SWS_DM_00695], [SWS_DM_01355].
Fehlerbehandlung und Nebenläufigkeit
Der Rückgabewert ist als ara::core::Result<void> typisiert und meldet den Erfolg oder einen Fehlerzustand zurück; die Schnittstelle spezifiziert jedoch keine standardisierten Fehlercodes [SWS_DM_00695]. Die Methode ist als noexcept und ausnahmesicher (exception safe) deklariert.
Hinsichtlich der Thread-Sicherheit ist die Funktion als nicht threadsicher (not thread-safe) eingestuft [SWS_DM_00695]. Erfolgt der Zugriff auf dieselbe Konversationsinstanz aus mehreren Threads, muss der Registrierungsaufruf anwendungsseitig synchronisiert werden.
Zusammenspiel im Lebenszyklus
Instanzen der Konversation werden durch den Diagnostic Server bereitgestellt, wobei die Maximalzahl paralleler Konversationen über maxConversations konfiguriert wird [SWS_DM_00840]. Wenn der Lebenszyklus einer Diagnosekonversation endet, setzt der Diagnostic Server den Aktivitätsstatus auf kInactive[SWS_DM_00843]. Dies dürfte dem registrierten Notifier das Ende der aktiven Diagnosekommunikation signalisieren. Frage Q-93c30267eb100ed7 (offen)
Dieser Text wurde durch ein KI-System generiert und redaktionell geprüft.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: b40c717f1178HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion SetDiagnosticSessionNotifier gehört zur Klasse ara::diag::Conversation und wird über die Header-Datei #include "ara/diag/conversation.h" bereitgestellt [SWS_DM_00697]. Sie ermöglicht Anwendungen, eine Notifier-Funktion zu registrieren, die bei jedem Wechsel der Diagnose-Sitzung ausgelöst wird.
Verwendung und Aufrufsemantik
Der Aufruf erfolgt synchron an einer Instanz von ara::diag::Conversation unter Übergabe des Parameters notifier vom Typ SessionControl TypeNotifier[SWS_DM_00697]. Ein aufeinanderfolgender bzw. wiederholter Methodenaufruf überschreibt den zuvor registrierten Notifier vollständig AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.12 „SetDiagnosticSessionNotifier“.
Rückgabewert und Fehlerbehandlung
Als Rückgabewert liefert die Schnittstelle ein ara::core::Result<void> zurück, welches entweder eine erfolgreiche Registrierung bestätigt oder ein Fehlerobjekt enthält [SWS_DM_00697]. Die Spezifikation definiert für diesen Aufruf keine standardisierten Fehlercodes; auftretende Fehler dürften daher auf implementierungsspezifische Validierungen zurückzuführen sein. Frage Q-1ac7eebee90e3c22 (offen)
Nebenläufigkeit und Einschränkungen
Thread-Sicherheit: Die Methode ist als nicht threadsicher (not thread-safe) spezifiziert [SWS_DM_00697]. Parallele Aufrufe für dieselbe Konversationsinstanz müssen daher anwendungsseitig synchronisiert werden.
Ausnahmesicherheit: Die Funktion ist als noexcept deklariert und gilt als ausnahmesicher (exception safe) [SWS_DM_00697].
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f0130e1f2bdeHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode ara::diag::Conversation::SetSecurityLevelNotifier dient der Registrierung einer Callback-Funktion, die benachrichtigt wird, sobald sich die Sicherheitsstufe (SecurityLevel) der Diagnosekonversation ändert [SWS_DM_00699]. Sie wird über den Header ara/diag/conversation.h deklariert AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 „SetSecurityLevelNotifier“. Als Parameter nimmt sie die aufzurufende Funktion notifier entgegen. Ein erneuter Aufruf der Methode überschreibt eine zuvor registrierte Notifier-Funktion vollständig [SWS_DM_00699].
Semantik und Rückgabewert
Die Funktion ist als noexcept definiert und als ausnahmesicher (exception safe) spezifiziert [SWS_DM_00699]. Als Rückgabetyp liefert sie ara::core::Result<void>, welches entweder keinen Wert oder einen aufgetretenen Fehler zurückgibt [SWS_DM_00699].
Fehlerbehandlung
Die Spezifikation definiert für SetSecurityLevelNotifier keine standardisierten Fehlercodes [SWS_DM_00699]. Eventuell im ara::core::Result zurückgegebene Fehler dürften daher herstellerspezifisch oder durch die zugrunde liegende Plattformlaufzeit bedingt sein. Frage Q-c8dd53e9d661cc78 (offen)
Nebenläufigkeit und Einschränkungen
Hinsichtlich der Thread-Sicherheit ist die Methode explizit als not thread-safe eingestuft [SWS_DM_00699]. Parallele Zugriffe auf dieselbe Instanz von ara::diag::Conversation müssen somit aufruferseitig synchronisiert werden. Zudem besitzt die API-Definition im vorliegenden Dokumentationsstand den Status DRAFTAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 „SetSecurityLevelNotifier“.
Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11.
gemini-3.8-flash-medium· 2026-10-13