DEENESPTFRRUARHIKOZHNL

class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>

[SWS_DM_02146] Upstream: RS_Diag_04169

class <ExtendedDataRecordElementInterface> {...};

DiagnosticExtendedDataRecordInterface class

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Forwarding-Header#include "<ExtendedDataRecordElementShortname>/_fwd.h"
Scopenamespace <ExtendedDataRecord-Namespace>

User GuideKI-GENERIERT

Dient der anwendungsseitigen Bereitstellung erweiterter Diagnosedaten für das adaptive Diagnostic Management.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0446a63ad449 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient der anwendungsseitigen Bereitstellung erweiterter Diagnosedaten für das adaptive Diagnostic Management.

Die Klasse <ExtendedDataRecordElementInterface> dient adaptiven Anwendungen als Schnittstelle zur Bereitstellung erweiterter Diagnosedaten an das Diagnostic Management ([SWS_DM_02152]). Nach der Instanziierung und der Aktivierung über Offer() implementiert der Handler die asynchrone Bereitstellung der Daten über die rein virtuelle Methode Read() ([SWS_DM_02156]). Da der Diagnostic Manager die Datensätze dauerhaft im nicht-flüchtigen Speicher sichert, müssen nicht verfügbare Werte zwingend mit einem Füllmuster aufgefüllt werden. Die Schnittstelle ist weder kopier- noch verschiebbar und ihr Destruktor ist nicht threadsicher.

Kontext

Die Schnittstelle <ExtendedDataRecordElementInterface> dient im Diagnose-Subsystem der AUTOSAR Adaptive Platform zur Bereitstellung anwendungsspezifischer erweiterter Diagnosedaten (Extended Data Records) für das Diagnostic Management (DM) (AUTOSAR AP SWS Diagnostics §7.2 „DiagnosticExtendedDataRecordInterface“). Ein Extended Data Record enthält diagnosebezogene Zusatzdaten wie Zählerstände oder Umgebungsinformationen, die einem Fehlerereignis zugeordnet sind. Die Klasse fungiert als abstrakte Basisschnittstelle für anwendungsseitige Handler-Komponenten. Zu den Interaktionspartnern gehören der Diagnostic Manager (DM), der Leseoperationen anfordert und koordiniert, die konkrete Handler-Implementierung innerhalb der Applikation sowie der nicht-flüchtige Speicher (Non-Volatile Memory, NVM), in dem der DM die abgerufenen Daten dauerhaft ablegt ([SWS_DM_02156]). Interpretation: Der Aufruf von Read() wird vermutlich durch eine interne Diagnoseverarbeitung im DM veranlasst, beispielsweise beim Eintreten eines Fehlerereignisses oder bei Statusänderungen eines Diagnose-Trouble-Codes. Frage Q-f80be8c2bd5697fc (offen)

Context Handler ExtendedDataRecordElementInterface (Anwendungs-Handler) DM Diagnostic Management (DM) Handler->DM Offer() / StopOffer() DM->Handler Read(metaInfo, cancellationHandler) NVM Nicht-flüchtiger Speicher (NVM) DM->NVM Persistierung

Kontextdiagramm: Zusammenspiel von Anwendungs-Handler, Diagnostic Management und nicht-flüchtigem Speicher. Quellen: [SWS_DM_02152], [SWS_DM_02156], AUTOSAR AP SWS Diagnostics §7.2 „DiagnosticExtendedDataRecordInterface“

Lebenszyklus

Die Erzeugung erfolgt über den parametrisierten Konstruktor unter Angabe eines ara::core::InstanceSpecifier sowie des Nebenläufigkeitsmodus ara::diag::ConcurrencyType ([SWS_DM_02158], AUTOSAR AP SWS Diagnostics §7.2 „DiagnosticExtendedDataRecordInterface“). Die Konstruktion ist threadsicher und ausnahmesicher (exception safe). Über den Parameter concurrencyType wird festgelegt, ob Aufrufe der Schnittstelle nebenläufig (kConcurrent) oder sequenziell (kNotConcurrent) verarbeitet werden dürfen ([SWS_DM_02158]). Kopier- und Verschiebeoperationen sind vollständig unterbunden: Kopierkonstruktor ([SWS_DM_02147]), Kopierzuweisung ([SWS_DM_02148]), Verschiebekonstruktor ([SWS_DM_02149]) und Verschiebezuweisung ([SWS_DM_02150]) sind gelöscht (=delete). Eine Instanz besitzt damit eine feste Identität und kann weder dupliziert noch transferiert werden.

Nach der Instanziierung befindet sich das Objekt zunächst im inaktiven Zustand. Erst durch den Aufruf von Offer() ([SWS_DM_02152]) wird der Dienst aktiv geschaltet und der DM leitet Anfragen an den Handler weiter. Mittels StopOffer() ([SWS_DM_02153]) kann diese Weiterleitung jederzeit gestoppt werden. Die Zerstörung erfolgt über den virtuellen Destruktor ~<ExtendedDataRecordElementInterface>() ([SWS_DM_02151]). Dieser ist zwar ausnahmesicher, aber explizit nicht threadsicher (not thread-safe) ([SWS_DM_02151]). Interpretation: StopOffer() dürfte vor dem Zerstören des Handler-Objekts aufgerufen werden müssen, um sicherzustellen, dass keine weiteren Anfragen eingehen, während das Objekt freigegeben wird. Frage Q-c77dda63f0e8798a (offen)

Nutzungspfad

Der reguläre Ablauf umfasst die Bereitstellung, die asynchrone Beantwortung von Leseanfragen und die Deaktivierung des Dienstes:

  • Initialisierung: Die Anwendung instanziiert die abgeleitete Klasse mit dem passenden Port-Bezeichner und der Nebenläufigkeitskonfiguration ([SWS_DM_02158]).
  • Dienstangebot: Durch Aufruf von Offer() wird die Weiterleitung von Anfragen im DM freigeschaltet ([SWS_DM_02152]). Die Methode gibt ein ara::core::Result<void> zurück.
  • Datenabruf: Trifft eine Leseanforderung ein, ruft der DM die rein virtuelle Methode Read() auf ([SWS_DM_02156]). Dabei werden die Anfrage-Metadaten (metaInfo) und ein cancellationHandler übergeben.
  • Abbruchbehandlung und Rückgabe: Der Handler kann über cancellationHandler.IsCanceled() prüfen, ob die Konversation abgebrochen wurde, oder per cancellationHandler.SetNotifier() eine Benachrichtigung registrieren ([SWS_DM_02156]). Das Ergebnis wird asynchron über ein ara::core::Future mit einem ReadOutput-Objekt geliefert ([SWS_DM_02156], [SWS_DM_02154]).
  • Persistierung: Der DM übernimmt die abgerufenen Daten und speichert sie dauerhaft im nicht-flüchtigen Speicher ([SWS_DM_02156]).
  • Dienstabmeldung: Vor dem Herunterfahren ruft die Anwendung StopOffer() auf ([SWS_DM_02153]), um die Weiterleitung durch den DM zu beenden, bevor die Instanz zerstört wird ([SWS_DM_02151]).
Ablauf der Bereitstellung und des Lesens von Extended Data RecordsAnwendungHandlerDMNVMUse Case: Initialisierung und DienstanmeldungKonstruktion(instanceSpec, concurrencyType)Offer()Registrierung aktivierenResult<void>Use Case: DiagnoseabfrageRead(metaInfo, cancellationHandler)Daten ermitteln / 0xFF FüllmusterFuture<ReadOutput>Persistierung der Record-DatenUse Case: DienstabmeldungStopOffer()Weiterleitung deaktivieren

Sequenzdiagramm: Typischer Ablauf der Datenbereitstellung und -abfrage. Quellen: [SWS_DM_02152], [SWS_DM_02153], [SWS_DM_02156], [SWS_DM_02158]

Fehlerszenarien

Bei der Nutzung der Schnittstelle sind mehrere Fehlerbedingungen und Vorbedingungen zu beachten:

  • Konstruktionsfehler und Modellverletzungen: Beim Aufruf des Konstruktors können Modellierungsfehler auftreten ([SWS_DM_02158]). Dazu zählen InstanceSpecifierMappingIntegrityViolation (der Bezeichner lässt sich nicht auflösen oder referenziert kein PortPrototype), PortInterfaceMappingViolation (fehlende Referenzierung durch ein DiagnosticDataPortMapping), ProcessMappingViolation (kein passender Prozess im Modell gefunden) sowie InstanceSpecifierAlreadyInUseViolation (der Bezeichner wird im Prozess bereits verwendet) ([SWS_DM_02158]).
  • Mehrfaches Anbieten: Wird Offer() aufgerufen, wenn der Dienst bereits aktiv angeboten wird, schlägt der Aufruf fehl und liefert den Fehlercode DiagOfferErrc::kAlreadyOffered zurück ([SWS_DM_02152]).
  • Nicht verfügbare Daten bei Leseanfragen: Da der DM die Daten im nicht-flüchtigen Speicher ablegt, muss bei einem Aufruf von Read() zwingend ein Wert zurückgeliefert werden ([SWS_DM_02156]). Sind Daten zum Abfragezeitpunkt nicht verfügbar, muss die Handler-Implementierung diese mit einem definierten Füllmuster wie 0xFF auffüllen ([SWS_DM_02156]).
  • Anwendungs- und Diagnosefehler: Scheitert die Datenbereitstellung gänzlich, kann das zurückgegebene ara::core::Future einen entsprechenden Diagnose-NRC-Fehlercode (DiagUdsNrcErrc) oder einen anwendungsspezifischen Fehler (ApApplicationError) enthalten ([SWS_DM_02156]).
  • Gefahr bei Destruktion: Da der Destruktor nicht threadsicher ist ([SWS_DM_02151]), führt eine Zerstörung des Objekts während parallel laufender Aufrufe oder ohne vorheriges StopOffer() ([SWS_DM_02153]) zu undefiniertem Verhalten.

Dieser Leitfaden wurde durch eine KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.

Mitgliederkarte

Klassendiagramm

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

G n_ExtendedDataRecord_Namespace____ExtendedDataRecordElementInterface_765 <ExtendedDataRecordElementInterface> + <ExtendedDataRecordElementOutArg> + Offer() + Read() + StopOffer() + operator=() + <ExtendedDataRecordElementInterface>() + ~<ExtendedDataRecordElementInterface>()

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Methoden

Copy constructor deletion

Überladungen <ExtendedDataRecordElementInterface> 3
<ExtendedDataRecordElementInterface2> (const <ExtendedDataRecordElementInterface2> &other)=delete; SWS_DM_02147
<ExtendedDataRecordElementInterface4> ( <ExtendedDataRecordElementInterface4> &&other)=delete; SWS_DM_02149
<ExtendedDataRecordElementInterface1> (ara::core::Instance Specifier instanceSpec, ara::diag::ConcurrencyType concurrencyType) noexcept; SWS_DM_02158
Offer function

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

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

Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).

virtual ara::core::Future< <ExtendedDataRecordElement>ReadOutput > Read (const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;
StopOffer function

This StopOffer will disable the forwarding of request messages from DM

void StopOffer () noexcept;

Destruction of a DataElement

virtual ~<ExtendedDataRecordElementInterface6> () noexcept;

Operatoren

operator= function 2

Copy assignment constructor deletion

Überladungen = 2
<ExtendedDataRecordElementInterface3> & operator= (const <ExtendedDataRecordElementInterface3> &other)=delete; SWS_DM_02148
<ExtendedDataRecordElementInterface5> & operator= ( <ExtendedDataRecordElementInterface5> &&other)=delete; SWS_DM_02150

Konstanten

Member declaration representing an out argument in an Output.

<ExtendedDataRecordElementOutArgType> <ExtendedDataRecordElementOutArg>;

Eingebettete Typen

Dokumentation der Methoden

function <ExtendedDataRecordElementInterface> [SWS_DM_02147] Upstream: RS_AP_00147

<ExtendedDataRecordElementInterface2> (const <ExtendedDataRecordElementInterface2> &other)=delete;

Copy constructor deletion

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>

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

Record
AUTOSAR/AP/record/SWS_DM_02147
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02147@rel:R25-11#b778fd1a
Content hash
b778fd1a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02147
Status: valid/unmigrated Version: rel:R25-11#b778fd1a Versionshistorie & Revisions (1 transition)
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_02147@rel:R25-11#b778fd1a
Point-in-Time History:
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 <ExtendedDataRecordElementInterface> [SWS_DM_02149] Upstream: RS_AP_00147

<ExtendedDataRecordElementInterface4> ( <ExtendedDataRecordElementInterface4> &&other)=delete;

Move constructor

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>

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

Record
AUTOSAR/AP/record/SWS_DM_02149
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02149@rel:R25-11#922c09b0
Content hash
922c09b0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02149
Status: valid/unmigrated Version: rel:R25-11#922c09b0 Versionshistorie & Revisions (1 transition)
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_02149@rel:R25-11#922c09b0
Point-in-Time History:
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 <ExtendedDataRecordElementInterface> [SWS_DM_02158] Upstream: RS_AP_00137

<ExtendedDataRecordElementInterface1> (ara::core::Instance Specifier instanceSpec, ara::diag::ConcurrencyType concurrencyType) noexcept;

Construct a DataElement from an ara::core::InstanceSpecifier

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

Verwendung und Aufrufkontext

Die Funktion <ExtendedDataRecordElementInterface> dient als Konstruktor zur Erzeugung eines DataElement für eine Erweiterungsdatensatz-Schnittstelle anhand eines ara::core::InstanceSpecifier [SWS_DM_02158]. Die Deklaration ist im Gültigkeitsbereich <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface> verortet und erfordert das Einbinden der Header-Datei #include "<ExtendedDataRecordElementShortname>.h" AUTOSAR_AP_SWS_Diagnostics §8.49.2.2.1.6.

Der synchrone Aufruf erfordert zwei Eingabeparameter [SWS_DM_02158]:

  • instanceSpec (ara::core::InstanceSpecifier): Bezeichner der konkreten Serviceinstanz im AUTOSAR-Modell.
  • concurrencyType (ara::diag::ConcurrencyType): Bestimmt, ob die Schnittstelle threadsicher (kConcurrent) oder nicht-threadsicher (kNotConcurrent) instanziiert wird.

Nebenläufigkeit und Fehlersicherheit

Die Konstruktorfunktion selbst ist als noexcept deklariert und als thread-safe sowie exception safe spezifiziert [SWS_DM_02158]. Interpretation: Da die Funktion als noexcept definiert ist, dürften Modellierungs- und Initialisierungsfehler nicht über C++-Exceptions, sondern über die im Adaptive-Framework definierten Violations signalisiert werden [SWS_DM_02158]. Frage Q-9ce91764c3e8364e (offen)

Fehlerbehandlung und Modellverletzungen

Bei fehlerhafter Modellkonfiguration oder ungültigen Bezeichnern treten spezifische Violations auf [SWS_DM_02158]:

  • InstanceSpecifierMappingIntegrityViolation: Der Bezeichner kann im Kontext des Prozesses nicht aufgelöst werden oder verweist nicht auf einen PortPrototype.
  • PortInterfaceMappingViolation: Ein durch DiagnosticExtendedDataRecordInterface typisierter PortPrototype wird nicht durch ein DiagnosticDataPortMapping referenziert.
  • ProcessMappingViolation: Eine passende InstanceRef existiert, aber es wurde kein passender modellierter Prozess für den Laufzeitprozess gefunden.
  • InstanceSpecifierAlreadyInUseViolation: Der Konstruktor wurde mit einem InstanceSpecifier aufgerufen, der im Prozess bereits in Verwendung ist.

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

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
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 typed by a pingViolation DiagnosticExtendedDataRecordInterface needs to be referenced by a DiagnosticDataPortMapping. 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
instanceSpecThe specifier of a specific instance of a service.
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_02158
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02158@rel:R25-11#dc93a230
Content hash
dc93a230
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02158
Status: valid/unmigrated Version: rel:R25-11#dc93a230 Versionshistorie & Revisions (1 transition)
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_02158@rel:R25-11#dc93a230
Point-in-Time History:
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_02152] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04169, RS_Diag_04224

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: e44e4ef775f3 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Offer aktiviert die Weiterleitung von Diagnoseanforderungen durch den Diagnostic Management Daemon (DM) an die entsprechende Instanz des Handlers [SWS_DM_02152]. Sie wird parameterlos aufgerufen und liefert synchron ein ara::core::Result<void> zurück, deklariert als noexcept und spezifiziert als exception-safe [SWS_DM_02152].

Für die ordnungsgemäße Verwendung und Fehlerbehandlung gelten folgende Vorgaben:

  • Rückgabewert und Fehler: Im Erfolgsfall enthält das Ergebnis einen leeren Wert. Wurde der Dienst für diese Handler-Instanz bereits zuvor registriert, schlägt der Aufruf fehl und liefert den Fehlercode DiagOfferErrc::kAlreadyOffered mit Rollback-Semantik [SWS_DM_02152]. Verwandte Fehlerdomänen definieren für diesen Zustand ebenfalls den Fehlercode kAlreadyOffered [SWS_DM_00514] [SWS_DM_00560].
  • Nebenläufigkeit: Im Gegensatz zu anderen Diagnose-Handlern, die häufig als nicht threadsicher ausgewiesen sind (wie etwa in [SWS_DM_00557]), ist diese Methode explizit als thread-safe definiert [SWS_DM_02152].
  • Zusammenspiel im System: Solange ein Interface von der Applikation noch nicht mittels Offer bereitgestellt wurde, reagiert der DM je nach Kontext mit definierten Standard- bzw. Ersatzwerten, wie beispielsweise mit dem Status „Not ready“ bei DoIP-PowerMode-Abfragen [SWS_DM_01525] oder Ersatzwerten für Gruppenkennungen [SWS_DM_01527]. Zudem betont die Spezifikation, dass Diagnose-Offer-Funktionen spezifisch für ara::diag sind und nicht mit ara::com::Offer verwechselt werden dürfen AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“.

Interpretation: Das synchrone Rückmeldeverhalten von Offer dürfte sicherstellen, dass die Handler-Registrierung vor dem Empfang nachfolgender UDS-Anforderungen vollständig abgeschlossen ist. Frage Q-e6b2916cf4887164 (offen)

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

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >• If successful: an ara::core::Result containing a ara:: core::Result::value_type • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: diag::DiagOfferErrc

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_02152
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02152@rel:R25-11#98647892
Content hash
98647892
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02152
Status: valid/unmigrated Version: rel:R25-11#98647892 Versionshistorie & Revisions (1 transition)
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_02152@rel:R25-11#98647892
Point-in-Time History:
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 Read [SWS_DM_02156] Upstream: RS_AP_00114, RS_AP_00127, RS_AP_00128, RS_AP_00138

virtual ara::core::Future< <ExtendedDataRecordElement>ReadOutput > Read (const ara::diag::MetaInfo &metaInfo, ara::diag::CancellationHandler cancellationHandler) noexcept=0;

Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fe834745387e Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die rein virtuelle Methode Read wird vom Diagnostic Management (DM) aufgerufen, um die Daten eines ExtendedDataRecordElement aus der Applikation abzurufen ([SWS_DM_02156]). Da der DM die abgerufenen Daten dauerhaft im nichtflüchtigen Speicher sichert, muss die Methode stets einen Wert liefern. Stehen Daten zum Aufrufzeitpunkt nicht zur Verfügung, müssen diese durch die Implementierung mit einem Füllmuster wie 0xFF aufgefüllt werden ([SWS_DM_02156]).

Die Ausführung erfolgt asynchron und gibt ein ara::core::Future zurück, das im Erfolgsfall die Struktur ReadOutput kapselt ([SWS_DM_02154]). Der Aufruf übergibt folgende Parameter ([SWS_DM_02156]):

  • metaInfo: Übermittelt Meta-Informationen der zugrundeliegenden Diagnoseanforderung.
  • cancellationHandler: Ermöglicht die Abfrage eines Abbruchs mittels cancellationHandler.IsCanceled() sowie die Registrierung einer Benachrichtigungsfunktion über cancellationHandler.SetNotifier().

Fehlerbehandlung

Im Fehlerfall stellt das Future einen negativen UDS-Antwortcode (DiagUdsNrcErrc) oder einen anwendungsspezifischen Fehler (ApApplicationError) bereit ([SWS_DM_02156], AUTOSAR_AP_SWS_Diagnostics §7.3.2.6.1 „NRCs created by application“). Falls die benötigte Serviceschnittstelle noch nicht oder nicht mehr per offer() bereitgestellt wird, antwortet der DM mit NRC 0x94 (ResourceTemporarilyNotAvailable) ([SWS_DM_01257]). Zudem meldet DiagOfferErrc::kAlreadyOffered, wenn der Dienst bereits angeboten wird ([SWS_DM_02156]).

Nebenläufigkeit und Zusammenspiel

Die Methode ist als ausnahmesicher (exception safe) spezifiziert ([SWS_DM_02156]). Die Thread-Sicherheit ist bedingt und implementationsdefiniert (implementation defined) ([SWS_DM_02156]). Dies unterscheidet Read für Extended-Data-Records von Leseoperationen an regulären Daten-Elementen ([SWS_DM_00596]) oder Datenbezeichnern ([SWS_DM_00640]), welche ausdrücklich nicht threadsicher sind.

Dieser Text wurde durch ein KI-System auf Basis der Spezifikationen des Releases R25-11 generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheitexception safe
Thread-Sicherheitconditional Thread safety is implementation defined

Parameter (in)

ParameterBeschreibung
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future< {<extended-data-record-element-name-upper-camel> }ReadOutput >• If successful: an ara::core::Future containing an ReadOutput object as per [SWS_DM_02154] • If unsuccessful: an ara::core::Future containing a corresponding DiagUdsNrcErrc or ApApplicationError.

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_02156
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02156@rel:R25-11#29b32782
Content hash
29b32782
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02156
Status: valid/unmigrated Version: rel:R25-11#29b32782 Versionshistorie & Revisions (1 transition)
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_02156@rel:R25-11#29b32782
Point-in-Time History:
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_02153] Upstream: RS_Diag_04169

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: 7a0fc3b7b561 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion StopOffer wird auf einer Instanz des Extended-Data-Record-Interfaces (<ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>) aufgerufen, welches über den Header #include "<ExtendedDataRecordElementShortname>.h" eingebunden wird [SWS_DM_02153]. Der Aufruf erfolgt synchron, nimmt keine Parameter entgegen und besitzt keinen Rückgabewert (void).

Zweck der Methode ist es, die Weiterleitung eingehender Anfrage-Nachrichten aus dem Diagnostic Management (DM) an das jeweilige Extended-Data-Record-Element zu deaktivieren [SWS_DM_02153]. Nach der Ausführung leitet der DM keine neuen Diagnoseanfragen mehr an den zugehörigen Handler weiter.

Fehlerbehandlung und Nebenläufigkeit

Die Funktion ist mit dem Bezeichner noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert [SWS_DM_02153]. Spezifische Fehlercodes, Rückgabewerte oder Benachrichtigungen an Fehlerüberwachungen sind im Payload nicht definiert; im Fehlerfall werden keine Exceptions geworfen.

Hinsichtlich der Nebenläufigkeit ist die Methode ausdrücklich als threadsicher (thread-safe) eingestuft [SWS_DM_02153]. Dies stellt eine Besonderheit dar, da verwandte StopOffer-Schnittstellen in ara::diag – wie beispielsweise für Routinen [SWS_DM_00558], Datenelemente [SWS_DM_00617] oder Monitore [SWS_DM_01089] – als nicht threadsicher spezifiziert sind. Bereits in Verarbeitung befindliche Anfragen dürften vermutlich vor dem endgültigen Stopp noch abgeschlossen oder verworfen werden. Frage Q-82e9d44f8ac1969d (offen)

Zusammenspiel im Diagnostic Management

Die Benennung folgt dem einheitlichen Dienstmuster in AUTOSAR Adaptive, bei dem Funktionseinheiten ihre Verfügbarkeit über Offer und StopOffer steuern AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“. Das Element reiht sich damit in vergleichbare Schnittstellen des DM ein, wie etwa für generische UDS-Dienste [SWS_DM_00620], Datenbezeichner [SWS_DM_00600], Sicherheitszugriffe [SWS_DM_00767] oder ECU-Reset-Anforderungen [SWS_DM_01017].

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR Adaptive R25-11 generiert.

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheitexception safe
Thread-Sicherheitthread-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_02153
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02153@rel:R25-11#0c3fd27f
Content hash
0c3fd27f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02153
Status: valid/unmigrated Version: rel:R25-11#0c3fd27f Versionshistorie & Revisions (1 transition)
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_02153@rel:R25-11#0c3fd27f
Point-in-Time History:
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 operator= [SWS_DM_02148] Upstream: RS_AP_00147

<ExtendedDataRecordElementInterface3> & operator= (const <ExtendedDataRecordElementInterface3> &other)=delete;

Copy assignment constructor deletion

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>

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

Record
AUTOSAR/AP/record/SWS_DM_02148
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02148@rel:R25-11#085b2936
Content hash
085b2936
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02148
Status: valid/unmigrated Version: rel:R25-11#085b2936 Versionshistorie & Revisions (1 transition)
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_02148@rel:R25-11#085b2936
Point-in-Time History:
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 operator= [SWS_DM_02150] Upstream: RS_AP_00147

<ExtendedDataRecordElementInterface5> & operator= ( <ExtendedDataRecordElementInterface5> &&other)=delete;

Move assignment constructor

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>

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

Record
AUTOSAR/AP/record/SWS_DM_02150
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02150@rel:R25-11#19edc7c0
Content hash
19edc7c0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02150
Status: valid/unmigrated Version: rel:R25-11#19edc7c0 Versionshistorie & Revisions (1 transition)
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_02150@rel:R25-11#19edc7c0
Point-in-Time History:
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 ~<ExtendedDataRecordElementInterface> [SWS_DM_02151] Upstream: RS_Diag_04169, RS_AP_00134

virtual ~<ExtendedDataRecordElementInterface6> () noexcept;

Destruction of a DataElement

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
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_02151
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02151@rel:R25-11#31ab9402
Content hash
31ab9402
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02151
Status: valid/unmigrated Version: rel:R25-11#31ab9402 Versionshistorie & Revisions (1 transition)
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_02151@rel:R25-11#31ab9402
Point-in-Time History:
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

Dokumentation der Konstanten / Variablen

variable <ExtendedDataRecordElementOutArg> [SWS_DM_02155] Upstream: RS_Diag_04224, RS_Diag_04169

<ExtendedDataRecordElementOutArgType> <ExtendedDataRecordElementOutArg>;

Member declaration representing an out argument in an Output.

Header-Datei#include "<ExtendedDataRecordElementShortname>.h"
Scopeclass <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Symbol<ExtendedDataRecordElementOutArg>
Typ<ExtendedDataRecordElementOutArgType>

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

Record
AUTOSAR/AP/record/SWS_DM_02155
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02155@rel:R25-11#db27b360
Content hash
db27b360
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02155
Status: valid/unmigrated Version: rel:R25-11#db27b360 Versionshistorie & Revisions (1 transition)
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_02155@rel:R25-11#db27b360
Point-in-Time History:
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