Serve para a transmissão e o gerenciamento do estado de uma linha de ativação DoIP para o Diagnostic Manager.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f91d71d289e3ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve para a transmissão e o gerenciamento do estado de uma linha de ativação DoIP para o Diagnostic Manager.
A classe ara::diag::DoIPActivationLine permite que uma aplicação disponibilize o estado de uma linha de ativação DoIP e transmita alterações para o Diagnostic Manager [SWS_DM_00830]. Após a instanciação baseada em portas, o serviço é ativado por meio de Offer(), momento em que o DM consulta o estado da linha e o ID de rede e recebe mudanças de status via UpdateActivationLineState()[SWS_DM_00834]. Como restrição central, a interface de rede correspondente deve estar configurada no modelo como dependente da linha de ativação [SWS_DM_00833].
Contexto
A classe ara::diag::DoIPActivationLine representa a interface DiagnosticDoIPActivationLineInterface em conformidade com [SWS_DM_00830]. Ela permite que uma Adaptive Application (AA) relate e disponibilize o estado físico ou lógico de uma linha de ativação DoIP para o Diagnostic Manager (DM). Por meio dessa linha de ativação, uma aplicação controla indiretamente o envio de mensagens de anúncio de veículo DoIP (Vehicle Announcement Messages), conforme especificado em AUTOSAR_AP_SWS_Diagnostics, p. 107, sem disparar explicitamente o envio por conta própria.
Na interação participam essencialmente três componentes: a Adaptive Application implementadora, a instância de ara::diag::DoIPActivationLine como interface de serviço e o Diagnostic Manager do sistema básico. Se o DM detectar, por meio dessa interface, uma alteração de estado da linha de ativação, ele notifica as interfaces de rede dependentes e inicia fluxos DoIP padronizados [SWS_DM_00816].
Uma instância de ara::diag::DoIPActivationLine é criada por meio de um ara::core::InstanceSpecifier que faz referência a um PortPrototype[SWS_DM_00831]. A classe representa uma instância exclusiva: construtores de cópia e de movimentação, bem como operadores de atribuição por cópia e por movimentação, são excluídos (=delete), o que impossibilita mover ou duplicar ([SWS_DM_01631], [SWS_DM_01632], [SWS_DM_01633], [SWS_DM_01634]).
Após a instanciação, o objeto encontra-se no estado «não oferecido». Ao chamar Offer(), a disponibilização é ativada para que o DM possa escutar alterações de estado da linha de ativação [SWS_DM_00836]. Por meio de StopOffer(), essa disponibilização é desativada novamente [SWS_DM_00837]. O destrutor virtual é declarado como destrutor padrão e libera os recursos [SWS_DM_00832]. Em relação à concorrência, o construtor [SWS_DM_00831], bem como as consultas de leitura pura GetActivationLineState()[SWS_DM_00835] e GetNetworkInterfaceId()[SWS_DM_00833], são executados de forma thread-safe, enquanto Offer()[SWS_DM_00836], StopOffer()[SWS_DM_00837] e UpdateActivationLineState()[SWS_DM_00834] não são thread-safe.
Caminho de utilização
O fluxo regular inclui a derivação e o registro de uma classe específica da aplicação, bem como a transmissão contínua de estado:
Instanciação: a Adaptive Application instancia a classe derivada informando o InstanceSpecifier adequado [SWS_DM_00831].
Oferecer serviço: a aplicação chama Offer() para liberar a interface para o DM [SWS_DM_00836].
Consulta de rede e inicial: o DM determina o ID de interface associado por meio do método puramente virtual GetNetworkInterfaceId()[SWS_DM_00833] e consulta o estado atual da linha com GetActivationLineState()[SWS_DM_00835]. Ambos os métodos retornam um ara::core::Future.
Atualização de estado: se o estado físico da linha for alterado (por exemplo, mudança de nível em uma linha de hardware), a aplicação informa o DM de forma síncrona via UpdateActivationLineState()[SWS_DM_00834]. Isso faz com que o DM execute ações subsequentes, como notificações de estado para interfaces de rede [SWS_DM_00816].
Finalização: antes do desligamento ou em caso de desativação, a aplicação chama StopOffer()[SWS_DM_00837].
Ao utilizar ara::diag::DoIPActivationLine, podem ocorrer erros funcionais e de configuração:
Violações de modelo e de porta na criação: o construtor verifica a validade do InstanceSpecifier[SWS_DM_00831]. Se a resolução falhar, são acionadas mensagens de violação padronizadas: InstanceSpecifierMappingIntegrityViolation (elemento de modelo inválido), PortInterfaceMappingViolation (porta não tipificada por DiagnosticDoIPActivationLineInterface), ProcessMappingViolation (referência de processo ausente) ou InstanceSpecifierAlreadyInUseViolation (especificador já atribuído dentro do processo).
Oferecimento múltiplo: 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_00836].
Inconsistência de configuração da interface de rede: se a aplicação relatar via GetNetworkInterfaceId() um ID de interface cuja DoIpNetworkConfiguration correspondente possua a propriedade isActivationLineDependent = 'FALSE', isso é considerado explicitamente pela especificação como um erro grave de configuração [SWS_DM_00833].
Segurança contra exceções: enquanto o construtor, os getters, Offer(), StopOffer() e o destrutor são especificados como seguros contra exceções (exception safe), UpdateActivationLineState() é explicitamente designado como não seguro contra exceções (not exception safe) [SWS_DM_00834]. Portanto, erros dentro dessa chamada devem ser tratados com cuidado pela aplicação chamadora.
Este guia baseia-se exclusivamente nos requisitos de especificação do AUTOSAR AP Release 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 DiagnosticDoIpActivationLinePortMapping needs to be typed by a DiagnosticDoIPActivationLineInterface. 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 DiagnosticDoIPActivationLineInterface
Request a governed re-review of this record. The record is not changed immediately.
network interface id for which this activation line is responsible.
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Hinweise: If the reported DoIpNetworkConfiguration.networkInterfaceId belongs to a DoIpNetworkConfiguration with property isActivationLineDependent = ’FALSE’, this is an error!
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to listen to activation line state changes.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 3534ff4305bfProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método síncrono Offer da classe ara::diag::DoIPActivationLine ([SWS_DM_00836], ficheiro de cabeçalho #include "ara/diag/doip_activationline.h") capacita o Diagnostic Management (DM) a detetar alterações de estado da linha de ativação. A operação não possui parâmetros de entrada e reporta o resultado através do tipo de retorno ara::core::Result<void>.
Assim que a interface tiver sido disponibilizada por meio de Offer, o DM monitoriza a linha de ativação. Se o DM detetar uma transição para o estado «active», providencia o envio de mensagens de anúncio de veículo (Vehicle Announcement Messages) de acordo com a ISO 13400-2 nas respetivas interfaces de rede ([SWS_DM_00816], AUTOSAR_AP_SWS_Diagnostics §[SWS_DM_00816] p. 106). Interpretação: a chamada de Offer deverá tipicamente ocorrer na fase de inicialização da aplicação, para que as transições de estado sejam detetadas atempadamente. Pergunta Q-254ced2fd3a1e3d2 (aberta)
Em caso de erro, é devolvido um código de erro correspondente em Result. Se o método for chamado repetidamente para a mesma instância enquanto o serviço já estiver a ser oferecido, devolve o código de erro DiagOfferErrc::kAlreadyOffered com semântica de rollback ([SWS_DM_00836]).
No que diz respeito à concorrência, o método está especificado como não seguro para threads (not thread-safe) ([SWS_DM_00836]). Chamadas simultâneas na mesma instância têm, por isso, de ser sincronizadas pelo lado da aplicação. Devido à declaração como noexcept, a função é totalmente exception-safe ([SWS_DM_00836]).
Esta nota de uso baseia-se na especificação AUTOSAR Adaptive Platform Release R25-11.
This StopOffer will disable the provision of activation line state to DM.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 668b8f5f37f2Procedê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::DoIPActivationLine::StopOffer encerra a disponibilização do estado da linha de ativação DoIP (Activation Line) perante o Diagnostic Management (DM) em conformidade com [SWS_DM_00837].
A função possui a assinatura void StopOffer() noexcept e é executada de forma síncrona em uma instância de ara::diag::DoIPActivationLine (AUTOSAR_AP_SWS_Diagnostics §5 «Overview»). Ela não recebe parâmetros e não fornece valor de retorno. Com a chamada, a transmissão ativa de alterações de estado da linha de ativação para o Diagnostic Manager é desativada.
Em relação ao tratamento de erros, o método é especificado como exception safe e garante através de noexcept que nenhuma exceção seja lançada ([SWS_DM_00837]). Como a operação é not thread-safe de acordo com a especificação, chamadas na mesma instância não devem ocorrer concorrentemente a partir de múltiplas threads sem proteção; acessos paralelos exigem obrigatoriamente uma sincronização no lado da aplicação.
O padrão de projeto segue a nomenclatura estabelecida na Adaptive Platform para a disponibilização de serviços (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»). Enquanto StopOffer desativa o encaminhamento de solicitações de DM de entrada em classes DoIP relacionadas, como ara::diag::DoIPGroupIdentification ([SWS_DM_00726]) ou ara::diag::DoIPPowerMode ([SWS_DM_00736]), aqui ele interrompe especificamente o reporte do estado da linha de ativação ao DM. Interpretação: Para um fluxo de operação consistente, provavelmente pressupõe-se que, antes da chamada de StopOffer, uma disponibilização já tenha sido iniciada ativamente através da mesma instância. Pergunta Q-c5d38151ef8198e7 (aberta)
Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: becd58166c09ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método UpdateActivationLineState da classe ara::diag::DoIPActivationLine serve para transmitir o status atual da linha de ativação DoIP para o Diagnostic Management adaptativo [SWS_DM_00834] (AUTOSAR_AP_SWS_Diagnostics §8.32.1.1.3.5). A declaração é fornecida através do arquivo de cabeçalho ara/diag/doip_activationline.h.
Uso e parâmetros:
Parâmetro: O parâmetro de entrada booleano activation_line_state sinaliza ao sistema se a linha de ativação está ativa (TRUE) ou inativa (FALSE) [SWS_DM_00834].
Valor de retorno: A operação não possui valor de retorno (void) e opera de forma síncrona.
Simultaneidade e restrições:
Segurança de thread: A função é explicitamente especificada como not thread-safe[SWS_DM_00834]. Interpretação: Chamadas na mesma instância de DoIPActivationLine devem ser sincronizadas pela aplicação chamadora para evitar conflitos de dados. Pergunta Q-d1c43b8ffc4bdcff (aberta)
Tratamento de erros: O método é declarado como not exception safe[SWS_DM_00834]. Códigos de erro ou exceções específicos não estão definidos; em regra, a aplicação chamadora não deve ser capaz de capturar exceções. Pergunta Q-394304b9d771cf69 (aberta)
Este texto foi gerado por uma IA com base na especificação.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão