DEENESPTFRRUARHIKOZHNL

class ara::diag::DoIPEntityIdentification

[SWS_DM_01362] Upstream: RS_Diag_00026

class DoIPEntityIdentification {...};

DoIPEntityIdentification class to obtain the EID if required.

Header-Datei#include "ara/diag/doip_entity_identification.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

User GuideKI-GENERIERT

Ermöglicht adaptiven Anwendungen die Bereitstellung der DoIP-Entity-Identifikation für das Diagnosemanagement.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 73f8b2cf1d2e Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Ermöglicht adaptiven Anwendungen die Bereitstellung der DoIP-Entity-Identifikation für das Diagnosemanagement.

Die Klasse ara::diag::DoIPEntityIdentification ermöglicht adaptiven Anwendungen die dynamische Bereitstellung der Entity-Identifikation (EID) für das DoIP-Diagnoseprotokoll [SWS_DM_01361]. Nach der Instanziierung aktiviert die Anwendung die Weiterleitung mittels Offer() und beantwortet Abfragen des Diagnostic Managements über die rein virtuelle Methode GetEntityId() asynchron mittels Future [SWS_DM_01366], [SWS_DM_01367]. Ist die Schnittstelle bei einer Abfrage noch nicht bereitgestellt, versendet das Diagnosemanagement ersatzweise einen standardisierten 0xFF-Wert [SWS_DM_01528].

Kontext

Die Klasse ara::diag::DoIPEntityIdentification dient der dynamischen Bereitstellung der Entity-Identifikation (EID) für das DoIP-Protokoll (Diagnostic over IP) [SWS_DM_01361]. In einer AUTOSAR-Adaptive-Umgebung bildet sie die funktionale Brücke zwischen einer individuellen adaptiven Anwendung und dem Diagnostic Management (DM) AUTOSAR_AP_SWS_Diagnostics, S. 107. Ist in der Konfiguration DoIpNetworkConfiguration.eidRetrieval auf den Modus DoIpEidRetrievalEnum.eidUseApi eingestellt, fordert das Diagnostic Management die EID über diese Programmierschnittstelle an [SWS_DM_01361]. Die Bindung an die Software-Architektur erfolgt über einen ara::core::InstanceSpecifier, der auf einen PortPrototype eines DiagnosticDoIPEntityIdentificationInterface verweist [SWS_DM_01364].

Lebenszyklus

Die Erzeugung erfolgt über den expliziten Konstruktor, dem neben dem InstanceSpecifier der Parameter ConcurrencyType (kConcurrent oder kNotConcurrent) übergeben wird [SWS_DM_01364]. Letzterer legt fest, ob nachfolgende Abrufe an die Schnittstelle threadsicher abgewickelt werden müssen [SWS_DM_01364], [SWS_DM_01366]. Nach der Konstruktion verbleibt das Objekt zunächst im inaktiven Zustand. Durch den Aufruf von Offer() wird die Schnittstelle für das Diagnostic Management freigeschaltet und die Weiterleitung von Anfragen an den Handler aktiviert [SWS_DM_01367]. Vor der Zerstörung des Objekts oder bei Beendigung des Betriebs unterbindet StopOffer() die Weiterleitung wieder [SWS_DM_01368]. Die Zerstörung erfolgt schließlich über den virtuellen Destruktor [SWS_DM_01365]. Weder Offer(), StopOffer() noch der Destruktor sind threadsicher und erfordern daher eine koordinierte Synchronisation im Anwendungscode [SWS_DM_01365], [SWS_DM_01367], [SWS_DM_01368].

DoIPEntityIdentificationStates NichtBereitgestellt NichtBereitgestellt Bereitgestellt Bereitgestellt NichtBereitgestellt->Bereitgestellt Offer() Bereitgestellt->NichtBereitgestellt StopOffer() Bereitgestellt->Bereitgestellt GetEntityId()

Zustandsdiagramm: Lebenszyklus und Registrierungsphasen der DoIP-Entity-Identifikation. Quellen: [SWS_DM_01364], [SWS_DM_01365], [SWS_DM_01367], [SWS_DM_01368].

Nutzungspfad

Im typischen Nutzungsszenario leitet die adaptive Anwendung eine eigene Implementierungsklasse von ara::diag::DoIPEntityIdentification ab und überschreibt die rein virtuelle Methode GetEntityId() [SWS_DM_01366]. Nach Instanziierung mit gültigem Bezeichner meldet die Anwendung den Handler mittels Offer() an [SWS_DM_01367]. Sobald das Diagnostic Management zur Zusammenstellung von DoIP-Nachrichten die Entity-ID benötigt, ruft es GetEntityId() auf [SWS_DM_01361], [SWS_DM_01366]. Die Methode liefert ein ara::core::Future<EntityId> zurück, wodurch die Identifikationsdaten asynchron ermittelt und bereitgestellt werden können [SWS_DM_01366]. Endet der Funktionsbetrieb, nimmt die Anwendung das Angebot über StopOffer() zurück [SWS_DM_01368].

Ablauf der DoIP-Entity-ID-BereitstellungAnwendungDoIPEntityIdentificationDiagnostic ManagementDoIPEntityIdentification(specifier, concurrencyType)Offer()ara::core::Result<void>Use Case: EID-Abfrage im DoIP-ProtokollGetEntityId()GetEntityId()ara::core::Future<EntityId>Use Case: DienstbeendigungStopOffer()

Sequenzdiagramm: Typische Aufrufreihenfolge zur Registrierung und Abfrage der EID durch das Diagnostic Management. Quellen: [SWS_DM_01361], [SWS_DM_01364], [SWS_DM_01366], [SWS_DM_01367], [SWS_DM_01368].

Fehlerszenarien

Fehlerhafte Modellkonfigurationen bei der Konstruktion führen zu spezifischen Laufzeitverletzungen: Kann der InstanceSpecifier im Modell nicht aufgelöst werden oder verweist nicht auf einen PortPrototype, resultiert eine InstanceSpecifierMappingIntegrityViolation [SWS_DM_01364]. Verweist das Port-Mapping nicht auf ein DiagnosticDoIPEntityIdentificationInterface, liegt eine PortInterfaceMappingViolation vor, während ein fehlender Prozessabgleich eine ProcessMappingViolation auslöst [SWS_DM_01364]. Wird derselbe Bezeichner im Prozess mehrfach verwendet, folgt eine InstanceSpecifierAlreadyInUseViolation [SWS_DM_01364].

Wird Offer() aufgerufen, wenn der Dienst bereits aktiv offeriert wird, liefert die Methode ein ara::core::Result mit dem Fehlercode DiagOfferErrc::kAlreadyOffered zurück [SWS_DM_01367]. Kann das Diagnostic Management die EID nicht abfragen – etwa weil die Schnittstelle zum Anfragezeitpunkt noch nicht offeriert wurde –, greift ein definierter Protokoll-Fallback: Das Diagnostic Management versendet in DoIP-Nachrichten ersatzweise einen 6-Byte-EID-Wert von 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF [SWS_DM_01528].

Dieser Leitfaden wurde durch einen KI-Assistenten auf Basis der AUTOSAR-Adaptive-Spezifikation R25-11 generiert.

Mitgliederkarte

Eingebettete Typen

1

Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__DoIPEntityIdentification87 DoIPEntityIdentification + ~DoIPEntityIdentification() + DoIPEntityIdentification() + GetEntityId() + Offer() + StopOffer()

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

Constructor of DoIPEntityIdentification.

explicit DoIPEntityIdentification (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Destructor of DoIPEntityIdentification.

virtual ~DoIPEntityIdentification () noexcept;

Methoden

GetEntityId function

Called to get the EID for the DoIP protocol.

virtual ara::core::Future< EntityId > GetEntityId () noexcept=0;
Offer function

This Offer will enable the DM to forward request messages to this handler.

ara::core::Result< void > Offer () noexcept;
StopOffer function

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;

Eingebettete Typen

EntityId class

Dokumentation der Methoden

function DoIPEntityIdentification [SWS_DM_01364] Upstream: RS_AP_00137, RS_Diag_00026, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

explicit DoIPEntityIdentification (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Constructor of DoIPEntityIdentification.

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Verletzungen (Violations)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 DiagnosticDoIpEntityIdentificationPortMapping needs to be typed by a DiagnosticDoIPEntityIdentificationInterface. 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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticDoIPEntityIdentificationInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent)..

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01364
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01364@rel:R25-11#8c31120d
Content hash
8c31120d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01364
Status: valid/unmigrated Version: rel:R25-11#01461b41 Versionshistorie & Revisions (1 transition, 5 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01364@rel:R25-11#01461b41
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#8c31120d2026-09-30
  • R22-11rel:R22-11#97f4f9572026-10-14
  • R23-11rel:R23-11#6285024e2026-10-14
  • R24-11rel:R24-11#bff980792026-10-14
  • R25-11rel:R25-11#01461b412026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetEntityId [SWS_DM_01366] Upstream: RS_AP_00138, RS_Diag_00026

virtual ara::core::Future< EntityId > GetEntityId () noexcept=0;

Called to get the EID for the DoIP protocol.

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Rückgabewert

TypBeschreibung
ara::core::Future< EntityId >Entity identification

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01366
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01366@rel:R25-11#0daba935
Content hash
0daba935
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01366
Status: valid/unmigrated Version: rel:R25-11#b7599708 Versionshistorie & Revisions (1 transition, 5 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01366@rel:R25-11#b7599708
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#0daba9352026-09-30
  • R22-11rel:R22-11#03ed90322026-10-14
  • R23-11rel:R23-11#dc0449c22026-10-14
  • R24-11rel:R24-11#35c811cd2026-10-14
  • R25-11rel:R25-11#b75997082026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Offer [SWS_DM_01367] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_00026

ara::core::Result< void > Offer () noexcept;

This Offer will enable the DM to forward request messages to this handler.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 60c723a50d6c Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode Offer der Klasse ara::diag::DoIPEntityIdentification schaltet die Weiterleitung eingehender DoIP-Anfragen durch den Diagnostic Management Daemon (DM) an den registrierten Handler frei ([SWS_DM_01367]). Erst nach dem erfolgreichen Aufruf werden Nachrichten an den Handler weitergereicht. Interpretation: Der Aufruf erfolgt typischerweise in der Initialisierungsphase der Adaptive Application, bevor Diagnosebotschaften empfangen werden sollen. Frage Q-4b78d4f80bda63a4 (offen)

Verwendung und Semantik:

  • Aufrufkontext: Die Operation wird synchron ausgeführt und ist als noexcept deklariert; sie wirft keine Exceptions ([SWS_DM_01367]).
  • Rückgabewert: Sie liefert ein ara::core::Result<void> zurück, welches im Erfolgsfall keinen Wert enthält ([SWS_DM_01367]).

Fehlerbehandlung:

  • Wurde die Schnittstelle für die Instanz bereits angeboten, schlägt der Aufruf fehl und liefert mit Rollback-Semantik den Fehlercode DiagOfferErrc::kAlreadyOffered ([SWS_DM_01367]).

Nebenläufigkeit und Einschränkungen:

  • Die Schnittstelle ist als not thread-safe spezifiziert ([SWS_DM_01367]). Gleichzeitige Aufrufe auf derselben Instanz müssen durch die aufrufende Anwendung synchronisiert werden.

Zusammenspiel:

Das Registrierungsmuster entspricht der Vorgehensweise anderer DoIP-Dienste wie DoIPGroupIdentification ([SWS_DM_00725]) und DoIPPowerMode ([SWS_DM_00735]) sowie generischer UDS-Handler ([SWS_DM_00619]). Die Namensgebung folgt dem aus ara::com bekannten Muster, stellt jedoch eine eigenständige Registrierung gegenüber dem DM dar (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“).

Dieser Text wurde von einer KI basierend auf der Spezifikation AUTOSAR R25-11 generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error.

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01367
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01367@rel:R25-11#bac2d0d7
Content hash
bac2d0d7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01367
Status: valid/unmigrated Version: rel:R25-11#1e1b8396 Versionshistorie & Revisions (1 transition, 5 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01367@rel:R25-11#1e1b8396
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#bac2d0d72026-09-30
  • R22-11rel:R22-11#78e265802026-10-14
  • R23-11rel:R23-11#4d70569b2026-10-14
  • R24-11rel:R24-11#2f07768f2026-10-14
  • R25-11rel:R25-11#1e1b83962026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function StopOffer [SWS_DM_01368] Upstream: RS_Diag_00026

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 2e0edce0b8e6 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Methode ara::diag::DoIPEntityIdentification::StopOffer beendet das Anbieten des Dienstes zur DoIP-Entitätsidentifikation und deaktiviert die Weiterleitung von Anfragenachrichten aus dem Diagnostic Management (DM) an die Anwendung [SWS_DM_01368]. Die Schnittstelle wird über die Header-Datei ara/diag/doip_entity_identification.h bereitgestellt. Sie nimmt keine Parameter entgegen und liefert keinen Rückgabewert (void) [SWS_DM_01368]. Interpretation: Da die Signatur weder ein Future-Objekt noch eine Benachrichtigung per Callback vorsieht, dürfte der Aufruf synchron blockierend ausgeführt werden, bis die Weiterleitung im DM beendet ist. Frage Q-75f67df3a003b08f (offen)

Fehlerbehandlung und Ausnahmesicherheit

Die Operation ist mit dem Spezifizierer noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert [SWS_DM_01368]. Es werden keine spezifischen Fehlercodes zurückgegeben und keine Ausnahmen ausgelöst.

Nebenläufigkeit und Einschränkungen

In Bezug auf die Ausführungsumgebung ist die Methode als nicht threadsicher (not thread-safe) eingestuft [SWS_DM_01368]. Erfolgen parallele Aufrufe oder Zugriffe auf dieselbe Instanz von ara::diag::DoIPEntityIdentification, müssen diese anwendungsseitig synchronisiert werden.

Zusammenspiel

Das Verhalten fügt sich in das einheitliche Lebenszyklusmuster des AUTOSAR Adaptive Diagnostic Management ein. Eine vergleichbare Deaktivierung der Nachrichtenweiterleitung erfolgt beispielsweise bei der Gruppenidentifikation über [SWS_DM_00726] sowie bei Diagnoseschaltern und Monitoren über [SWS_DM_01089]. Wie in AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“ hervorgehoben wird, orientiert sich die Namensgebung von Offer und StopOffer an den Mustern von ara::com, stellt jedoch eine eigenständige Implementierung für Diagnoseschnittstellen dar.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Adaptive R25-11 generiert.

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01368
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01368@rel:R25-11#0a104040
Content hash
0a104040
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01368
Status: valid/unmigrated Version: rel:R25-11#995f1e52 Versionshistorie & Revisions (1 transition, 5 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01368@rel:R25-11#995f1e52
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#0a1040402026-09-30
  • R22-11rel:R22-11#9e1482542026-10-14
  • R23-11rel:R23-11#de1f2b922026-10-14
  • R24-11rel:R24-11#40423c4c2026-10-14
  • R25-11rel:R25-11#995f1e522026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ~DoIPEntityIdentification [SWS_DM_01365] Upstream: RS_AP_00134, RS_Diag_00026

virtual ~DoIPEntityIdentification () noexcept;

Destructor of DoIPEntityIdentification.

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01365
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01365@rel:R25-11#0ce405e3
Content hash
0ce405e3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01365
Status: valid/unmigrated Version: rel:R25-11#dd9937e2 Versionshistorie & Revisions (1 transition, 5 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01365@rel:R25-11#dd9937e2
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#0ce405e32026-09-30
  • R22-11rel:R22-11#73c187462026-10-14
  • R23-11rel:R23-11#e45fbddd2026-10-14
  • R24-11rel:R24-11#d5ded6fa2026-10-14
  • R25-11rel:R25-11#dd9937e22026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill