Serve para disponibilizar o estado de identificação de grupo DoIP para o Diagnostic Manager.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: dea27beb11bbProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve para disponibilizar o estado de identificação de grupo DoIP para o Diagnostic Manager.
A classe ara::diag::DoIPGroupIdentification serve como interface abstrata para aplicações Adaptive, de modo a disponibilizar ao Diagnostic Management o estado atual da identificação de grupo DoIP [SWS_DM_00724]. Após a instanciação específica da porta, a aplicação ativa o reencaminhamento de pedidos através de Offer() e termina-o antes da destruição do objeto através de StopOffer()[SWS_DM_00725]. A instância do gestor é única, não é copiável nem movível e responde a consultas assincronamente através de um ara::core::Future.
Contexto
A classe ara::diag::DoIPGroupIdentification disponibiliza a interface funcional do Diagnostic Management (AUTOSAR AP SWS Diagnostics p. 73), através da qual uma aplicação Adaptive fornece o estado atual de identificação de grupo (estado de GID) para o protocolo DoIP [SWS_DM_00724]. Na arquitetura da plataforma, a classe atua como intermediária entre dois parceiros de interação primários: o daemon interno do Diagnostic Management (DM), que processa mensagens estandardizadas de identificação de veículos e de DoIP através da rede, e a implementação específica da aplicação, que concretiza o método puramente virtual GetGidStatus(). A disponibilização e a receção de pedidos são controladas através de ofertas explícitas de serviços [SWS_DM_00725].
Ciclo de vida
Uma instância de DoIPGroupIdentification representa uma porta de diagnóstico única. Por esta razão, a classe foi concebida como um objeto de gestão única: tanto o construtor de cópia [SWS_DM_01641] e o construtor de movimentação [SWS_DM_01642] como os respetivos operadores de atribuição [SWS_DM_01639], [SWS_DM_01640] foram explicitamente eliminados (=delete).
A criação ocorre obrigatoriamente através do construtor parametrizado mediante a especificação de um ara::core::InstanceSpecifier bem como do modo de concorrência ConcurrencyType[SWS_DM_00722]. O ciclo de vida divide-se nas seguintes fases:
Não oferecido (Not Offered): Após a construção, o objeto existe no espaço de endereçamento do processo, mas ainda não recebe solicitações do DM.
Oferecido (Offered): Por meio da chamada síncrona de Offer()[SWS_DM_00725], o manipulador é ativado no DM, de modo que as solicitações de status DoIP recebidas sejam encaminhadas.
Parado (Stopped): A chamada de StopOffer()[SWS_DM_00726] retira a autorização de encaminhamento do DM e faz a transição do objeto de volta para o estado inativo.
A destruição ocorre por meio do destruidor virtual ~DoIPGroupIdentification()[SWS_DM_00723]. Em relação à concorrência, o construtor é thread-safe, enquanto Offer(), StopOffer(), bem como o destruidor, não são thread-safe [SWS_DM_00722], [SWS_DM_00723], [SWS_DM_00725], [SWS_DM_00726]. A segurança de thread da função de consulta GetGidStatus() é definida condicionalmente pelo ConcurrencyType selecionado no construtor [SWS_DM_00724]. Interpretação: O destruidor deve encerrar implicitamente os encaminhamentos em andamento, caso StopOffer() não tenha sido chamado anteriormente. Pergunta Q-50d70fb679462321 (aberta)
Caminho de utilização
O uso típico compreende inicialização, ativação, processamento assíncrono e desativação:
Uma classe de diagnóstico concreta herda de ara::diag::DoIPGroupIdentification e implementa o método GetGidStatus()[SWS_DM_00724].
A aplicação cria o objeto com o InstanceSpecifier do PortPrototype configurado e define se GetGidStatus() pode ser chamado concorrentemente (kConcurrent) ou não (kNotConcurrent) [SWS_DM_00722].
Por meio de Offer(), a aplicação arma o manipulador para o Diagnostic Management [SWS_DM_00725].
Assim que chegam solicitações DoIP, o DM chama GetGidStatus(); a aplicação retorna o estado do GID de forma assíncrona via ara::core::Future<GidStatus>[SWS_DM_00724].
Antes de encerrar o serviço ou desligar o componente, a aplicação chama StopOffer()[SWS_DM_00726], seguido pela destruição do objeto [SWS_DM_00723].
Ao utilizar DoIPGroupIdentification, condições de erro estão definidas nas fases de construção e disponibilização:
Erros de modelo e de mapeamento (construtor): Se a instanciação falhar, são reportadas violações padronizadas [SWS_DM_00722]:
InstanceSpecifierMappingIntegrityViolation: O identificador não pode ser resolvido ou não faz referência a um protótipo de porta.
PortInterfaceMappingViolation: A porta referenciada não está tipada como DiagnosticDoIPGroupIdentificationInterface.
ProcessMappingViolation: Nenhum processo correspondente está associado ao contexto de execução no modelo.
InstanceSpecifierAlreadyInUseViolation: O identificador de porta especificado já está sendo utilizado por outra instância no processo em execução.
Erros de disponibilização de serviço (Offer()): O método retorna um ara::core::Result<void>. Se o serviço já tiver sido oferecido com sucesso para este manipulador, a nova chamada falha com o código de erro DiagOfferErrc::kAlreadyOffered[SWS_DM_00725].
Erro na consulta de status: A interface GetGidStatus() não especifica códigos de erro padronizados [SWS_DM_00724]; erros internos da aplicação devem ser mapeados por meio do objeto de resultado da future retornada.
Este guia baseia-se exclusivamente na especificação AUTOSAR Adaptive R25-11.
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 referenced by a pingViolation DiagnosticDoIpGroupIdentificationPortMapping needs to be typed by a DiagnosticDoIPGroupIdentificationInterface. 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)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDoIPGroupIdentificationInterface.
concurrencyType
Specifies 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.
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: c580e08dd024Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro síncrona Offer da classe ara::diag::DoIPGroupIdentification sinaliza ao Diagnostic Management (DM) que a Adaptive Application provedora está pronta e que as solicitações para a identificação de grupo DoIP podem ser processadas [SWS_DM_00725]. Somente após esta chamada o DM pode obter o ID do grupo sob demanda por meio do método GetGidStatus, caso não haja uma configuração fixa [SWS_DM_00813].
Em relação ao contexto de chamada e à simultaneidade, aplicam-se as seguintes condições:
Assinatura e semântica: A chamada ocorre sem parâmetros e retorna de forma síncrona um ara::core::Result<void>[SWS_DM_00725]. O método é declarado como noexcept e seguro contra exceções (exception safe) [SWS_DM_00725].
Segurança de threads: A operação é especificada como não segura para threads (not thread-safe) [SWS_DM_00725]. Chamadas na mesma instância não devem ser feitas sem proteção a partir de threads concorrentes.
Em caso de erro, o objeto resultante fornece o código de erro DiagOfferErrc::kAlreadyOffered com semântica de rollback, caso o serviço já tenha sido oferecido para esta interface [SWS_DM_00725].
Enquanto a aplicação ainda não tiver executado Offer e o DM precisar enviar uma identificação de grupo DoIP, aplica-se o comportamento de fallback: o DM transmite como valor de GID ou 0x00 0x00 0x00 0x00 0x00 0x00 ou 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF de acordo com a ISO 13400-2 como indicação para “value not set” [SWS_DM_01527].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
This StopOffer will disable the forwarding of request messages from DM to this handler.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: da4bfe9455e6Procedê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::DoIPGroupIdentification encerra a disponibilização do manipulador e desativa o encaminhamento de mensagens de solicitação de entrada (request messages) do Diagnostic Management (DM) para esta instância [SWS_DM_00726].
Utilização e tratamento de erros
A operação declarada no cabeçalho ara/diag/doip_group_identification.h possui a assinatura void StopOffer () noexcept;[SWS_DM_00726]. Ela não recebe parâmetros, não retorna valor e é executada de forma síncrona [SWS_DM_00726]. O método é especificado como seguro contra exceções (exception safe) e não lança exceções C++; códigos ou mensagens de erro dedicados não estão previstos para este procedimento [SWS_DM_00726].
Simultaneidade e restrições
Em termos de concorrência, StopOffer é explicitamente especificado como não seguro para threads (not thread-safe) [SWS_DM_00726]. As aplicações chamadoras presumivelmente devem garantir, por conta própria, que nenhuma chamada concorrente ocorra na mesma instância. Pergunta Q-3ac810ffb08cb197 (aberta)
Interação
O módulo de diagnóstico utiliza o padrão StopOffer de maneira uniforme em todas as interfaces funcionais, por exemplo, em rotinas genéricas [SWS_DM_00558], no controle de comunicação [SWS_DM_00810] e em serviços de autenticação [SWS_DM_01131]. Embora as designações sejam funcionalmente semelhantes às do gerenciamento de serviços em ara::com, trata-se de uma implementação independente da arquitetura de diagnóstico AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Esta nota de uso foi gerada por uma IA e apoia-se exclusivamente na especificação AUTOSAR para o R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão