Dient der Übermittlung und Verwaltung des Zustands einer DoIP-Aktivierungsleitung an den Diagnostic Manager.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f91d71d289e3HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient der Übermittlung und Verwaltung des Zustands einer DoIP-Aktivierungsleitung an den Diagnostic Manager.
Die Klasse ara::diag::DoIPActivationLine ermöglicht es einer Anwendung, den Zustand einer DoIP-Aktivierungsleitung bereitzustellen und Änderungen an den Diagnostic Manager zu übermitteln [SWS_DM_00830]. Nach der portbasierten Instanziierung wird der Dienst mittels Offer() aktiviert, woraufhin der DM Leitungsstatus und Netzwerk-ID abfragt und Statuswechsel über UpdateActivationLineState() entgegennimmt [SWS_DM_00834]. Als zentrale Randbedingung muss die zugehörige Netzwerkschnittstelle im Modell als aktivierungsleitungsabhängig konfiguriert sein [SWS_DM_00833].
Kontext
Die Klasse ara::diag::DoIPActivationLine repräsentiert die Schnittstelle DiagnosticDoIPActivationLineInterface gemäß [SWS_DM_00830]. Sie ermöglicht einer Adaptive Application (AA), den physikalischen oder logischen Zustand einer DoIP-Aktivierungsleitung an den Diagnostic Manager (DM) zu melden und bereitzustellen. Über diese Aktivierungsleitung steuert eine Anwendung indirekt das Aussenden von DoIP-Fahrzeug-Ankündigungsnachrichten (Vehicle Announcement Messages), wie in AUTOSAR_AP_SWS_Diagnostics, S. 107 spezifiziert, ohne den Versand explizit selbst zu triggern.
An der Interaktion sind im Wesentlichen drei Komponenten beteiligt: die implementierende Adaptive Application, die Instanz von ara::diag::DoIPActivationLine als Service-Schnittstelle sowie der Diagnostic Manager des Basissystems. Erkennt der DM über diese Schnittstelle eine Zustandsänderung der Aktivierungsleitung, benachrichtigt er abhängige Netzwerk-Schnittstellen und leitet standardisierte DoIP-Abläufe ein [SWS_DM_00816].
Eine Instanz von ara::diag::DoIPActivationLine wird über einen ara::core::InstanceSpecifier erzeugt, der auf einen PortPrototype verweist [SWS_DM_00831]. Die Klasse bildet eine eindeutige Instanz ab: Kopier- und Move-Konstruktoren sowie Kopier- und Move-Zuweisungsoperatoren sind gelöscht (=delete), wodurch ein Verschieben oder Duplizieren ausgeschlossen ist ([SWS_DM_01631], [SWS_DM_01632], [SWS_DM_01633], [SWS_DM_01634]).
Nach der Instanziierung befindet sich das Objekt im Zustand „nicht angeboten“. Durch den Aufruf von Offer() wird die Bereitstellung aktiviert, sodass der DM auf Zustandsänderungen der Aktivierungsleitung lauschen kann [SWS_DM_00836]. Mittels StopOffer() wird diese Bereitstellung wieder deaktiviert [SWS_DM_00837]. Der virtuelle Destruktor ist als Standarddestruktor deklariert und gibt die Ressourcen frei [SWS_DM_00832]. Bezüglich der Nebenläufigkeit sind der Konstruktor [SWS_DM_00831] sowie die reinen Leseabfragen GetActivationLineState()[SWS_DM_00835] und GetNetworkInterfaceId()[SWS_DM_00833] threadsicher ausgeführt, während Offer()[SWS_DM_00836], StopOffer()[SWS_DM_00837] und UpdateActivationLineState()[SWS_DM_00834] nicht threadsicher sind.
Nutzungspfad
Der reguläre Ablauf umfasst die Ableitung und Registrierung einer anwendungsspezifischen Klasse sowie die kontinuierliche Zustandsübermittlung:
Instanziierung: Die Adaptive Application instanziiert die abgeleitete Klasse unter Angabe des passenden InstanceSpecifier[SWS_DM_00831].
Dienst anbieten: Die Anwendung ruft Offer() auf, um die Schnittstelle für den DM freizugeben [SWS_DM_00836].
Netzwerk- und Initialabfrage: Der DM ermittelt über die pure-virtual-Methode GetNetworkInterfaceId() die zugehörige Interface-ID [SWS_DM_00833] und fragt mit GetActivationLineState() den aktuellen Leitungszustand ab [SWS_DM_00835]. Beide Methoden liefern ein ara::core::Future zurück.
Zustandsaktualisierung: Ändert sich der physikalische Zustand der Leitung (z. B. Pegelwechsel an einer Hardware-Leitung), informiert die Anwendung den DM synchron über UpdateActivationLineState()[SWS_DM_00834]. Dies veranlasst den DM zu Folgeaktionen wie Zustandsmeldungen an Netzwerk-Interfaces [SWS_DM_00816].
Beendigung: Vor dem Herunterfahren oder bei Deaktivierung ruft die Anwendung StopOffer() auf [SWS_DM_00837].
Beim Einsatz von ara::diag::DoIPActivationLine können funktionale und konfigurationsseitige Fehler auftreten:
Modell- und Portverletzungen bei Erzeugung: Der Konstruktor prüft die Gültigkeit des InstanceSpecifier[SWS_DM_00831]. Schlägt die Auflösung fehl, werden standardisierte Verletzungsmeldungen ausgelöst: InstanceSpecifierMappingIntegrityViolation (ungültiges Modellelement), PortInterfaceMappingViolation (Port nicht durch DiagnosticDoIPActivationLineInterface typisiert), ProcessMappingViolation (fehlender Prozessbezug) oder InstanceSpecifierAlreadyInUseViolation (Specifier innerhalb des Prozesses bereits vergeben).
Mehrfachanbieten: Wird Offer() aufgerufen, während der Dienst bereits angeboten wird, schlägt die Operation mit dem Fehlercode DiagOfferErrc::kAlreadyOffered fehl [SWS_DM_00836].
Konfigurationsinkonsistenz der Netzwerkschnittstelle: Meldet die Anwendung über GetNetworkInterfaceId() eine Interface-ID, deren zugehörige DoIpNetworkConfiguration die Eigenschaft isActivationLineDependent = 'FALSE' besitzt, gilt dies laut Spezifikation explizit als schwerwiegender Konfigurationsfehler [SWS_DM_00833].
Ausnahmesicherheit: Während der Konstruktor, die Getter, Offer(), StopOffer() und der Destruktor als ausnahmesicher (exception safe) spezifiziert sind, ist UpdateActivationLineState() explizit als nicht ausnahmesicher (not exception safe) ausgewiesen [SWS_DM_00834]. Fehler innerhalb dieses Aufrufs müssen von der aufrufenden Anwendung daher sorgfältig behandelt werden.
Dieser Leitfaden basiert ausschließlich auf den Spezifikationsvorgaben aus AUTOSAR AP 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 DiagnosticDoIpActivationLinePortMapping needs to be typed by a DiagnosticDoIPActivationLineInterface. 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.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDoIPActivationLineInterface
Request a governed re-review of this record. The record is not changed immediately.
network interface id for which this activation line is responsible.
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Hinweise: If the reported DoIpNetworkConfiguration.networkInterfaceId belongs to a DoIpNetworkConfiguration with property isActivationLineDependent = ’FALSE’, this is an error!
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to listen to activation line state changes.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3534ff4305bfHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Methode Offer der Klasse ara::diag::DoIPActivationLine ([SWS_DM_00836], Header-Datei #include "ara/diag/doip_activationline.h") versetzt das Diagnostic Management (DM) in die Lage, Statusänderungen der Aktivierungsleitung zu erfassen. Die Operation besitzt keine Übergabeparameter und meldet das Ergebnis über den Rückgabetyp ara::core::Result<void> zurück.
Sobald die Schnittstelle mittels Offer bereitgestellt wurde, überwacht der DM die Aktivierungsleitung. Erkennt der DM einen Übergang auf den Zustand „active“, veranlasst er das Senden von Fahrzeugankündigungsnachrichten (Vehicle Announcement Messages) gemäß ISO 13400-2 auf den betreffenden Netzwerkschnittstellen ([SWS_DM_00816], AUTOSAR_AP_SWS_Diagnostics §[SWS_DM_00816] S. 106). Interpretation: Der Aufruf von Offer dürfte typischerweise in der Initialisierungsphase der Anwendung erfolgen, damit Statuswechsel frühzeitig erfasst werden. Frage Q-254ced2fd3a1e3d2 (offen)
Im Fehlerfall wird ein entsprechender Fehlercode im Result zurückgegeben. Falls die Methode für dieselbe Instanz wiederholt aufgerufen wird, während der Dienst bereits angeboten ist, liefert sie den Fehlercode DiagOfferErrc::kAlreadyOffered mit Rollback-Semantik ([SWS_DM_00836]).
Hinsichtlich Nebenläufigkeit ist die Methode als nicht threadsicher (not thread-safe) spezifiziert ([SWS_DM_00836]). Zeitgleiche Aufrufe auf derselben Instanz müssen daher anwendungsseitig synchronisiert werden. Durch die Deklaration als noexcept ist die Funktion vollständig exception-safe ([SWS_DM_00836]).
Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11.
This StopOffer will disable the provision of activation line state to DM.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 668b8f5f37f2HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ara::diag::DoIPActivationLine::StopOffer beendet die Bereitstellung des Zustands der DoIP-Aktivierungsleitung (Activation Line) gegenüber dem Diagnostic Management (DM) gemäß [SWS_DM_00837].
Die Funktion besitzt die Signatur void StopOffer() noexcept und wird synchron auf einer Instanz von ara::diag::DoIPActivationLine ausgeführt (AUTOSAR_AP_SWS_Diagnostics §5 „Overview“). Sie nimmt keine Parameter entgegen und liefert keinen Rückgabewert. Durch den Aufruf wird die aktive Übermittlung von Zustandsänderungen der Aktivierungslinie an den Diagnostic Manager deaktiviert.
Hinsichtlich der Fehlerbehandlung ist die Methode als exception safe spezifiziert und garantiert über noexcept, dass keine Ausnahmen geworfen werden ([SWS_DM_00837]). Da die Operation laut Spezifikation not thread-safe ist, dürfen Aufrufe auf derselben Instanz nicht ungeschützt nebenläufig aus mehreren Threads erfolgen; parallele Zugriffe erfordern zwingend eine anwendungsseitige Synchronisation.
Das Entwurfsmuster folgt der in der Adaptive-Plattform etablierten Nomenklatur für die Dienstbereitstellung (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“). Während StopOffer bei verwandten DoIP-Klassen wie ara::diag::DoIPGroupIdentification ([SWS_DM_00726]) oder ara::diag::DoIPPowerMode ([SWS_DM_00736]) das Weiterleiten eingehender DM-Anfragen deaktiviert, stoppt es hier spezifisch das Melden des Aktivierungsleitungszustands an das DM. Interpretation: Für einen konsistenten Betriebsablauf dürfte vorausgesetzt sein, dass vor dem Aufruf von StopOffer bereits eine Bereitstellung über dieselbe Instanz aktiv initiiert wurde. Frage Q-c5d38151ef8198e7 (offen)
Dieser Nutzungshinweis wurde von einer KI basierend auf der Spezifikation AUTOSAR R25-11 generiert.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: becd58166c09HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode UpdateActivationLineState der Klasse ara::diag::DoIPActivationLine dient dazu, den aktuellen Status der DoIP-Aktivierungsleitung an das adaptive Diagnose-Management zu übermitteln [SWS_DM_00834] (AUTOSAR_AP_SWS_Diagnostics §8.32.1.1.3.5). Die Deklaration wird über die Header-Datei ara/diag/doip_activationline.h bereitgestellt.
Verwendung und Parameter:
Parameter: Der boolesche Übergabeparameter activation_line_state signalisiert dem System, ob die Aktivierungsleitung aktiv (TRUE) oder inaktiv (FALSE) ist [SWS_DM_00834].
Rückgabewert: Die Operation besitzt keinen Rückgabewert (void) und arbeitet synchron.
Nebenläufigkeit und Einschränkungen:
Thread-Sicherheit: Die Funktion ist explizit als not thread-safe spezifiziert [SWS_DM_00834]. Interpretation: Aufrufe an derselben Instanz von DoIPActivationLine müssen durch die aufrufende Anwendung synchronisiert werden, um Datenkonflikte zu vermeiden. Frage Q-d1c43b8ffc4bdcff (offen)
Fehlerbehandlung: Die Methode ist als not exception safe deklariert [SWS_DM_00834]. Spezifische Fehlercodes oder Ausnahmen sind nicht definiert; die aufrufende Applikation dürfte im Regelfall keine Ausnahmen abfangen können. Frage Q-394304b9d771cf69 (offen)
Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.
gemini-3.8-flash-medium· 2026-10-13