Permite que aplicações adaptativas disponibilizem a identificação de entidade DoIP para o gerenciamento de diagnóstico.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 73f8b2cf1d2eProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite que aplicações adaptativas disponibilizem a identificação de entidade DoIP para o gerenciamento de diagnóstico.
A classe ara::diag::DoIPEntityIdentification permite que aplicações adaptativas disponibilizem dinamicamente a identificação de entidade (EID) para o protocolo de diagnóstico DoIP [SWS_DM_01361]. Após a instanciação, a aplicação ativa o encaminhamento por meio de Offer() e responde a consultas do Diagnostic Management sobre o método puramente virtual GetEntityId() de forma assíncrona por meio de Future [SWS_DM_01366], [SWS_DM_01367]. Se a interface ainda não estiver disponibilizada no momento de uma consulta, o gerenciamento de diagnóstico envia como substituto um valor padronizado de 0xFF[SWS_DM_01528].
Contexto
A classe ara::diag::DoIPEntityIdentification serve para a disponibilização dinâmica da identificação de entidade (EID) para o protocolo DoIP (Diagnostic over IP) [SWS_DM_01361]. Em um ambiente AUTOSAR Adaptive, ela forma a ponte funcional entre uma aplicação adaptativa individual e o Diagnostic Management (DM) AUTOSAR_AP_SWS_Diagnostics, p. 107. Se na configuração DoIpNetworkConfiguration.eidRetrieval estiver ajustado para o modo DoIpEidRetrievalEnum.eidUseApi, o Diagnostic Management solicita a EID através desta interface de programação [SWS_DM_01361]. A vinculação à arquitetura de software ocorre através de um ara::core::InstanceSpecifier, que faz referência a um PortPrototype de um DiagnosticDoIPEntityIdentificationInterface[SWS_DM_01364].
Ciclo de vida
A criação ocorre através do construtor explícito, ao qual, além do InstanceSpecifier, é passado o parâmetro ConcurrencyType (kConcurrent ou kNotConcurrent) [SWS_DM_01364]. Este último define se chamadas subsequentes à interface devem ser processadas de forma segura para threads [SWS_DM_01364], [SWS_DM_01366]. Após a construção, o objeto permanece inicialmente no estado inativo. Através da chamada de Offer(), a interface é habilitada para o Diagnostic Management e o encaminhamento de requisições ao manipulador é ativado [SWS_DM_01367]. Antes da destruição do objeto ou no encerramento da operação, StopOffer() impede novamente o encaminhamento [SWS_DM_01368]. A destruição ocorre finalmente através do destrutor virtual [SWS_DM_01365]. Nem Offer(), StopOffer() nem o destrutor são seguros para threads e, portanto, exigem sincronização coordenada no código da aplicação [SWS_DM_01365], [SWS_DM_01367], [SWS_DM_01368].
No cenário típico de uso, a aplicação adaptativa deriva sua própria classe de implementação de ara::diag::DoIPEntityIdentification e sobrescreve o método puramente virtual GetEntityId()[SWS_DM_01366]. Após a instanciação com um identificador válido, a aplicação registra o manipulador por meio de Offer()[SWS_DM_01367]. Assim que o Diagnostic Management necessita do Entity ID para a montagem de mensagens DoIP, ele chama GetEntityId()[SWS_DM_01361], [SWS_DM_01366]. O método retorna um ara::core::Future<EntityId>, permitindo que os dados de identificação sejam determinados e disponibilizados de forma assíncrona [SWS_DM_01366]. Terminada a operação da função, a aplicação retira a oferta através de StopOffer()[SWS_DM_01368].
Configurações incorretas do modelo durante a construção levam a violações específicas em tempo de execução: se o InstanceSpecifier não puder ser resolvido no modelo ou não fizer referência a um PortPrototype, resulta em uma InstanceSpecifierMappingIntegrityViolation[SWS_DM_01364]. Se o mapeamento de porta não fizer referência a um DiagnosticDoIPEntityIdentificationInterface, ocorre uma PortInterfaceMappingViolation, enquanto uma sincronização de processo ausente dispara uma ProcessMappingViolation[SWS_DM_01364]. Se o mesmo identificador for usado várias vezes no processo, segue-se uma InstanceSpecifierAlreadyInUseViolation[SWS_DM_01364].
Se Offer() for chamado quando o serviço já estiver sendo oferecido ativamente, o método retorna um ara::core::Result com o código de erro DiagOfferErrc::kAlreadyOffered[SWS_DM_01367]. Se o Diagnostic Management não conseguir consultar o EID – por exemplo, porque a interface ainda não havia sido oferecida no momento da consulta –, entra em ação um fallback de protocolo definido: o Diagnostic Management envia em mensagens DoIP, como substituto, um valor de EID de 6 bytes de 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF[SWS_DM_01528].
Este guia foi gerado por um assistente de IA com base 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 DiagnosticDoIpEntityIdentificationPortMapping needs to be typed by a DiagnosticDoIPEntityIdentificationInterface. 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 DiagnosticDoIPEntityIdentificationInterface.
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: 60c723a50d6cProcedê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::DoIPEntityIdentification ativa o encaminhamento de pedidos DoIP recebidos pelo daemon do Diagnostic Management (DM) para o manipulador registado ([SWS_DM_01367]). As mensagens só são transmitidas ao manipulador após a chamada bem-sucedida. Interpretação: a chamada ocorre tipicamente na fase de inicialização da Adaptive Application, antes de deverem ser recebidas mensagens de diagnóstico. Pergunta Q-4b78d4f80bda63a4 (aberta)
Uso e semântica:
Contexto de chamada: a operação é executada de forma síncrona e está declarada como noexcept; não lança exceções ([SWS_DM_01367]).
Valor de retorno: devolve um ara::core::Result<void>, que não contém qualquer valor em caso de sucesso ([SWS_DM_01367]).
Tratamento de erros:
Se a interface já tiver sido oferecida para a instância, a chamada falha e devolve, com semântica de rollback, o código de erro DiagOfferErrc::kAlreadyOffered ([SWS_DM_01367]).
Simultaneidade e restrições:
A interface está especificada como not thread-safe ([SWS_DM_01367]). As chamadas simultâneas na mesma instância têm de ser sincronizadas pela aplicação chamadora.
Interação:
O padrão de registo corresponde ao procedimento de outros serviços DoIP como DoIPGroupIdentification ([SWS_DM_00725]) e DoIPPowerMode ([SWS_DM_00735]), bem como de manipuladores UDS genéricos ([SWS_DM_00619]). A atribuição de nomes segue o padrão conhecido de ara::com, mas representa um registo autónomo perante o DM (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»).
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: 2e0edce0b8e6ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O método ara::diag::DoIPEntityIdentification::StopOffer termina a disponibilização do serviço para identificação de entidade DoIP e desativa o encaminhamento de mensagens de pedido do Diagnostic Management (DM) para a aplicação [SWS_DM_01368]. A interface é disponibilizada através do ficheiro de cabeçalho ara/diag/doip_entity_identification.h. Não aceita parâmetros e não fornece qualquer valor de retorno (void) [SWS_DM_01368]. Interpretação: dado que a assinatura não prevê um objeto future nem uma notificação por callback, a chamada deverá ser executada de forma síncrona e bloqueante até que o encaminhamento no DM seja terminado. Pergunta Q-75f67df3a003b08f (aberta)
Tratamento de erros e segurança contra exceções
A operação está declarada com o especificador noexcept e especificada como segura em termos de exceções (exception safe) [SWS_DM_01368]. Não são devolvidos códigos de erro específicos nem são geradas exceções.
Simultaneidade e restrições
Em relação ao ambiente de execução, o método está classificado como não seguro entre threads (not thread-safe) [SWS_DM_01368]. Se ocorrerem chamadas ou acessos paralelos à mesma instância de ara::diag::DoIPEntityIdentification, estes têm de ser sincronizados do lado da aplicação.
Interação
O comportamento enquadra-se no padrão uniforme de ciclo de vida do AUTOSAR Adaptive Diagnostic Management. Uma desativação comparável do encaminhamento de mensagens ocorre, por exemplo, na identificação de grupos através de [SWS_DM_00726], bem como em comutadores de diagnóstico e monitores através de [SWS_DM_01089]. Como destacado em AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors», a nomenclatura de Offer e StopOffer orienta-se pelos padrões de ara::com, mas representa uma implementação independente para interfaces de diagnóstico.
Esta nota de utilização foi gerada de forma automatizada com base na especificação AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão