DEENESPTFRRUARHIKOZHNL

class ara::diag::GenericDataIdentifier

[SWS_DM_00607] Upstream: RS_Diag_04169

class GenericDataIdentifier {...};

Generic DataIdentifier interface.

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

User GuideAI-GENERATED

Enables applications to generically handle UDS read and write requests for diagnostic identifiers.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 02c252ff66d0 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Enables applications to generically handle UDS read and write requests for diagnostic identifiers.

The class ara::diag::GenericDataIdentifier serves as a generic interface for the asynchronous processing of UDS read and write requests for diagnostic identifiers in AUTOSAR Adaptive [SWS_DM_00636]. After binding to a port and enabling via Offer(), Diagnostic Management forwards requests to the implemented methods [SWS_DM_00638]. As a singular instance, the object can neither be copied nor moved, while the thread safety of request processing is controlled via the concurrency configuration selected during construction.

Context

The class ara::diag::GenericDataIdentifier represents a generic service interface within the functional cluster Diagnostic Management (DM) of the AUTOSAR Adaptive Platform SWS Diagnostics §8.2 “GenericDataIdentifier”. While type-specific interfaces are bound to firmly modeled data types, GenericDataIdentifier serves the flexible processing of diagnostic identifiers (Data Identifiers, DIDs), where the 16-bit identifier is passed dynamically as a parameter.

Diagnostic processing primarily involves three roles:

  • The external diagnostic tester, which directs standardized UDS services such as ReadDataByIdentifier (0x22) or WriteDataByIdentifier (0x2E) to the vehicle.
  • Diagnostic Management (DM), which accepts diagnostic requests, validates them, and forwards them to the corresponding application instance via defined port interfaces, provided it was previously activated via Offer [SWS_DM_00638].
  • The application-specific implementation of GenericDataIdentifier, which encapsulates the actual processing logic by providing the methods Read [SWS_DM_00636] and Write [SWS_DM_00637] and returning the data asynchronously.

Lifecycle

An instance of ara::diag::GenericDataIdentifier is explicitly instantiated via its constructor [SWS_DM_00634]. In doing so, the caller binds the object to an ara::core::InstanceSpecifier referencing an PortPrototype of a modeled DiagnosticDataIdentifierGenericInterface. Via the argument concurrencyType (of type DataIdentifierConcurrencyType), it is specified whether requests are passed concurrently (kConcurrent) or sequentially (kNotConcurrent) to the handler [SWS_DM_00634].

Regarding ownership and lifetime, GenericDataIdentifier is modeled as a singular, non-copyable, and non-movable instance:

After instantiation, the object is in the inactive state; Diagnostic Management does not yet forward requests. Forwarding is only activated by calling Offer() [SWS_DM_00638]. To deactivate the forwarding of diagnostic requests again, the application calls StopOffer() [SWS_DM_00639]. The object is destroyed via the virtual destructor [SWS_DM_00635].

In terms of concurrency, the constructor is thread-safe (thread-safe) [SWS_DM_00634]. In contrast, the administrative methods Offer() [SWS_DM_00638] and StopOffer() [SWS_DM_00639] as well as the destructor [SWS_DM_00635] are specified as not thread-safe. The thread safety of the methods Read and Write conditionally depends on the selected concurrencyType [SWS_DM_00636], [SWS_DM_00637].

lifecycle NichtInitialisiert Not initialized Inaktiv Inaktiv (StopOffer) NichtInitialisiert->Inaktiv Konstruktor Aktiv Aktiv (Offer) Inaktiv->Aktiv Offer() Beendet Destroyed Inaktiv->Beendet Destruktor Aktiv->Inaktiv StopOffer() Aktiv->Beendet Destruktor

State diagram: Lifecycle and state transitions of the handler instance between inactivity and forwarding readiness. Sources: [SWS_DM_00634], [SWS_DM_00638], [SWS_DM_00639], [SWS_DM_00635]

Usage Path

A typical end-to-end flow for handling diagnostic requests is divided into the following steps:

  1. Initialization: The application instantiates its derived handler class, specifying the InstanceSpecifier and the concurrency configuration [SWS_DM_00634]. Interpretation: In practice, this likely typically occurs during the initialization phase of the application process. Question Q-32596fba68253958 (open)
  2. Service provision: The application calls Offer() [SWS_DM_00638]. Diagnostic Management activates the forwarding of incoming DID requests.
  3. Request processing:
    • If a read request is received, the DM calls the method Read(dataIdentifier, metaInfo, cancellationHandler) [SWS_DM_00636]. The application checks the passed 16-bit identifier and asynchronously returns a ara::core::Future<OperationOutput>.
    • If a write request arrives, the DM calls Write(dataIdentifier, requestData, metaInfo, cancellationHandler) [SWS_DM_00637]. The payload data in requestData remains valid until the associated promise is fulfilled or processing is canceled.
  4. Cancellation check: During lengthy operations, the handler can check via cancellationHandler.IsCanceled() whether the conversation was cancelled, or register a notification function via cancellationHandler.SetNotifier [SWS_DM_00636], [SWS_DM_00637].
  5. Service de-registration: Before terminating the handler, the application calls StopOffer() [SWS_DM_00639], whereupon DM stops forwarding.
Sequence of a generic read requestDiagnosetesterDiagnostic ManagementGenericDataIdentifierUse Case: DienstregistrierungOffer()Result<void> (Erfolg)Use Case: Leseanforderung (UDS 0x22)ReadDataByIdentifierRead(dataIdentifier, metaInfo, cancellationHandler)altDaten erfolgreich ermitteltFuture with OperationOutputPositive UDS response with dataFehlerfall / NRCFuture with DiagUdsNrcErrcNegative UDS-Antwort (NRC)

Sequence diagram: Interaction between external tester, Diagnostic Management, and GenericDataIdentifier during a UDS read request. Sources: [SWS_DM_00638], [SWS_DM_00636]

Error Scenarios

Errors can occur in different phases of the interaction:

  • Configuration and mapping violations: If InstanceSpecifier cannot be resolved in the model or does not reference a PortPrototype, a InstanceSpecifierMappingIntegrityViolation is present [SWS_DM_00634]. If the mapping to a DiagnosticDataPortMapping is missing, a PortInterfaceMappingViolation occurs [SWS_DM_00634]. A missing process mapping generates a ProcessMappingViolation, and an already used InstanceSpecifier leads to a InstanceSpecifierAlreadyInUseViolation [SWS_DM_00634].
  • Multiple offering: If Offer() is called even though the service is already actively offered, the method returns a ara::core::Result with the error code DiagOfferErrc::kAlreadyOffered [SWS_DM_00638].
  • Domain-specific diagnostic errors: If a read or write request cannot be served functionally, the application returns no success status in Future, but rather a standardized UDS NRC (Negative Response Code) via DiagUdsNrcErrc in accordance with ISO 14229-1 [SWS_DM_00636], [SWS_DM_00637].

This guide is based on the AUTOSAR specification R25-11 and was generated automatically.

Member map

Operators

1

Embedded types

1

Class diagram

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

G nara__diag__GenericDataIdentifier357 GenericDataIdentifier + GenericDataIdentifier() + operator=() + ~GenericDataIdentifier() + Offer() + Read() + StopOffer() + Write()

Detail view

Select an entry in the outline.

Constructors and destructor

Class for an GenericDataIdentifier.

Overloads GenericDataIdentifier 3
explicit GenericDataIdentifier (const ara::core::InstanceSpecifier &specifier, DataIdentifierConcurrencyType concurrencyType) noexcept; SWS_DM_00634
GenericDataIdentifier (GenericDataIdentifier &)=delete; SWS_DM_01653
GenericDataIdentifier (GenericDataIdentifier &&) noexcept=delete; SWS_DM_01654

Destructor of class GenericDataIdentifier .

virtual ~GenericDataIdentifier () noexcept;

Methods

Offer function

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

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

Called for ReadDataByIdentifier request for this DiagnosticDataIdentifier.

virtual ara::core::Future< OperationOutput > Read (std::uint16_t data Identifier, const MetaInfo &metaInfo, CancellationHandler cancellation Handler) noexcept=0;
StopOffer function

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

void StopOffer () noexcept;
Write function

Called for WriteDataByIdentifier request for this DiagnosticDataIdentifier.

virtual ara::core::Future< void > Write (std::uint16_t dataIdentifier, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;

Operators

operator= function 2

GenericDataIdentifier shall be a single not assignable instance.

Overloads = 2

Embedded types

Method documentation

function GenericDataIdentifier [SWS_DM_00634] Upstream: RS_AP_00137, RS_Diag_04169, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

explicit GenericDataIdentifier (const ara::core::InstanceSpecifier &specifier, DataIdentifierConcurrencyType concurrencyType) noexcept;

Class for an GenericDataIdentifier.

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier
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 DiagnosticDataIdentifierGenericInterface 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
specifierInstanceSpecifier to a PortPrototype of a DiagnosticDataIdentifierGenericInterface.
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_00634
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00634@rel:R25-11#9d754b4c
Content hash
9d754b4c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00634
Status: valid/unmigrated Version: rel:R25-11#71f09e07 Versionshistorie & Revisions (1 transition, 8 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_00634@rel:R25-11#71f09e07
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#9d754b4c2026-09-30
  • R19-11rel:R19-11#281ed5b12026-10-14
  • R20-11rel:R20-11#c8b741432026-10-14
  • R21-11rel:R21-11#161554792026-10-14
  • R22-11rel:R22-11#55a5b7df2026-10-14
  • R23-11rel:R23-11#571dfcd62026-10-14
  • R24-11rel:R24-11#4a63e6522026-10-14
  • R25-11rel:R25-11#71f09e072026-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 GenericDataIdentifier [SWS_DM_01653] Upstream: RS_AP_00147

GenericDataIdentifier (GenericDataIdentifier &)=delete;

GenericDataIdentifier shall be a single not copy-able instance.

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier

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

Record
AUTOSAR/AP/record/SWS_DM_01653
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01653@rel:R25-11#f309daca
Content hash
f309daca
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01653
Status: valid/unmigrated Version: rel:R25-11#3de9089c Versionshistorie & Revisions (1 transition, 4 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_01653@rel:R25-11#3de9089c
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#f309daca2026-09-30
  • R23-11rel:R23-11#ad3cab8a2026-10-14
  • R24-11rel:R24-11#d3cdff682026-10-14
  • R25-11rel:R25-11#3de9089c2026-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 GenericDataIdentifier [SWS_DM_01654] Upstream: RS_AP_00147

GenericDataIdentifier (GenericDataIdentifier &&) noexcept=delete;

Move constructor of GenericDataIdentifier.

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier

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

Record
AUTOSAR/AP/record/SWS_DM_01654
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01654@rel:R25-11#11d817c5
Content hash
11d817c5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01654
Status: valid/unmigrated Version: rel:R25-11#8f08b1d5 Versionshistorie & Revisions (1 transition, 4 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_01654@rel:R25-11#8f08b1d5
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#11d817c52026-09-30
  • R23-11rel:R23-11#5421592e2026-10-14
  • R24-11rel:R24-11#8f08b1d52026-10-14
  • R25-11rel:R25-11#8f08b1d52026-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_00638] Upstream: RS_AP_00139, RS_AP_00119, RS_Diag_04169

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

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

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 860e6bd15d7f Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage: The synchronous method Offer of class ara::diag::GenericDataIdentifier ([SWS_DM_00638]) serves to register a generic data identifier handler with Diagnostic Management (DM). By this call, the DM is authorized to forward incoming diagnostic requests (request messages) for the respective data identifier to this handler ([SWS_DM_00638]). The function takes no input parameters and synchronously returns a ara::core::Result<void> ([SWS_DM_00638]) that provides information about success or error.

Error handling: The method is declared with noexcept and guarantees complete exception safety (exception safe) ([SWS_DM_00638]). Possible errors are reported via the ara::core::Result. If the handler was already offered previously, the function returns the error code DiagOfferErrc::kAlreadyOffered with rollback semantics ([SWS_DM_00638]). This corresponds to the general error enumeration DiagErrc::kAlreadyOffered ([SWS_DM_00514]).

Concurrency and limitations: The function is specified as not thread-safe (not thread-safe) ([SWS_DM_00638]). Consequently, calls on the same instance must be protected against access. Since no separate deregistration method is specified for GenericDataIdentifier, the service offer is presumably tied to the lifetime of the handler instance (interpretation). Question Q-7c64a5bd308464a8 (open)

Interplay: The procedure follows the consistent offering pattern of Diagnostic Management. Analogous interfaces are found for type-specific data identifiers ([SWS_DM_00599]), generic routines ([SWS_DM_00557]), and generic UDS services ([SWS_DM_00619]).

This usage note was generated by an AI system.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier
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_00638
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00638@rel:R25-11#d9e8c129
Content hash
d9e8c129
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00638
Status: valid/unmigrated Version: rel:R25-11#1ea7c5d4 Versionshistorie & Revisions (1 transition, 8 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_00638@rel:R25-11#1ea7c5d4
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#d9e8c1292026-09-30
  • R19-11rel:R19-11#34f18c6b2026-10-14
  • R20-11rel:R20-11#f2c3beea2026-10-14
  • R21-11rel:R21-11#a7b6c9862026-10-14
  • R22-11rel:R22-11#533034aa2026-10-14
  • R23-11rel:R23-11#b980ade42026-10-14
  • R24-11rel:R24-11#198e42702026-10-14
  • R25-11rel:R25-11#1ea7c5d42026-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 Read [SWS_DM_00636] Upstream: RS_AP_00138, RS_AP_00119, RS_Diag_04169, RS_Diag_04170, RS_ Diag_04172

virtual ara::core::Future< OperationOutput > Read (std::uint16_t data Identifier, const MetaInfo &metaInfo, CancellationHandler cancellation Handler) noexcept=0;

Called for ReadDataByIdentifier request for this DiagnosticDataIdentifier.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 7772a86b7791 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The method Read of class ara::diag::GenericDataIdentifier is called as soon as a diagnostic request for ReadDataByIdentifier (UDS 0x22) is received for the respective data identifier [SWS_DM_00636]. As parameters, the function accepts the numeric identifier dataIdentifier, the context metaInfo, and a cancellationHandler. Via the cancellationHandler, the application can query the cancellation status by means of IsCanceled or register a notification function for canceled conversations via SetNotifier [SWS_DM_00636]. The result is provided asynchronously via a ara::core::Future<OperationOutput>, which returns the payload (OperationOutput) in the case of success [SWS_DM_00636].

Error handling

In the event of an error, the Future returns a negative UDS return value (NRC) according to ISO 14229-1 via DiagUdsNrcErrc [SWS_DM_00636]. If the interface is not yet or no longer offered via offer(), Diagnostic Management (DM) responds autonomously with NRC 0x94 (ResourceTemporarilyNotAvailable) [SWS_DM_01257]. If the configured limit of Response Pending messages is reached, the server aborts processing and responds with NRC 0x10 (generalReject) [SWS_DM_00369].

Concurrency and Interaction

The method is declared as noexcept and exception safe [SWS_DM_00636]. Its thread safety is conditional: Whether the implementation must be thread-safe is controlled via the ConcurrencyType passed in the constructor [SWS_DM_00636]. If readWrite is set to kConcurrent, the DM may initiate read and write accesses concurrently; otherwise (kNotConcurrent), the call occurs sequentially [SWS_DM_00939]. In contrast to specific interfaces such as [SWS_DM_00640], GenericDataIdentifier covers generic DID ranges flexibly via the passed ID [SWS_DM_00636].

This usage note was generated automatically based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier
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

Parameter (in)

ParameterBeschreibung
dataIdentifierthe corresponding DataIdentifier
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<OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00636
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00636@rel:R25-11#339b6352
Content hash
339b6352
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00636
Status: valid/unmigrated Version: rel:R25-11#cfd80198 Versionshistorie & Revisions (1 transition, 8 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_00636@rel:R25-11#cfd80198
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#339b63522026-09-30
  • R19-11rel:R19-11#f8a15c312026-10-14
  • R20-11rel:R20-11#5e9a44792026-10-14
  • R21-11rel:R21-11#34887de02026-10-14
  • R22-11rel:R22-11#91d437d52026-10-14
  • R23-11rel:R23-11#6625968e2026-10-14
  • R24-11rel:R24-11#430ea0f32026-10-14
  • R25-11rel:R25-11#cfd801982026-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_00639] Upstream: RS_Diag_04169

void StopOffer () noexcept;

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

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: bd73a88bfde2 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

The member function StopOffer of class ara::diag::GenericDataIdentifier serves to disable the forwarding of incoming request messages from Diagnostic Management (DM) to the respective instance [SWS_DM_00639]. The call is performed synchronously via the interface from the header file #include "ara/diag/generic_data_identifier.h" [SWS_DM_00639]. The function has the signature void StopOffer() noexcept;, takes no input parameters, and returns no return value [SWS_DM_00639].

Error Handling and Concurrency

The specification defines StopOffer as exception-safe (exception safe) and guarantees the absence of exceptions via the identifier noexcept [SWS_DM_00639]. Specific error codes, error reactions, or notifications to DET or DEM are not provided for this operation. With regard to concurrency, the method is classified as not thread-safe (not thread-safe) [SWS_DM_00639]. Parallel calls on the same instance must therefore be synchronized by the caller. Interpretation: Requests already started in Diagnostic Management are likely to still be processed regularly before forwarding is definitively stopped. Question Q-94a464dc832c055c (open)

Interplay in the Diagnostic Module

The pattern for revoking service provision is standardized and consistently used in the diagnostic module. Analogous StopOffer methods exist, among others, for:

This usage note was generated automatically based on specification data.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier
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_00639
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00639@rel:R25-11#0466e7b5
Content hash
0466e7b5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00639
Status: valid/unmigrated Version: rel:R25-11#9225c34d Versionshistorie & Revisions (1 transition, 8 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_00639@rel:R25-11#9225c34d
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#0466e7b52026-09-30
  • R19-11rel:R19-11#e360cf692026-10-14
  • R20-11rel:R20-11#1bc0f5cd2026-10-14
  • R21-11rel:R21-11#3b09d7582026-10-14
  • R22-11rel:R22-11#77376b4a2026-10-14
  • R23-11rel:R23-11#6009f72f2026-10-14
  • R24-11rel:R24-11#d3d4a13c2026-10-14
  • R25-11rel:R25-11#9225c34d2026-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 Write [SWS_DM_00637] Upstream: RS_AP_00138, RS_AP_00119, RS_Diag_04169, RS_Diag_04170

virtual ara::core::Future< void > Write (std::uint16_t dataIdentifier, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;

Called for WriteDataByIdentifier request for this DiagnosticDataIdentifier.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 7b195835c98c Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The method Write of class ara::diag::GenericDataIdentifier is called by Diagnostic Management as soon as a UDS request of service WriteDataByIdentifier (0x2E) is received [SWS_DM_00637]. A prerequisite for the call is that the requested data identifier is supported and the respective diagnostic session as well as security level permit execution [SWS_DM_00186], [SWS_DM_00415], [SWS_DM_00416].

The call occurs with the following parameters [SWS_DM_00637]:

  • dataIdentifier: The 16-bit identifier of the data identifier to be written.
  • requestData: A ara::core::Span containing the raw data of the request without DID prefix. The buffer remains valid until the associated promise is fulfilled or processing is canceled.
  • metaInfo: Additional metadata for the diagnostic request.
  • cancellationHandler: Serves for monitoring an early cancellation of the conversation via IsCanceled as well as registering a cancellation notification via SetNotifier.

Execution is asynchronous and returns a ara::core::Future<void> [SWS_DM_00637]. Upon successful processing, the promise is fulfilled with void for a positive response message. If an error occurs, the future is to be completed with a matching negative UDS return value (NRC) according to ISO 14229-1 via DiagUdsNrcErrc [SWS_DM_00637]. The method is declared as noexcept and must be implemented exception safe [SWS_DM_00637].

Regarding concurrency, thread safety is conditional: Whether Write must be implemented thread-safe depends on the ConcurrencyType passed during instantiation in the constructor [SWS_DM_00637]. Parallel execution of read and write accesses is controlled via the flag readWrite [SWS_DM_00939].

This text was created by an AI. All statements are based exclusively on the specifications of Release R25-11.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier
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

Parameter (in)

ParameterBeschreibung
dataIdentifierthe corresponding DataIdentifier
requestDataContent of request message (without DataIdentifier). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
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< void >A Future with either void (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00637
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00637@rel:R25-11#88996344
Content hash
88996344
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00637
Status: valid/unmigrated Version: rel:R25-11#b7a94afa Versionshistorie & Revisions (1 transition, 8 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_00637@rel:R25-11#b7a94afa
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#889963442026-09-30
  • R19-11rel:R19-11#8d85d1592026-10-14
  • R20-11rel:R20-11#701ab1d02026-10-14
  • R21-11rel:R21-11#10093f0c2026-10-14
  • R22-11rel:R22-11#9b15c55f2026-10-14
  • R23-11rel:R23-11#a7e012442026-10-14
  • R24-11rel:R24-11#9c761e5e2026-10-14
  • R25-11rel:R25-11#b7a94afa2026-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 operator= [SWS_DM_01651] Upstream: RS_AP_00147

GenericDataIdentifier & operator= (GenericDataIdentifier &)=delete;

GenericDataIdentifier shall be a single not assignable instance.

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier

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

Record
AUTOSAR/AP/record/SWS_DM_01651
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01651@rel:R25-11#0a92f77c
Content hash
0a92f77c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01651
Status: valid/unmigrated Version: rel:R25-11#9b814f4a Versionshistorie & Revisions (1 transition, 4 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_01651@rel:R25-11#9b814f4a
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#0a92f77c2026-09-30
  • R23-11rel:R23-11#1cfb26532026-10-14
  • R24-11rel:R24-11#211cc0882026-10-14
  • R25-11rel:R25-11#9b814f4a2026-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 operator= [SWS_DM_01652] Upstream: RS_AP_00147

GenericDataIdentifier & operator= (GenericDataIdentifier &&)=delete;

Move assignment operator of GenericDataIdentifier.

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier

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

Record
AUTOSAR/AP/record/SWS_DM_01652
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01652@rel:R25-11#5c58a414
Content hash
5c58a414
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01652
Status: valid/unmigrated Version: rel:R25-11#7c21b544 Versionshistorie & Revisions (1 transition, 4 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_01652@rel:R25-11#7c21b544
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#5c58a4142026-09-30
  • R23-11rel:R23-11#1428a6912026-10-14
  • R24-11rel:R24-11#7c21b5442026-10-14
  • R25-11rel:R25-11#7c21b5442026-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 ~GenericDataIdentifier [SWS_DM_00635] Upstream: RS_AP_00134, RS_Diag_04169

virtual ~GenericDataIdentifier () noexcept;

Destructor of class GenericDataIdentifier .

Header-Datei#include "ara/diag/generic_data_identifier.h"
Scopeclass ara::diag::GenericDataIdentifier
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_00635
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00635@rel:R25-11#882197f5
Content hash
882197f5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00635
Status: valid/unmigrated Version: rel:R25-11#fc24e0db Versionshistorie & Revisions (1 transition, 8 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_00635@rel:R25-11#fc24e0db
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#882197f52026-09-30
  • R19-11rel:R19-11#ae023e7c2026-10-14
  • R20-11rel:R20-11#6892d8702026-10-14
  • R21-11rel:R21-11#cf811fb72026-10-14
  • R22-11rel:R22-11#0ec9aa792026-10-14
  • R23-11rel:R23-11#924c98d82026-10-14
  • R24-11rel:R24-11#fc24e0db2026-10-14
  • R25-11rel:R25-11#fc24e0db2026-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