Disponibiliza ao gerenciamento de diagnóstico o modo de energia DoIP atual do veículo por meio de uma interface de callback.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: afa4b2f1975cProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Disponibiliza ao gerenciamento de diagnóstico o modo de energia DoIP atual do veículo por meio de uma interface de callback.
A classe de interface ara::diag::DoIPPowerMode permite que aplicações forneçam o modo de energia DoIP atual ao gerenciamento de diagnóstico por meio da função de callback GetDoIPPowerMode()[SWS_DM_00734]. Após a instanciação, o manipulador deve ser ativado via Offer() e cancelado antes da destruição via StopOffer()[SWS_DM_00735], [SWS_DM_00736]. Como instância única, a classe não é copiável nem movível [SWS_DM_01645].
Contexto
A classe abstrata ara::diag::DoIPPowerMode define a interface para a disponibilização do modo de energia DoIP atual perante o Diagnostic Management (DM). Em arquiteturas veiculares que utilizam diagnóstico sobre Internet Protocol (DoIP), o protocolo de comunicação precisa estar informado sobre o estado operacional da rede do veículo ou sobre a alimentação de tensão. O software da aplicação deriva uma classe de manipulador concreta de ara::diag::DoIPPowerMode e implementa a consulta do modo de energia [SWS_DM_00734]. Os parceiros de interação são a aplicação de diagnóstico que fornece a interface, bem como o sistema de runtime do DM, que delega solicitações recebidas a este manipulador [SWS_DM_00735].
Ciclo de vida
Instâncias de ara::diag::DoIPPowerMode são criadas internamente na aplicação e identificadas por meio de um protótipo de porta referenciado por um ara::core::InstanceSpecifier[SWS_DM_00732]. Ao chamar o construtor, define-se pelo argumento ConcurrencyType se o método de callback GetDoIPPowerMode() deve ser executado de forma thread-safe (kConcurrent) ou não thread-safe (kNotConcurrent) [SWS_DM_00732]. O construtor em si é executado de forma thread-safe [SWS_DM_00732].
De acordo com a especificação, trata-se de uma instância não copiável e não movível: tanto o construtor de cópia [SWS_DM_01645] quanto o construtor de movimento [SWS_DM_01646], assim como os respectivos operadores de atribuição [SWS_DM_01643], [SWS_DM_01644], estão explicitamente excluídos (=delete).
Após a instanciação, o manipulador deve ser ativado via Offer() para que o DM possa encaminhar solicitações [SWS_DM_00735]. Para encerrar o encaminhamento de solicitações, StopOffer() é chamado [SWS_DM_00736]. O destruidor virtual ~DoIPPowerMode()[SWS_DM_00733], bem como Offer() e StopOffer(), são especificados como não thread-safe. Presumivelmente, StopOffer() deve sempre ser executado antes da chamada do destruidor, a fim de desconectar adequadamente interações pendentes com o DM. Pergunta Q-85ede935aa303c45 (aberta)
Caminho de utilização
O uso típico de ara::diag::DoIPPowerMode segue uma sequência fixa de inicialização, registro de serviço, consulta de modo cíclica ou baseada em eventos e cancelamento de registro:
A aplicação instancia sua classe derivada com o InstanceSpecifier apropriado e o ConcurrencyType desejado [SWS_DM_00732].
A aplicação registra ativamente o manipulador no gerenciamento de diagnóstico por meio de Offer()[SWS_DM_00735].
Assim que o protocolo DoIP necessita do status, o DM chama a função puramente virtual GetDoIPPowerMode()[SWS_DM_00734]. A implementação retorna um ara::core::Future<PowerModeType>, que é resolvido de forma assíncrona [SWS_DM_00734].
Ao encerrar a operação, a aplicação chama StopOffer() para não aceitar mais nenhuma solicitação [SWS_DM_00736].
A instância é liberada por meio do destruidor [SWS_DM_00733].
Ao chamar o construtor, podem ocorrer violações de modelo e de mapeamento que estão documentadas [SWS_DM_00732]:
InstanceSpecifierMappingIntegrityViolation: O identificador não pode ser resolvido no contexto do executável ou não faz referência a um elemento PortPrototype [SWS_DM_00732].
PortInterfaceMappingViolation: O PortPrototype referenciado não está tipado por um DiagnosticDoIPPowerModeInterface[SWS_DM_00732].
ProcessMappingViolation: Existe uma referência de instância, porém nenhum processo modelado correspondente ao ambiente de execução [SWS_DM_00732].
InstanceSpecifierAlreadyInUseViolation: O InstanceSpecifier já foi utilizado para outra instância dentro do mesmo processo [SWS_DM_00732].
Se Offer() for chamado enquanto o serviço já estiver sendo ativamente oferecido, o método retorna o código de erro DiagOfferErrc::kAlreadyOffered por meio do ara::core::Result[SWS_DM_00735]. Por outro lado, o método GetDoIPPowerMode() não define códigos de erro padronizados [SWS_DM_00734].
Este guia baseia-se na especificação AUTOSAR para a Adaptive Platform (Release R25-11). Todas as informações e códigos de erro apoiam-se nos requisitos SWS referenciados.
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 DiagnosticDoIpPowerModePortMapping needs to be typed by a DiagnosticDoIPPowerModeInterface. 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 DiagnosticDoIPPowerModeInterface
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: 5f8fb75036b6Procedência
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::DoIPPowerMode serve para uma Adaptive Application registrar e liberar o serviço para o DoIP Power Mode junto ao Diagnostic Management (DM) [SWS_DM_00735]. A chamada capacita o DM a encaminhar mensagens de solicitação recebidas para este handler [SWS_DM_00735]. A função não espera parâmetros de entrada, não lança exceções (noexcept) e retorna como valor de retorno um ara::core::Result<void>[SWS_DM_00735].
Enquanto Offer ainda não tiver sido chamado pela aplicação provedora, o DM responde a solicitações de clientes por informações de DoIP Power Mode com o valor de status 0 (“Not ready”) de acordo com a ISO 13400-2 [SWS_DM_01525]. Se o handler estiver registrado e o DM necessitar do Power Mode atual para responder a mensagens DoIP, ele o consulta por meio de ara::diag::DoIPPowerMode::GetDoIPPowerMode[SWS_DM_00814].
Em caso de erro, o objeto Result contém um código de erro correspondente. Se o método já tiver sido chamado com sucesso anteriormente na respectiva instância, uma nova chamada falhará e fornecerá DiagOfferErrc::kAlreadyOffered com semântica de rollback [SWS_DM_00735].
No que diz respeito à concorrência, a função é especificada como não segura para threads (not thread-safe) [SWS_DM_00735]. Chamadas paralelas na mesma instância devem, portanto, ser sincronizadas pelo chamador. A função oferece segurança total contra exceções (exception safe) [SWS_DM_00735].
Esta nota de uso foi criada por uma IA e baseia-se nas especificações do release 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: 2a0861404a22Procedê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::DoIPPowerMode desativa o encaminhamento de mensagens de solicitação de diagnóstico recebidas pelo Diagnostic Management (DM) para o manipulador [SWS_DM_00736]. A função é fornecida através do ficheiro de cabeçalho ara/diag/doip_power_mode.h, não possui valor de retorno e não aceita parâmetros [SWS_DM_00736].
Para o comportamento de erro e o ambiente de execução, aplicam-se os seguintes detalhes de especificação:
Segurança contra exceções: A função é declarada como noexcept e definida como segura contra exceções (exception safe) [SWS_DM_00736]. Não são lançadas exceções e nenhum código de erro é retornado.
Segurança de threads: A operação é especificada como não segura para threads (not thread-safe) [SWS_DM_00736]. Interpretação: Se o método for chamado em cenários multithreading ou em paralelo com outras operações da instância, deverá ser necessária uma sincronização externa pela aplicação. Pergunta Q-1593f08472d584d1 (aberta)
O padrão de disponibilização com Offer e StopOffer é concebido de forma uniforme no Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». A interrupção do encaminhamento de solicitações do DM via StopOffer é utilizada de forma análoga em outros componentes de diagnóstico, como por exemplo em ara::diag::DoIPGroupIdentification[SWS_DM_00726], ara::diag::DoIPActivationLine[SWS_DM_00837], ara::diag::GenericUDSService[SWS_DM_00620], ara::diag::DownloadService[SWS_DM_00793] e ara::diag::Authentication[SWS_DM_01131].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão