Serve como interface genérica para leitura e escrita de dados de diagnóstico SOVD no lado da aplicação.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e0fb00ce3377ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve como interface genérica para leitura e escrita de dados de diagnóstico SOVD no lado da aplicação.
A classe ara::diag::GenericDiagnosticSovdContent fornece uma interface genérica para que aplicações adaptativas conectem recursos SOVD no sistema AUTOSAR [SWS_DM_02186]. Após a instanciação, a aplicação ativa a recepção de requisições de diagnóstico via Offer(), momento a partir do qual o Diagnostic Management encaminha assincronamente os acessos de leitura e escrita recebidos para Read() e Write()[SWS_DM_02193]. Antes do encerramento, o provisionamento deve ser desativado por meio de StopOffer(), enquanto os acessos em andamento devem considerar o tratador de cancelamento fornecido.
Contexto
A classe ara::diag::GenericDiagnosticSovdContent disponibiliza a interface de programação genérica por meio da qual aplicações adaptativas oferecem e processam recursos de dados para o diagnóstico veicular orientado a serviços (SOVD) em conformidade com o ASAM SOVD [SWS_DM_02186]. Em um cenário típico de diagnóstico, três componentes essenciais estão envolvidos: o cliente SOVD externo, o Diagnostic Management (DM) e o tratador específico da aplicação adaptativa.
Os dados SOVD são estruturados por meio de DiagnosticSovdContent, que consiste em um ou mais elementos do tipo DiagnosticSovdContentElementSWS Diagnostics §7.3.3.3 «Definition of SOVD data». O DM recorre à interface ara::diag::GenericDiagnosticSovdContent para executar requisições de leitura ou escrita para a totalidade dos conteúdos, aplicando nesse processo as regras de conversão de dados predefinidas SWS Diagnostics §7.3.3.3 «Definition of SOVD data».
Diagrama de contexto: Integração de GenericDiagnosticSovdContent entre o cliente SOVD externo, o Diagnostic Management e o tratador específico da aplicação. Fontes: [SWS_DM_01431], [SWS_DM_01432], [SWS_DM_02186].
Ciclo de vida
A instanciação ocorre por meio do construtor mediante a indicação de um ara::core::InstanceSpecifier, que faz referência a um PortPrototype de um DiagnosticDataIdentifierGenericInterface, bem como de um modo de concorrência do tipo SovdContentConcurrencyType[SWS_DM_02187]. A classe foi projetada para ser thread-safe e segura quanto a exceções [SWS_DM_02187].
O construtor de movimentação e o operador de atribuição por movimentação são definidos com visibilidade protegida (protected) [SWS_DM_02189], [SWS_DM_02190]. Interpretação: a declaração protegida indica que instâncias são implementadas como hierarquias de classes derivadas e que uma movimentação direta a partir do exterior deve ser evitada. Pergunta Q-57d60744ffc54899 (aberta) Para liberação, existe um destrutor virtual [SWS_DM_02188].
Após a construção, a instância encontra-se no estado de não provisionamento. Somente por meio da chamada de Offer() o DM é autorizado a encaminhar requisições de diagnóstico recebidas para a instância [SWS_DM_02193]. Antes do desligamento ou no término do serviço, o encaminhamento é revogado por meio de StopOffer()[SWS_DM_02194].
Caminho de utilização
O fluxo regular compreende a liberação do serviço, a recepção de requisições assíncronas e o cancelamento final de registro:
A aplicação instancia sua implementação de GenericDiagnosticSovdContent e registra-se junto ao DM por meio de Offer()[SWS_DM_02193].
Se o DM receber uma requisição de leitura do cliente (“Read a data resource from an Entity”), ele chama o método Read()[SWS_DM_01432], [SWS_DM_02191]. O método retorna um ara::core::Future<DiagnosticSovdContentData>, que disponibiliza os dados de conteúdo abstratos ou um erro de SOVD [SWS_DM_02191]. A partir desses dados, o DM compõe a resposta SOVD [SWS_DM_01432], [SWS_DM_02164], [SWS_DM_02165].
Se o DM receber uma requisição de escrita (“Write a data resource from an Entity”), ele a delega ao tratador por meio de Write()[SWS_DM_01431], [SWS_DM_02166], [SWS_DM_02192]. Os dados permanecem válidos até que a promise correspondente seja cumprida ou a operação seja cancelada [SWS_DM_02192].
Para encerrar o tratamento, a aplicação chama StopOffer()[SWS_DM_02194].
Diagrama de sequência: Fluxo de registro de serviço, consulta de leitura assíncrona e encerramento de serviço. Fontes: [SWS_DM_01432], [SWS_DM_02191], [SWS_DM_02193], [SWS_DM_02194].
Cenários de erro
Se Offer() for chamado enquanto o serviço já estiver sendo oferecido, a operação falhará com o código de erro DiagOfferErrc::kAlreadyOffered[SWS_DM_02193].
Caso ocorram erros específicos da aplicação durante a obtenção de dados em Read() ou durante a escrita em Write(), o ara::core::Future retornado será cumprido com um erro de SOVD correspondente [SWS_DM_02191], [SWS_DM_02192], após o que o DM transmitirá uma resposta SOVD negativa ao cliente.
Adicionalmente, é transmitido a ambas as chamadas um ara::diag::CancellationHandler, que sinaliza caso a operação seja cancelada prematuramente [SWS_DM_02191], [SWS_DM_02192]. Esse tratador não pode ser armazenado nem chamado além do tempo de vida da operação [SWS_DM_02191], [SWS_DM_02192].
Este guia baseia-se exclusivamente nas informações da especificação AUTOSAR Adaptive Platform Release R25-11.
This Offer will enable the DM to forward request messages to this handler.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5a32b6fc61beProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O método ara::diag::GenericDiagnosticSovdContent::Offer ativa o Diagnostic Management (DM) para encaminhar mensagens de requisição (request messages) recebidas para a instância do handler [SWS_DM_02193]. A chamada ocorre de forma síncrona, não aceita parâmetros e sinaliza o resultado através do tipo de retorno ara::core::Result<void>[SWS_DM_02193]. Um resultado positivo confirma o registro bem-sucedido do serviço junto ao DM [SWS_DM_02193].
Tratamento de erros
Se o registro falhar, o método retorna um ara::core::Result com um código de erro [SWS_DM_02193]:
DiagOfferErrc::kAlreadyOffered: Ocorre quando o serviço já foi oferecido anteriormente; neste caso, aplica-se a semântica de rollback [SWS_DM_02193]. Este código de erro corresponde ao status geral de diagnóstico kAlreadyOffered em DiagErrc[SWS_DM_00514] bem como DiagReportingErrc[SWS_DM_00560].
Simultaneidade e restrições
A função é especificada como noexcept e exception safe[SWS_DM_02193]. Além disso, ela é explicitamente classificada como thread-safe[SWS_DM_02193]. Isso diferencia GenericDiagnosticSovdContent::Offer de forma substancial da maioria dos outros métodos de Offer do DM, como GenericRoutine::Offer[SWS_DM_00557], GenericUDSService::Offer[SWS_DM_00619] ou CommunicationControl::Offer[SWS_DM_00809], os quais são declarados, cada um, como not thread-safe.
Interação
A disponibilização via Offer é o pré-requisito necessário para que o DM possa encaminhar requisições para a aplicação [SWS_DM_02193]. Enquanto a disponibilização não tiver ocorrido, o DM não pode atender a requisições direcionadas à interface, o que corresponde ao princípio geral de disponibilização no gerenciamento de diagnóstico do AUTOSAR [SWS_DM_01525], [SWS_DM_01527]. A nomenclatura segue o padrão estabelecido no DM, escolhido de forma análoga aos serviços de monitor AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Esta nota de uso baseia-se na especificação AUTOSAR Adaptive Platform Release R25-11.
Called for "Read Single Data Value request" for the specified SOVD Content.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e27f0077c84cProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Uso e semântica de chamada
O método puramente virtual Read da classe ara::diag::GenericDiagnosticSovdContent serve para o processamento de requisições do tipo «Read Single Data Value» para o conteúdo SOVD especificado [SWS_DM_02191]. Na chamada pelo Diagnostic Manager, são passados o identificador do conteúdo sovd_content_name, informações de diagnóstico contextuais através de meta_info bem como um cancellation_handler[SWS_DM_02191]. Através do cancellation_handler, a aplicação pode verificar se a requisição em andamento foi cancelada; esta instância não pode ser armazenada ou referenciada além do tempo de vida da operação [SWS_DM_02191]. A disponibilização dos dados ocorre de forma assíncrona através do valor de retorno ara::core::Future<DiagnosticSovdContentData>, que encapsula os dados abstratos do conteúdo SOVD em caso de sucesso [SWS_DM_02191].
Tratamento de erros
O método é especificado como noexcept e exception safe, de modo que os erros ocorridos não devem ser reportados via C++-Exceptions [SWS_DM_02191]. Em vez disso, em caso de erro, um SOVD Error correspondente é retornado através do ara::core::Future, o qual é traduzido em uma mensagem de resposta negativa [SWS_DM_02191]. Caso a interface ainda não seja, ou não seja mais, disponibilizada pela aplicação por meio de offer(), o Diagnostic Manager responde a requisições de serviço recebidas com o código de resposta negativa NRC 0x94 (ResourceTemporarilyNotAvailable) [SWS_DM_01257].
Concorrência e interação
A função de interface é definida como thread-safe[SWS_DM_02191]. Se acessos de leitura e escrita podem ser chamados simultaneamente pelo Diagnostic Manager é determinado através da variável de configuração readWrite na estrutura ara::diag::SovdContentConcurrencyType[SWS_DM_02185]. Apenas quando esta estiver configurada como kConcurrent é que as chamadas de Read e Write ocorrem de forma concorrente, enquanto o valor padrão kNotConcurrent exclui acessos simultâneos [SWS_DM_02185].
Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.
This StopOffer will disable the forwarding of request messages from DM.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a2e6fc88edb0ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método ara::diag::GenericDiagnosticSovdContent::StopOffer encerra a disponibilização do conteúdo de diagnóstico perante o Diagnostic Management (DM) e impede o encaminhamento de mensagens de requisição recebidas a partir da chamada [SWS_DM_02194]. A função requer o arquivo de cabeçalho ara/diag/generic_diagnostic_sovd_content.h, não espera parâmetros e não retorna nenhum valor [SWS_DM_02194].
Em relação ao tratamento de erros, a operação é declarada como noexcept e considerada totalmente segura contra exceções (exception safe) [SWS_DM_02194]. Não são transmitidos códigos de erro nem status de retorno; uma falha na chamada não está prevista no design da API.
No domínio da simultaneidade, o método destaca-se por ser explicitamente especificado como thread-safe (thread-safe) [SWS_DM_02194]. Isso constitui uma particularidade essencial em comparação com muitas outras interfaces de diagnóstico, nas quais StopOffer é definido como não thread-safe, como, por exemplo, em GenericUDSService[SWS_DM_00620], GenericRoutine[SWS_DM_00558] ou CommunicationControl[SWS_DM_00810].
O esquema de nomenclatura e comportamento segue o padrão geral do AUTOSAR para mecanismos de Offer e StopOffer destinados ao controle do fluxo de mensagens entre o DM e os handlers da aplicação AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». Interpretação: A chamada deve ocorrer tipicamente antes da destruição do objeto handler ou em caso de indisponibilidade temporária do serviço SOVD, para evitar com confiabilidade requisições órfãs. Pergunta Q-5a2db04b82fed06b (aberta)
Esta nota de utilização foi gerada de forma automatizada com base na especificação AUTOSAR Adaptive R25-11.
Called for "Write a Data Value" request for the specified SOVD Content.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 545b938dce05Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método [SWS_DM_02192] da classe ara::diag::GenericDiagnosticSovdContent é chamado pelo Diagnostic Management (DM) assim que o método «Write a data resource» para um elemento de diagnóstico for recebido via ASAM SOVD [SWS_DM_02166]. A disponibilização desta operação de escrita é opcional e pressupõe a presença da configuração DiagnosticSovdData.DiagnosticSovdMethod.put[SWS_DM_01431].
Na chamada, o DM passa os seguintes parâmetros [SWS_DM_02192]:
sovd_content_name: Nome do conteúdo SOVD endereçado.
sovd_abstract_content_data: Os dados úteis abstratos (DiagnosticSovdContentData), compostos pelo nome do elemento e pelo valor convertido [SWS_DM_02166]. Estes dados permanecem válidos até que a promise seja cumprida ou o processamento seja cancelado através do cancellation handler.
meta_info: Metainformações adicionais sobre o contexto da requisição.
cancellation_handler: Serve para a detecção de um cancelamento da operação em andamento e não pode ser armazenado ou referenciado além do tempo de vida da função.
A função é especificada como noexcept, considerada segura contra exceções e retorna um ara::core::Future<void> que, em caso de sucesso, transporta void ou, em caso de resposta negativa, transporta um erro SOVD [SWS_DM_02192]. O método é declarado como thread-safe [SWS_DM_02192]; se o DM pode executar métodos de leitura e escrita de forma concorrente é regulado pelo parâmetro readWrite em ara::diag::SovdContentConcurrencyType[SWS_DM_02185].
Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão