Permite que aplicações processem e respondam a requisições de operações SOVD genéricas do Diagnostic Manager.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 23f008b064deProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite que aplicações processem e respondam a requisições de operações SOVD genéricas do Diagnostic Manager.
A classe base serve para a implementação de manipuladores genéricos de operações SOVD para o processamento de requisições de execução no Diagnostic Management [SWS_DM_02203]. Após a instanciação, a aplicação ativa a recepção por meio de Offer(), após o que o Diagnostic Manager encaminha as requisições recebidas através da interface assíncrona StartExecution[SWS_DM_02174][SWS_DM_02210]. Os dados de conteúdo passados e o manipulador de cancelamento estão estritamente vinculados à duração da operação [SWS_DM_02210].
Contexto
A classe ara::diag::GenericDiagnosticSovdOperation disponibiliza uma interface genérica para a execução de operações no âmbito do ASAM SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02203]. Ela atua como elo de ligação entre a plataforma de diagnóstico e a implementação específica da aplicação de rotinas ou ações diagnósticas. Quando um cliente SOVD externo requisita a execução de uma operação, a instância do servidor de diagnóstico disponibiliza o método SOVD correspondente AUTOSAR_AP_SWS_Diagnostics §7.3.3.5.5.5 «Operations – Start execution of an operation»[SWS_DM_01396]. Assim que a autorização ou a verificação de um Proximity Challenge exigido for concluída com sucesso, o Diagnostic Manager (DM) encaminha a chamada para o método StartExecution da instância de manipulador registrada [SWS_DM_02174].
Ciclo de vida
A criação de uma instância ocorre por meio do construtor, com a especificação de um ara::core::InstanceSpecifier que aponta para um PortPrototype, bem como de um tipo de concorrência (ConcurrencyType) [SWS_DM_02204]. Como o construtor de movimento [SWS_DM_02206] e o operador de atribuição por movimento [SWS_DM_02207] são declarados como protected, a classe foi concebida como classe base para manipuladores derivados específicos da aplicação. Após a instanciação, o objeto encontra-se no estado inativo e não aceita requisições. Por meio de Offer(), é ativado o encaminhamento de requisições pelo Diagnostic Manager [SWS_DM_02211]. Com StopOffer(), esse encaminhamento pode ser novamente desativado [SWS_DM_02212]. Ao destruir a instância, o destrutor virtual assegura uma limpeza adequada [SWS_DM_02205]. O construtor, o destrutor e as operações de movimento são especificados como seguros para threads, enquanto Offer() e StopOffer() não são seguros para threads e devem ser chamados tipicamente durante a fase de inicialização ou de shutdown do processo.
O fluxo regular compreende a disponibilização do handler, o recebimento de solicitações de operação bem como o fornecimento assíncrono da resposta:
Oferecer serviço: a aplicação chama Offer(), autorizando o Diagnostic Manager a encaminhar solicitações SOVD recebidas para o objeto [SWS_DM_02211].
Início da operação: após a chegada do método SOVD e a aprovação na verificação do Proximity Challenge, o DM chama o método puramente virtual StartExecution[SWS_DM_02174][SWS_DM_02210]. Nesse processo, são passados o nome da operação SOVD (sovd_operation_name), dados úteis (sovd_content_data), metainformações (meta_info), bem como um CancellationHandler[SWS_DM_02210].
Retorno do resultado: o método retorna um ara::core::Future, que contém uma resposta síncrona (StartSynchronousExecutionResponse) ou uma resposta assíncrona (StartAsynchronousExecutionResponse) [SWS_DM_02210]. Em uma operação síncrona, o DM assume os dados do resultado para gerar o corpo da resposta SOVD [SWS_DM_02176].
Encerrar serviço: antes da destruição do objeto, a aplicação encerra o encaminhamento por meio de StopOffer()[SWS_DM_02212].
Durante o uso da interface, podem ocorrer erros administrativos bem como específicos do protocolo:
Já oferecido: uma nova chamada de Offer() em uma instância já oferecida falha com o código de erro DiagOfferErrc::kAlreadyOffered[SWS_DM_02211].
Erro SOVD: se a execução da operação falhar, deve-se retornar no ara::core::Future um código de resposta negativa correspondente conforme a ISO 17978-3 ou ASAM SOVD 1.1 [SWS_DM_02210].
Cancelamento: a aplicação é notificada por meio do objeto cancellation_handler passado caso a solicitação em andamento seja cancelada. A especificação proíbe expressamente armazenar ou acessar esse handler além do tempo de vida da operação em andamento [SWS_DM_02210]. Além disso, os dados de entrada passados em sovd_content_data permanecem válidos apenas até que a promise correspondente seja cumprida ou o processamento seja cancelado [SWS_DM_02210].
Este guia baseia-se exclusivamente na especificação AUTOSAR Adaptive Platform R25-11 (módulo diag) e foi curado automaticamente.
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: e7a3d094ee66ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método Offer da classe ara::diag::GenericDiagnosticSovdOperation habilita o encaminhamento de requisições de diagnóstico e de serviço recebidas do Diagnostic Management (DM) para o respectivo manipulador [SWS_DM_02211]. A função não recebe parâmetros, declara noexcept e retorna um ara::core::Result<void>[SWS_DM_02211]. Interpretação: Como nenhum ara::core::Future é retornado, a ativação do encaminhamento deve ser concluída de forma síncrona durante a chamada do método. Pergunta Q-d9213a2118672440 (aberta)
No que diz respeito ao tratamento de erros, a interface assegura semântica de rollback [SWS_DM_02211]. Se o serviço já tiver sido oferecido anteriormente para esta instância de manipulador, a chamada falha e retorna o código de erro DiagOfferErrc::kAlreadyOffered[SWS_DM_02211]. Este estado de erro corresponde ao padrão de erro definido em domínios de erro de diagnóstico para múltiplos registros [SWS_DM_00514].
Para a concorrência e o contexto de chamada, aplicam-se as seguintes restrições:
Thread-safety: A operação é especificada como not thread-safe, porém exception safe[SWS_DM_02211]. Chamadas paralelas na mesma instância de manipulador devem ser sincronizadas pelo lado da aplicação.
Ordem dos estados:Offer deve ser chamado antes do encaminhamento de requisições [SWS_DM_02211]. Uma nova chamada sem revogação intermediária leva a um erro.
No sistema global, Offer segue o padrão uniforme de disponibilização do gerenciamento de diagnóstico Adaptive, como definido de forma análoga também para rotinas genéricas [SWS_DM_00557], serviços UDS [SWS_DM_00619] ou controles de comunicação [SWS_DM_00809]. Este princípio foi concebido especificamente para ara::diag e não deve ser confundido com a disponibilização de serviços em ara::com (SWS Diagnostics §7.3.4.1.2 «Monitors»).
Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.
sovd_operation_name: Nome da operação SOVD a ser executada [SWS_DM_02210].
sovd_content_data: Dados de entrada da operação, que permanecem válidos até que a respectiva promise seja cumprida ou o processamento seja cancelado através do cancellation handler [SWS_DM_02210].
meta_info: Metainformações adicionais sobre o contexto de diagnóstico [SWS_DM_02210].
cancellation_handler: Reporta um cancelamento da requisição em andamento; este objeto não pode ser armazenado ou referenciado além do tempo de vida da operação [SWS_DM_02210].
Como valor de retorno, a função fornece um ara::core::Future com um ara::core::Variant de StartSynchronousExecutionResponse ou StartAsynchronousExecutionResponse[SWS_DM_02210]. Na execução síncrona, o Diagnostic Management define os parâmetros no corpo de resposta SOVD a partir dos dados de conteúdo da resposta [SWS_DM_02176]. No processamento assíncrono, o Diagnostic Management atribui um identificador exclusivo (id) para identificação da operação em andamento e define o estado de execução [SWS_DM_02177].
A future with either StartSynchronousExecutionResponse or StartAsynchronousExecutionResponse(for a positive response message) or a SOVD Error (for an negative response message)
Fehler
Fehlercode
Beschreibung
Please use an applicable SOVD error code, as defined in ISO 17978-3 / ASAM SOVD 1.1.
Request a governed re-review of this record. The record is not changed immediately.
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: ab28d5476140ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método StopOffer da classe ara::diag::GenericDiagnosticSovdOperation do cabeçalho ara/diag/generic_diagnostic_sovd_operation.h serve para desativar o encaminhamento de mensagens de requisição recebidas do Diagnostic Management (DM) para a operação [SWS_DM_02212].
Uso e semântica: A função possui a assinatura void StopOffer() noexcept;, não recebe parâmetros e não retorna nenhum valor de retorno [SWS_DM_02212]. Como não estão definidos tipos de retorno assíncronos como futures ou callbacks, a desativação deve se tornar efetiva de forma síncrona imediatamente durante a chamada. Pergunta Q-b0723617991a4e39 (aberta) Ela é declarada como segura contra exceções (exception safe) [SWS_DM_02212].
Concorrência e tratamento de erros: A interface é especificada como não segura para threads (not thread-safe) [SWS_DM_02212]. Portanto, acessos paralelos à mesma instância devem ser sincronizados no nível do usuário. Não são retornados códigos de erro nem são geradas mensagens específicas de DET ou DEM [SWS_DM_02212].
Interação:StopOffer segue o padrão padronizado de provedor de serviços do AUTOSAR Adaptive Diag. Métodos análogos existem para outras interfaces de diagnóstico, como rotinas genéricas [SWS_DM_00558], serviços UDS genéricos [SWS_DM_00620], identificadores de dados [SWS_DM_00639] ou serviços de download [SWS_DM_00793]. Embora o nome seja inspirado em ara::com, trata-se de uma implementação de diagnóstico independente AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Este texto foi criado por uma IA e serve como guia de orientação com base na especificação AUTOSAR.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão