DEENESPTFRRUARHIKOZHNL

clase <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>

Guía del usuarioGENERADO POR IA

Sirve para la provisión de datos de diagnóstico extendidos por parte de la aplicación para el Diagnostic Management adaptativo.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0446a63ad449 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve para la provisión de datos de diagnóstico extendidos por parte de la aplicación para el Diagnostic Management adaptativo.

La clase <ExtendedDataRecordElementInterface> sirve a las aplicaciones adaptativas como interfaz para proporcionar datos de diagnóstico extendidos al Diagnostic Management ([SWS_DM_02152]). Tras la instanciación y la activación a través de Offer(), el manejador implementa la provisión asíncrona de los datos mediante el método virtual puro Read() ([SWS_DM_02156]). Dado que el Diagnostic Manager almacena de forma permanente los registros de datos en la memoria no volátil, los valores no disponibles deben completarse obligatoriamente con un patrón de relleno. La interfaz no se puede copiar ni mover y su destructor no es seguro para subprocesos.

Contexto

La interfaz <ExtendedDataRecordElementInterface> sirve en el subsistema de diagnóstico de la AUTOSAR Adaptive Platform para suministrar datos de diagnóstico extendidos específicos de la aplicación (Extended Data Records) al Diagnostic Management (DM) (AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»). Un Extended Data Record contiene datos adicionales relacionados con el diagnóstico, como valores de contadores o información del entorno asociados a un evento de error. La clase actúa como interfaz base abstracta para componentes manejadores del lado de la aplicación. Entre las partes interactuantes se incluyen el Diagnostic Manager (DM), que solicita y coordina las operaciones de lectura, la implementación concreta del manejador dentro de la aplicación, así como la memoria no volátil (Non-Volatile Memory, NVM), en la que el DM almacena permanentemente los datos recuperados ([SWS_DM_02156]). Interpretación: Se presume que la llamada a Read() es provocada por un procesamiento de diagnóstico interno en el DM, por ejemplo, ante la ocurrencia de un evento de error o ante cambios de estado de un código de diagnóstico de fallas (Trouble Code). Pregunta Q-f80be8c2bd5697fc (abierta)

Context Handler ExtendedDataRecordElementInterface (Anwendungs-Handler) DM Diagnostic Management (DM) Handler->DM Offer() / StopOffer() DM->Handler Read(metaInfo, cancellationHandler) NVM Memoria no volátil (NVM) DM->NVM Persistierung

Diagrama de contexto: Interacción entre el manejador de la aplicación, Diagnostic Management y la memoria no volátil. Fuentes: [SWS_DM_02152], [SWS_DM_02156], AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»

Ciclo de vida

La creación se lleva a cabo mediante el constructor parametrizado especificando un ara::core::InstanceSpecifier y el modo de concurrencia ara::diag::ConcurrencyType ([SWS_DM_02158], AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»). La construcción es segura para subprocesos y segura frente a excepciones (exception safe). A través del parámetro concurrencyType se establece si las llamadas a la interfaz pueden procesarse de forma concurrente (kConcurrent) o secuencial (kNotConcurrent) ([SWS_DM_02158]). Las operaciones de copia y movimiento están completamente suprimidas: el constructor de copia ([SWS_DM_02147]), la asignación por copia ([SWS_DM_02148]), el constructor de movimiento ([SWS_DM_02149]) y la asignación por movimiento ([SWS_DM_02150]) están eliminados (=delete). Una instancia posee, por tanto, una identidad fija y no se puede duplicar ni transferir.

Tras la instanciación, el objeto se encuentra inicialmente en estado inactivo. Solo mediante la llamada a Offer() ([SWS_DM_02152]) se activa el servicio y el DM reenvía las solicitudes al manejador. Mediante StopOffer() ([SWS_DM_02153]) se puede detener este reenvío en cualquier momento. La destrucción se efectúa mediante el destructor virtual ~<ExtendedDataRecordElementInterface>() ([SWS_DM_02151]). Aunque este es seguro frente a excepciones, de manera explícita no es seguro para subprocesos (not thread-safe) ([SWS_DM_02151]). Interpretación: Es probable que StopOffer() deba invocarse antes de destruir el objeto manejador para garantizar que no se reciban más solicitudes mientras se libera el objeto. Pregunta Q-c77dda63f0e8798a (abierta)

Ruta de uso

El flujo habitual comprende la puesta a disposición, la respuesta asíncrona a solicitudes de lectura y la desactivación del servicio:

  • Inicialización: La aplicación instancia la clase derivada con el identificador de puerto adecuado y la configuración de concurrencia ([SWS_DM_02158]).
  • Oferta de servicio: Mediante la llamada a Offer() se habilita el reenvío de solicitudes en el DM ([SWS_DM_02152]). El método devuelve un ara::core::Result<void>.
  • Recuperación de datos: Si llega una solicitud de lectura, el DM invoca el método virtual puro Read() ([SWS_DM_02156]). Al hacerlo, se transfieren los metadatos de la solicitud (metaInfo) y un cancellationHandler.
  • Tratamiento de cancelación y retorno: El manejador puede comprobar mediante cancellationHandler.IsCanceled() si la conversación ha sido cancelada o registrar una notificación a través de cancellationHandler.SetNotifier() ([SWS_DM_02156]). El resultado se entrega de forma asíncrona mediante un ara::core::Future con un objeto ReadOutput ([SWS_DM_02156], [SWS_DM_02154]).
  • Persistencia: El DM toma los datos recuperados y los guarda de forma permanente en la memoria no volátil ([SWS_DM_02156]).
  • Baja del servicio: Antes del apagado, la aplicación invoca StopOffer() ([SWS_DM_02153]) para finalizar el reenvío a través del DM antes de que la instancia sea destruida ([SWS_DM_02151]).
Flujo de provisión y lectura de Extended Data RecordsAplicaciónHandlerDMNVMUse Case: Inicialización y registro del servicioKonstruktion(instanceSpec, concurrencyType)Offer()Registrierung aktivierenResult<void>Use Case: DiagnoseabfrageRead(metaInfo, cancellationHandler)Determinar datos / patrón de relleno 0xFFFuture<ReadOutput>Persistencia de los datos de registroUse Case: DienstabmeldungStopOffer()Weiterleitung deaktivieren

Diagrama de secuencia: Flujo típico de la provisión y consulta de datos. Fuentes: [SWS_DM_02152], [SWS_DM_02153], [SWS_DM_02156], [SWS_DM_02158]

Escenarios de error

Al utilizar la interfaz deben tenerse en cuenta diversas condiciones de error y precondiciones:

  • Errores de construcción y violaciones del modelo: Al invocar el constructor pueden producirse errores de modelado ([SWS_DM_02158]). Entre ellos se incluyen InstanceSpecifierMappingIntegrityViolation (el identificador no puede resolverse o no hace referencia a un PortPrototype), PortInterfaceMappingViolation (falta de referenciación por parte de un DiagnosticDataPortMapping), ProcessMappingViolation (no se encontró ningún proceso coincidente en el modelo), así como InstanceSpecifierAlreadyInUseViolation (el identificador ya está en uso en el proceso) ([SWS_DM_02158]).
  • Oferta múltiple: Si se invoca Offer() cuando el servicio ya se está ofreciendo de forma activa, la llamada falla y devuelve el código de error DiagOfferErrc::kAlreadyOffered ([SWS_DM_02152]).
  • Datos no disponibles en solicitudes de lectura: Dado que el DM almacena los datos en la memoria no volátil, ante una llamada a Read() debe devolverse obligatoriamente un valor ([SWS_DM_02156]). Si los datos no están disponibles en el momento de la consulta, la implementación del manejador debe completarlos con un patrón de relleno definido, como 0xFF ([SWS_DM_02156]).
  • Errores de aplicación y de diagnóstico: Si la provisión de datos fracasa por completo, el ara::core::Future devuelto puede contener el código de error NRC de diagnóstico correspondiente (DiagUdsNrcErrc) o un error específico de la aplicación (ApApplicationError) ([SWS_DM_02156]).
  • Peligro durante la destrucción: Puesto que el destructor no es seguro para subprocesos ([SWS_DM_02151]), la destrucción del objeto durante llamadas en ejecución concurrente o sin un StopOffer() previo ([SWS_DM_02153]) conduce a un comportamiento indefinido.

Esta guía ha sido generada por una IA sobre la base de la especificación AUTOSAR R25-11.

Mapa de miembros

Diagrama de clases

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>()

Vista de detalle

Selecciona una entrada en el índice.

Métodos

Copy constructor deletion

Sobrecargas <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 función

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

ara::core::Result< void > Offer () noexcept;
Read función

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 función

This StopOffer will disable the forwarding of request messages from DM

void StopOffer () noexcept;

Destruction of a DataElement

virtual ~<ExtendedDataRecordElementInterface6> () noexcept;

Operadores

operator= función 2

Copy assignment constructor deletion

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

Constantes

Member declaration representing an out argument in an Output.

<ExtendedDataRecordElementOutArgType> <ExtendedDataRecordElementOutArg>;

Tipos anidados

Documentación de los métodos

función <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#b16a7486
Content hash
b16a7486
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

función <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#5df6369a
Content hash
5df6369a
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

función <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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5f6f8ec51798 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función <ExtendedDataRecordElementInterface> sirve como constructor para la creación de un DataElement para una interfaz de registro de datos ampliados a partir de un ara::core::InstanceSpecifier [SWS_DM_02158]. La declaración está ubicada en el ámbito <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface> y requiere la inclusión del archivo de cabecera #include "<ExtendedDataRecordElementShortname>.h" AUTOSAR_AP_SWS_Diagnostics §8.49.2.2.1.6.

La llamada síncrona requiere dos parámetros de entrada [SWS_DM_02158]:

  • instanceSpec (ara::core::InstanceSpecifier): identificador de la instancia de servicio concreta en el modelo AUTOSAR.
  • concurrencyType (ara::diag::ConcurrencyType): determina si la interfaz se instancia de forma segura para subprocesos (kConcurrent) o no segura para subprocesos (kNotConcurrent).

Concurrencia y seguridad frente a errores

La propia función constructora está declarada como noexcept y especificada como thread-safe, así como exception safe [SWS_DM_02158]. Interpretación: dado que la función está definida como noexcept, los errores de modelado e inicialización no deberían señalizarse mediante excepciones de C++, sino a través de las violaciones definidas en el framework Adaptive [SWS_DM_02158]. Pregunta Q-9ce91764c3e8364e (abierta)

Tratamiento de errores y violaciones del modelo

En caso de configuración errónea del modelo o de identificadores no válidos, se producen violaciones específicas [SWS_DM_02158]:

  • InstanceSpecifierMappingIntegrityViolation: el identificador no se puede resolver en el contexto del proceso o no hace referencia a un PortPrototype.
  • PortInterfaceMappingViolation: un DiagnosticExtendedDataRecordInterface tipificado mediante PortPrototype no es referenciado por un DiagnosticDataPortMapping.
  • ProcessMappingViolation: existe un InstanceRef adecuado, pero no se ha encontrado ningún proceso modelado coincidente para el proceso en tiempo de ejecución.
  • InstanceSpecifierAlreadyInUseViolation: el constructor fue invocado con un InstanceSpecifier que ya está en uso en el proceso.

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación de AUTOSAR Adaptive R25-11.

Guía del implementador pendiente (complejidad 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#c2f63ed7
Content hash
c2f63ed7
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

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e44e4ef775f3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función Offer activa el reenvío de solicitudes de diagnóstico por parte del demonio del Diagnostic Management (DM) a la correspondiente instancia del manejador [SWS_DM_02152]. Se llama sin parámetros y devuelve de forma síncrona un ara::core::Result<void>, declarado como noexcept y especificado como exception-safe [SWS_DM_02152].

Para el uso adecuado y el tratamiento de errores rigen las siguientes prescripciones:

  • Valor de retorno y errores: en caso de éxito, el resultado contiene un valor vacío. Si el servicio ya se había registrado previamente para esta instancia del manejador, la llamada falla y devuelve el código de error DiagOfferErrc::kAlreadyOffered con semántica de reversión [SWS_DM_02152]. Los dominios de error relacionados definen asimismo para este estado el código de error kAlreadyOffered [SWS_DM_00514] [SWS_DM_00560].
  • Concurrencia: a diferencia de otros manejadores de diagnóstico, que a menudo se identifican como no seguros para subprocesos (como por ejemplo en [SWS_DM_00557]), este método está definido explícitamente como thread-safe [SWS_DM_02152].
  • Interacción en el sistema: mientras una interfaz aún no haya sido provista por la aplicación mediante Offer, el DM reacciona, según el contexto, con valores predeterminados o sustitutivos definidos, como por ejemplo con el estado «Not ready» en consultas DoIP-PowerMode [SWS_DM_01525] o valores sustitutivos para identificadores de grupo [SWS_DM_01527]. Además, la especificación recalca que las funciones de ofrecimiento de diagnóstico son específicas de ara::diag y no deben confundirse con ara::com::Offer AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».

Interpretación: el comportamiento de respuesta síncrono de Offer debería garantizar que el registro del manejador esté completamente finalizado antes de la recepción de solicitudes UDS subsiguientes. Pregunta Q-e6b2916cf4887164 (abierta)

Este texto ha sido generado por una IA a partir de la especificación AUTOSAR R25-11.

Guía del implementador pendiente (complejidad 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#41266190
Content hash
41266190
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

función 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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fe834745387e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

El método virtual puro Read es invocado por el Diagnostic Management (DM) para recuperar los datos de un ExtendedDataRecordElement desde la aplicación ([SWS_DM_02156]). Dado que el DM guarda permanentemente los datos recuperados en la memoria no volátil, el método siempre debe proporcionar un valor. Si los datos no están disponibles en el momento de la llamada, la implementación debe rellenarlos con un patrón de relleno como 0xFF ([SWS_DM_02156]).

La ejecución se realiza de forma asíncrona y devuelve un ara::core::Future que, en caso de éxito, encapsula la estructura ReadOutput ([SWS_DM_02154]). La llamada transfiere los siguientes parámetros ([SWS_DM_02156]):

  • metaInfo: transmite metainformación de la solicitud de diagnóstico subyacente.
  • cancellationHandler: permite consultar una cancelación mediante cancellationHandler.IsCanceled(), así como registrar una función de notificación a través de cancellationHandler.SetNotifier().

Manejo de errores

En caso de error, el Future proporciona un código de respuesta negativo UDS (DiagUdsNrcErrc) o un error específico de la aplicación (ApApplicationError) ([SWS_DM_02156], AUTOSAR_AP_SWS_Diagnostics §7.3.2.6.1 «NRCs created by application»). En caso de que la interfaz de servicio requerida aún no se proporcione o ya no se proporcione mediante offer(), el DM responde con NRC 0x94 (ResourceTemporarilyNotAvailable) ([SWS_DM_01257]). Además, DiagOfferErrc::kAlreadyOffered notifica si el servicio ya se está ofreciendo ([SWS_DM_02156]).

Concurrencia e interacción

El método está especificado como seguro frente a excepciones (exception safe) ([SWS_DM_02156]). La seguridad para subprocesos es condicional y definida por la implementación (implementation defined) ([SWS_DM_02156]). Esto diferencia a Read para Extended-Data-Records de las operaciones de lectura en elementos de datos regulares ([SWS_DM_00596]) o identificadores de datos ([SWS_DM_00640]), los cuales explícitamente no son seguros para subprocesos.

Este texto fue generado por un sistema de IA sobre la base de las especificaciones del release R25-11.

Guía del implementador pendiente (complejidad 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#3ee17c35
Content hash
3ee17c35
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

función StopOffer [SWS_DM_02153] Upstream: RS_Diag_04169

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7a0fc3b7b561 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función StopOffer se llama sobre una instancia de la interfaz Extended-Data-Record (<ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>), la cual se incluye a través de la cabecera #include "<ExtendedDataRecordElementShortname>.h" [SWS_DM_02153]. La llamada se realiza de forma síncrona, no recibe parámetros y carece de valor de retorno (void).

El propósito del método es desactivar el reenvío de mensajes de solicitud entrantes desde el Diagnostic Management (DM) al elemento Extended-Data-Record correspondiente [SWS_DM_02153]. Tras la ejecución, el DM ya no reenvía nuevas solicitudes de diagnóstico al manejador asociado.

Tratamiento de errores y concurrencia

La función está declarada con el identificador noexcept y especificada como segura frente a excepciones (exception safe) [SWS_DM_02153]. En la carga útil (payload) no se definen códigos de error específicos, valores de retorno ni notificaciones a sistemas de monitorización de errores; en caso de error no se lanzan excepciones.

En cuanto a la concurrencia, el método está clasificado expresamente como seguro para subprocesos (thread-safe) [SWS_DM_02153]. Esto representa una particularidad, ya que interfaces de StopOffer afines en ara::diag —como por ejemplo para rutinas [SWS_DM_00558], elementos de datos [SWS_DM_00617] o monitores [SWS_DM_01089]— están especificadas como no seguras para subprocesos. Se asume que las solicitudes que ya se encuentren en procesamiento probablemente se concluyan o se descarten antes de la detención definitiva. Pregunta Q-82e9d44f8ac1969d (abierta)

Interacción en Diagnostic Management

La nomenclatura sigue el patrón de servicio uniforme en AUTOSAR Adaptive, en el cual las unidades funcionales controlan su disponibilidad a través de Offer y StopOffer AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». El elemento se alinea así con interfaces comparables del DM, como por ejemplo para servicios UDS genéricos [SWS_DM_00620], identificadores de datos [SWS_DM_00600], accesos de seguridad [SWS_DM_00767] o solicitudes de reinicio de la ECU [SWS_DM_01017].

Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR Adaptive R25-11.

Guía del implementador pendiente (complejidad 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#99491c19
Content hash
99491c19
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

función 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#d6a679ac
Content hash
d6a679ac
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

función 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#6edc60aa
Content hash
6edc60aa
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

función ~<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#cdd5a905
Content hash
cdd5a905
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

Documentación de las constantes / variables

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