DEENESPTFRRUARHIKOZHNL

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

Guia do utilizadorGERADO POR IA

Serve para a disponibilização, pelo lado da aplicação, de dados de diagnóstico estendidos para o Diagnostic Management adaptativo.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0446a63ad449 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve para a disponibilização, pelo lado da aplicação, de dados de diagnóstico estendidos para o Diagnostic Management adaptativo.

A classe <ExtendedDataRecordElementInterface> serve às aplicações adaptativas como interface para a disponibilização de dados de diagnóstico estendidos ao Diagnostic Management ([SWS_DM_02152]). Após a instanciação e a ativação através de Offer(), o handler implementa a disponibilização assíncrona dos dados através do método puramente virtual Read() ([SWS_DM_02156]). Como o Diagnostic Manager guarda os registos de forma permanente na memória não volátil, os valores não disponíveis têm de ser obrigatoriamente preenchidos com um padrão de preenchimento. A interface não pode ser copiada nem movida, e o seu destrutor não é thread-safe.

Contexto

A interface <ExtendedDataRecordElementInterface> serve no subsistema de diagnóstico da AUTOSAR Adaptive Platform para a disponibilização de dados de diagnóstico estendidos específicos da aplicação (Extended Data Records) para o Diagnostic Management (DM) (AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»). Um Extended Data Record contém dados adicionais relacionados com o diagnóstico, como valores de contadores ou informações de ambiente, atribuídos a um evento de erro. A classe funciona como interface base abstrata para componentes handler do lado da aplicação. Entre os parceiros de interação encontram-se o Diagnostic Manager (DM), que solicita e coordena operações de leitura, a implementação concreta do handler dentro da aplicação, bem como a memória não volátil (Non-Volatile Memory, NVM), na qual o DM armazena permanentemente os dados consultados ([SWS_DM_02156]). Interpretation: O acionamento de Read() é presumivelmente desencadeado por um processamento interno de diagnóstico no DM, por exemplo aquando da ocorrência de um evento de erro ou em mudanças de estado de um Diagnostic Trouble Code. Pergunta Q-f80be8c2bd5697fc (aberta)

Context Handler ExtendedDataRecordElementInterface (Anwendungs-Handler) DM Diagnostic Management (DM) Handler->DM Offer() / StopOffer() DM->Handler Read(metaInfo, cancellationHandler) NVM Memória não volátil (NVM) DM->NVM Persistierung

Diagrama de contexto: Interação entre o handler da aplicação, o Diagnostic Management e a memória não volátil. Fontes: [SWS_DM_02152], [SWS_DM_02156], AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»

Ciclo de vida

A criação é efetuada através do construtor parametrizado com a indicação de um ara::core::InstanceSpecifier bem como do modo de concorrência ara::diag::ConcurrencyType ([SWS_DM_02158], AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»). A construção é thread-safe e segura contra exceções (exception safe). Através do parâmetro concurrencyType, define-se se as chamadas da interface podem ser processadas de forma concorrente (kConcurrent) ou sequencial (kNotConcurrent) ([SWS_DM_02158]). As operações de cópia e movimentação estão totalmente impedidas: o construtor de cópia ([SWS_DM_02147]), a atribuição por cópia ([SWS_DM_02148]), o construtor de movimentação ([SWS_DM_02149]) e a atribuição por movimentação ([SWS_DM_02150]) foram eliminados (=delete). Uma instância possui, assim, uma identidade fixa e não pode ser duplicada nem transferida.

Após a instanciação, o objeto encontra-se inicialmente no estado inativo. Apenas através da chamada de Offer() ([SWS_DM_02152]) o serviço é ativado e o DM encaminha pedidos para o handler. Por meio de StopOffer() ([SWS_DM_02153]), este encaminhamento pode ser interrompido a qualquer momento. A destruição ocorre através do destrutor virtual ~<ExtendedDataRecordElementInterface>() ([SWS_DM_02151]). Este é, na verdade, seguro contra exceções, mas explicitamente não thread-safe (not thread-safe) ([SWS_DM_02151]). Interpretation: StopOffer() deverá ter de ser chamado antes da destruição do objeto handler, para assegurar que não sejam recebidos mais pedidos enquanto o objeto estiver a ser libertado. Pergunta Q-c77dda63f0e8798a (aberta)

Caminho de utilização

O fluxo regular compreende a disponibilização, a resposta assíncrona a pedidos de leitura e a desativação do serviço:

  • Inicialização: A aplicação instancia a classe derivada com o identificador de porta adequado e a configuração de concorrência ([SWS_DM_02158]).
  • Oferta do serviço: Através da chamada de Offer(), é ativado o encaminhamento de pedidos no DM ([SWS_DM_02152]). O método retorna um ara::core::Result<void>.
  • Consulta de dados: Quando chega um pedido de leitura, o DM chama o método puramente virtual Read() ([SWS_DM_02156]). Neste processo, são transmitidos os metadados do pedido (metaInfo) e um cancellationHandler.
  • Tratamento de cancelamento e retorno: O handler pode verificar através de cancellationHandler.IsCanceled() se a conversação foi cancelada ou registar uma notificação via cancellationHandler.SetNotifier() ([SWS_DM_02156]). O resultado é fornecido assincronamente através de um ara::core::Future com um objeto ReadOutput ([SWS_DM_02156], [SWS_DM_02154]).
  • Persistência: O DM assume os dados obtidos e armazena-os permanentemente na memória não volátil ([SWS_DM_02156]).
  • Cancelamento do registo do serviço: Antes do encerramento, a aplicação chama StopOffer() ([SWS_DM_02153]) para terminar o encaminhamento pelo DM antes que a instância seja destruída ([SWS_DM_02151]).
Fluxo de disponibilização e leitura de Extended Data RecordsAplicaçãoHandlerDMNVMUse Case: Inicialização e registro de serviçoKonstruktion(instanceSpec, concurrencyType)Offer()Registrierung aktivierenResult<void>Use Case: DiagnoseabfrageRead(metaInfo, cancellationHandler)Determinar dados / padrão de preenchimento 0xFFFuture<ReadOutput>Persistência dos dados de recordUse Case: DienstabmeldungStopOffer()Weiterleitung deaktivieren

Diagrama de sequência: Fluxo típico da disponibilização e consulta de dados. Fontes: [SWS_DM_02152], [SWS_DM_02153], [SWS_DM_02156], [SWS_DM_02158]

Cenários de erro

Durante a utilização da interface, devem ser observadas várias condições de erro e pré-condições:

  • Erros de construção e violações de modelo: Ao chamar o construtor, podem ocorrer erros de modelação ([SWS_DM_02158]). Entre estes incluem-se InstanceSpecifierMappingIntegrityViolation (o identificador não pode ser resolvido ou não referencia um PortPrototype), PortInterfaceMappingViolation (ausência de referenciação por um DiagnosticDataPortMapping), ProcessMappingViolation (nenhum processo correspondente encontrado no modelo), bem como InstanceSpecifierAlreadyInUseViolation (o identificador já está a ser utilizado no processo) ([SWS_DM_02158]).
  • Oferta múltipla: Se Offer() for chamado quando o serviço já estiver a ser ativamente oferecido, a chamada falha e retorna o código de erro DiagOfferErrc::kAlreadyOffered ([SWS_DM_02152]).
  • Dados não disponíveis em pedidos de leitura: Uma vez que o DM armazena os dados na memória não volátil, aquando de uma chamada de Read() tem de ser obrigatoriamente retornado um valor ([SWS_DM_02156]). Se os dados não estiverem disponíveis no momento da consulta, a implementação do handler tem de preenchê-los com um padrão de preenchimento definido como 0xFF ([SWS_DM_02156]).
  • Erros de aplicação e de diagnóstico: Se a disponibilização de dados falhar por completo, o ara::core::Future retornado pode conter um código de erro NRC de diagnóstico correspondente (DiagUdsNrcErrc) ou um erro específico da aplicação (ApApplicationError) ([SWS_DM_02156]).
  • Perigo na destruição: Dado que o destrutor não é thread-safe ([SWS_DM_02151]), a destruição do objeto durante chamadas em execução paralela ou sem um StopOffer() prévio ([SWS_DM_02153]) resulta em comportamento indefinido.

Este guia foi gerado por uma IA com base na especificação AUTOSAR R25-11.

Mapa de membros

Diagrama de classes

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 detalhes

Selecione uma entrada no í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 função

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

ara::core::Result< void > Offer () noexcept;
Read função

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 função

This StopOffer will disable the forwarding of request messages from DM

void StopOffer () noexcept;

Destruction of a DataElement

virtual ~<ExtendedDataRecordElementInterface6> () noexcept;

Operadores

operator= função 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 aninhados

Documentação dos métodos

função <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#0580598f
Content hash
0580598f
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

função <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#a51d4a4e
Content hash
a51d4a4e
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

função <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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5f6f8ec51798 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função <ExtendedDataRecordElementInterface> serve como construtor para a criação de um DataElement para uma interface de registro de dados estendidos com base em um ara::core::InstanceSpecifier [SWS_DM_02158]. A declaração localiza-se no escopo <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface> e requer a inclusão do arquivo de cabeçalho #include "<ExtendedDataRecordElementShortname>.h" AUTOSAR_AP_SWS_Diagnostics §8.49.2.2.1.6.

A chamada síncrona requer dois parâmetros de entrada [SWS_DM_02158]:

  • instanceSpec (ara::core::InstanceSpecifier): Identificador da instância de serviço concreta no modelo AUTOSAR.
  • concurrencyType (ara::diag::ConcurrencyType): Determina se a interface é instanciada como thread-safe (kConcurrent) ou não thread-safe (kNotConcurrent).

Concorrência e segurança contra erros

A própria função construtora é declarada como noexcept e especificada como thread-safe bem como exception safe [SWS_DM_02158]. Interpretação: Como a função é definida como noexcept, erros de modelagem e inicialização não devem ser sinalizados via C++-Exceptions, mas sim através das violations definidas no framework Adaptive [SWS_DM_02158]. Pergunta Q-9ce91764c3e8364e (aberta)

Tratamento de erros e violações de modelo

Em caso de configuração incorreta do modelo ou identificadores inválidos, ocorrem violations específicas [SWS_DM_02158]:

  • InstanceSpecifierMappingIntegrityViolation: O identificador não pode ser resolvido no contexto do processo ou não referencia um PortPrototype.
  • PortInterfaceMappingViolation: Um PortPrototype tipificado por DiagnosticExtendedDataRecordInterface não é referenciado por um DiagnosticDataPortMapping.
  • ProcessMappingViolation: Existe uma InstanceRef correspondente, mas não foi encontrado nenhum processo modelado correspondente para o processo de tempo de execução.
  • InstanceSpecifierAlreadyInUseViolation: O construtor foi chamado com um InstanceSpecifier que já está em uso no processo.

Esta nota de uso foi gerada automaticamente com base na especificação do AUTOSAR Adaptive R25-11.

Guia do implementador em breve (complexidade 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#3e0f9adc
Content hash
3e0f9adc
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

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e44e4ef775f3 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Offer ativa o encaminhamento de requisições de diagnóstico pelo Diagnostic Management Daemon (DM) para a respectiva instância do handler [SWS_DM_02152]. Ela é chamada sem parâmetros e retorna sincronicamente um ara::core::Result<void>, declarado como noexcept e especificado como exception-safe [SWS_DM_02152].

Para a utilização correta e o tratamento de erros, aplicam-se as seguintes diretrizes:

  • Valor de retorno e erros: Em caso de sucesso, o resultado contém um valor vazio. Se o serviço já tiver sido registrado anteriormente para esta instância de handler, a chamada falha e retorna o código de erro DiagOfferErrc::kAlreadyOffered com semântica de rollback [SWS_DM_02152]. Domínios de erro correlatos também definem o código de erro kAlreadyOffered para este estado [SWS_DM_00514] [SWS_DM_00560].
  • Simultaneidade: Ao contrário de outros handlers de diagnóstico, frequentemente designados como não thread-safe (como em [SWS_DM_00557]), este método é explicitamente definido como thread-safe [SWS_DM_02152].
  • Interação no sistema: Enquanto uma interface ainda não tiver sido disponibilizada pela aplicação por meio de Offer, o DM reage, conforme o contexto, com valores padrão ou substitutos definidos, como, por exemplo, com o status «Not ready» em consultas de DoIP-PowerMode [SWS_DM_01525] ou valores substitutos para identificadores de grupo [SWS_DM_01527]. Além disso, a especificação enfatiza que funções de offer de diagnóstico são específicas para ara::diag e não devem ser confundidas com ara::com::Offer AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».

Interpretação: O comportamento de retorno síncrono de Offer deve garantir que o registro do handler seja completamente concluído antes da recepção de requisições UDS subsequentes. Pergunta Q-e6b2916cf4887164 (aberta)

Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.

Guia do implementador em breve (complexidade 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#3a58b6de
Content hash
3a58b6de
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

função 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).

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: fe834745387e Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

O método puramente virtual Read é chamado pelo Diagnostic Management (DM) para obter os dados de um ExtendedDataRecordElement a partir da aplicação ([SWS_DM_02156]). Como o DM salva os dados obtidos de forma duradoura na memória não volátil, o método deve sempre fornecer um valor. Se os dados não estiverem disponíveis no momento da chamada, eles deverão ser preenchidos pela implementação com um padrão de preenchimento como 0xFF ([SWS_DM_02156]).

A execução ocorre de forma assíncrona e retorna um ara::core::Future, que encapsula a estrutura ReadOutput em caso de sucesso ([SWS_DM_02154]). A chamada passa os seguintes parâmetros ([SWS_DM_02156]):

  • metaInfo: transmite metainformações da requisição de diagnóstico subjacente.
  • cancellationHandler: permite a consulta de um cancelamento por meio de cancellationHandler.IsCanceled(), bem como o registro de uma função de notificação via cancellationHandler.SetNotifier().

Tratamento de erros

Em caso de erro, o Future disponibiliza um código de resposta negativa UDS (DiagUdsNrcErrc) ou um erro específico da aplicação (ApApplicationError) ([SWS_DM_02156], AUTOSAR_AP_SWS_Diagnostics §7.3.2.6.1 «NRCs created by application»). Caso a interface de serviço necessária ainda não seja ou não seja mais disponibilizada via offer(), o DM responde com NRC 0x94 (ResourceTemporarilyNotAvailable) ([SWS_DM_01257]). Além disso, DiagOfferErrc::kAlreadyOffered reporta se o serviço já estiver sendo oferecido ([SWS_DM_02156]).

Concorrência e interação

O método é especificado como seguro contra exceções (exception safe) ([SWS_DM_02156]). A segurança de threads é condicional e definida pela implementação (implementation defined) ([SWS_DM_02156]). Isso diferencia Read para Extended Data Records de operações de leitura em elementos de dados regulares ([SWS_DM_00596]) ou identificadores de dados ([SWS_DM_00640]), que são expressamente não thread-safe.

Este texto foi gerado por um sistema de IA com base nas especificações do release R25-11.

Guia do implementador em breve (complexidade 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#e549b4c2
Content hash
e549b4c2
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

função StopOffer [SWS_DM_02153] Upstream: RS_Diag_04169

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 7a0fc3b7b561 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função StopOffer é chamada em uma instância da interface de Extended-Data-Record (<ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>), a qual é incluída através do cabeçalho #include "<ExtendedDataRecordElementShortname>.h" [SWS_DM_02153]. A chamada ocorre de forma síncrona, não aceita parâmetros e não possui valor de retorno (void).

A finalidade do método é desativar o encaminhamento de mensagens de requisição recebidas do Diagnostic Management (DM) para o respectivo elemento de Extended-Data-Record [SWS_DM_02153]. Após a execução, o DM não encaminha mais novas requisições de diagnóstico para o handler associado.

Tratamento de erros e simultaneidade

A função é declarada com o identificador noexcept e especificada como segura contra exceções (exception safe) [SWS_DM_02153]. Códigos de erro específicos, valores de retorno ou notificações para monitoramentos de erro não são definidos no payload; em caso de erro, nenhuma exception é lançada.

Em relação à simultaneidade, o método é expressamente classificado como thread-safe (thread-safe) [SWS_DM_02153]. Isso representa uma particularidade, já que interfaces StopOffer correlatas em ara::diag – como, por exemplo, para rotinas [SWS_DM_00558], elementos de dados [SWS_DM_00617] ou monitores [SWS_DM_01089] – são especificadas como não thread-safe. Requisições que já estejam em processamento presumivelmente ainda serão concluídas ou descartadas antes da parada definitiva. Pergunta Q-82e9d44f8ac1969d (aberta)

Interação no Diagnostic Management

A nomenclatura segue o padrão uniforme de serviços no AUTOSAR Adaptive, no qual unidades funcionais controlam sua disponibilidade via Offer e StopOffer AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». O elemento alinha-se, assim, a interfaces comparáveis do DM, como para serviços UDS genéricos [SWS_DM_00620], identificadores de dados [SWS_DM_00600], acessos de segurança [SWS_DM_00767] ou requisições de reset da ECU [SWS_DM_01017].

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR Adaptive R25-11.

Guia do implementador em breve (complexidade 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#b56a55b9
Content hash
b56a55b9
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

função 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#95362678
Content hash
95362678
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

função 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#5485f145
Content hash
5485f145
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

função ~<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#102d6cb5
Content hash
102d6cb5
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

Documentação das constantes / variáveis

variável <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#5fc32134
Content hash
5fc32134
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