Permite o monitoramento de canais de diagnóstico ativos, bem como o controle da sessão de diagnóstico e do nível de segurança.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 1824b6dbecd2ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite o monitoramento de canais de diagnóstico ativos, bem como o controle da sessão de diagnóstico e do nível de segurança.
A classe ara::diag::Conversation representa um canal de comunicação de diagnóstico para monitorar o status de atividade, a sessão de diagnóstico e o nível de segurança, bem como para redefinir para a sessão padrão [SWS_DM_00692][SWS_DM_00701]. As aplicações obtêm instâncias exclusivamente como referências por meio de funções de busca estáticas, visto que instanciações próprias, bem como operações de cópia e movimentação, foram excluídas [SWS_DM_02090]. Enquanto consultas de leitura de status podem ser executadas de forma thread-safe, registros de callback e a redefinição da sessão exigem sincronização externa.
Contexto
A classe ara::diag::Conversation representa a interface para um canal de comunicação entre um testador de diagnóstico externo e a Adaptive Platform SWS Diagnostics §8.2 «Conversation». Ela serve como elo de ligação entre a aplicação e o gerenciamento de diagnóstico (DM) interno para acompanhar e controlar atividades de diagnóstico em andamento. Por meio de suas instâncias, as aplicações Adaptive obtêm visibilidade sobre o estado de conexão atual [SWS_DM_00694], a sessão de diagnóstico ativa [SWS_DM_00696], o nível de segurança [SWS_DM_00698], bem como as características de identificação do canal [SWS_DM_00700].
Instâncias de ara::diag::Conversation são completamente instanciadas e gerenciadas pelo Diagnostic Management Daemon. A criação manual, cópia ou movimentação pela aplicação é excluída: tanto o construtor de cópia [SWS_DM_02090] e o construtor de movimento [SWS_DM_02092] quanto os operadores de atribuição [SWS_DM_02091][SWS_DM_02093] foram excluídos (=delete). A vida útil dos objetos referenciados deve, portanto, estar diretamente vinculada ao estado de tempo de execução do subsistema de diagnóstico. Pergunta Q-f8deca481d5b76e1 (aberta)
O acesso a instâncias existentes ocorre exclusivamente por meio de funções estáticas de consulta. Com GetAllConversations() é possível obter referências a todas as conexões configuradas [SWS_DM_00782], enquanto GetCurrentActiveConversations() fornece uma lista de todos os canais atualmente ativos cujo status de atividade corresponde a kActive[SWS_DM_00783]. Além disso, por meio de GetConversation(metaInfo), uma conexão específica pode ser resolvida com base nos metadados de uma requisição de diagnóstico em andamento [SWS_DM_00692].
Em relação à concorrência, todos os acessos de leitura ao status e aos identificadores são especificados como thread-safe [SWS_DM_00694][SWS_DM_00696][SWS_DM_00698]. Por outro lado, o registro de callbacks de notificação e a redefinição da sessão são considerados não seguros para threads (not thread-safe) [SWS_DM_00695][SWS_DM_00701] e exigem sincronização do lado da aplicação.
Caminho de utilização
Um caso de uso típico abrange a obtenção da conexão, o registro de funções de notificação e o monitoramento ou manipulação pontual do estado da sessão:
Obter referência: em uma requisição de diagnóstico recebida, a instância associada é obtida por meio de GetConversation(metaInfo)[SWS_DM_00692].
Configurar monitoramento de estado: por meio dos métodos de registro SetActivityNotifier()[SWS_DM_00695][SWS_DM_02126], SetDiagnosticSessionNotifier()[SWS_DM_00697][SWS_DM_02127] e SetSecurityLevelNotifier()[SWS_DM_00699][SWS_DM_02128], a aplicação é notificada em caso de alterações. Uma chamada repetida sobrescreve o callback registrado anteriormente.
Consultar status: o estado momentâneo pode ser determinado de forma síncrona com GetDiagnosticSession()[SWS_DM_00696] ou GetDiagnosticSecurityLevel()[SWS_DM_00698]. Por meio de GetDiagnosticSessionShortName()[SWS_DM_00707] e GetDiagnosticSecurityLevelShortName()[SWS_DM_00708], os enums podem ser resolvidos em identificadores curtos legíveis.
Redefinir sessão: caso a lógica exija uma interrupção ou um retorno ao estado básico, ResetToDefaultSession() retorna o canal para a sessão padrão [SWS_DM_00701].
Métodos de ara::diag::Conversation sinalizam erros por meio de ara::core::Result. Se a funcionalidade básica do Diagnostic Management estiver temporariamente indisponível, GetConversation(), GetActivityStatus(), GetDiagnosticSession(), GetDiagnosticSecurityLevel() e GetConversationIdentifier() falharão com o código de erro DiagErrc::kServiceNotAvailable[SWS_DM_00692][SWS_DM_00694][SWS_DM_00696][SWS_DM_00698][SWS_DM_00700]. As chamadas seguem a semântica de rollback e permanecem sem efeitos colaterais.
Nas funções de conversão de string GetDiagnosticSessionShortName()[SWS_DM_00707] e GetDiagnosticSecurityLevelShortName()[SWS_DM_00708], a passagem de um valor de enumeração desconhecido ou inválido resulta no erro DiagErrc::kInvalidArgument. Para os métodos de registro de notificadores e para ResetToDefaultSession(), não há códigos de erro padronizados definidos na especificação [SWS_DM_00701].
Este guia baseia-se exclusivamente na especificação AUTOSAR Adaptive R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
Represents the current active diagnostic SecurityLevel of an active conversation.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a38bce94acc6ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O método GetDiagnosticSecurityLevel da classe ara::diag::Conversation serve para a determinação síncrona do nível de segurança atualmente ativo de uma conversação de diagnóstico (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.6 «GetDiagnosticSecurityLevel», [SWS_DM_00698]). Ele é fornecido através do cabeçalho #include "ara/diag/conversation.h", não aceita parâmetros de passagem e é declarado com o especificador noexcept.
Como tipo de retorno, a função fornece um ara::core::Result<SecurityLevelType>. Em caso de sucesso, este objeto contém diretamente o valor enum do estado de segurança atual da conexão ativa [SWS_DM_00698].
Tratamento de erros e simultaneidade
Se a consulta falhar, o método retorna um ara::core::Result com o código de erro DiagErrc::kServiceNotAvailable[SWS_DM_00698]. Isto sinaliza, sob a aplicação da semântica de rollback, que funções essenciais do Diagnostic Management (DM) não estão disponíveis no momento da chamada. Em relação à segurança de execução, GetDiagnosticSecurityLevel é classificado como thread-safe bem como exception-safe [SWS_DM_00698], permitindo assim chamadas concorrentes a partir de diferentes threads.
Interação
Interpretação: Uma chamada deverá tipicamente ocorrer antes da execução de atividades de diagnóstico protegidas, a fim de verificar a presença do nível de autorização necessário. Pergunta Q-8c056d4c5199524d (aberta) Para processamento posterior ou emissão de diagnóstico, o SecurityLevelType determinado pode ser traduzido no respetivo nome curto simbólico (shortName como ara::core::StringView) através do método GetDiagnosticSecurityLevelShortName (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.7 «GetDiagnosticSecurityLevelShortName», [SWS_DM_00708]).
Esta nota de uso foi criada de forma automatizada com base na especificação AUTOSAR Adaptive R25-11.
Converts the given diagnostic SecurityLevel into the ShortName.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 384b6d7f7a21ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O método síncrono ara::diag::Conversation::GetDiagnosticSecurityLevelShortName do cabeçalho ara/diag/conversation.h resolve um nível de segurança passado do tipo SecurityLevelType no identificador do nome curto configurado (DiagnosticSecurityLevel.shortName) [SWS_DM_00708]. A chamada retorna o resultado como ara::core::Result<ara::core::StringView>.
Tratamento de erros
Em caso de erro, a função retorna o código de erro DiagErrc::kInvalidArgument[SWS_DM_00708]. A instância do Diagnostic Server valida o valor do parâmetro com base em duas condições:
Se o estado bloqueado kLocked for passado como argumento securityLevel, o Diagnostic Server deve obrigatoriamente retornar kInvalidArgument[SWS_DM_01259].
Se o valor passado não corresponder a nenhuma entrada configurada de acordo com o cálculo ((DiagnosticSecurityAccess.requestSeedId + 1) / 2) no DiagnosticContributionSet, a chamada também falha com kInvalidArgument[SWS_DM_01260].
Simultaneidade e restrições
O método é declarado como noexcept, bem como especificado como seguro contra exceções (exception safe) e seguro para threads (thread-safe) [SWS_DM_00708]. Devido à segurança de threads especificada, a chamada deverá ser segura mesmo em atividades de diagnóstico concorrentes sem sincronização de mutex do lado da aplicação. Antes de aceder à cadeia de caracteres referenciada, a aplicação deve verificar se o ara::core::Result contém um erro. Pergunta Q-b851a473c2d836b7 (aberta)
Esta nota de uso foi criada automaticamente. Todas as evidências provêm das especificações da plataforma AUTOSAR Adaptive para a versão R25-11.
Method to reset the current session to default session.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 040cba85c191Procedê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::Conversation::ResetToDefaultSession permite que uma Adaptive Application reponha explicitamente uma conversação de diagnóstico para a sessão padrão (Default Session) [SWS_DM_00701].
usar
A chamada ocorre sem parâmetros numa instância de ara::diag::Conversation através do ficheiro de cabeçalho #include "ara/diag/conversation.h"[SWS_DM_00701]. Se o método for chamado, a instância do Diagnostic Server conclui primeiro o pedido em curso e só depois comuta a sessão de diagnóstico da conversação para a Default Session [SWS_DM_00842].
Tratamento de erros e simultaneidade
Valor de retorno e erros: A função devolve um ara::core::Result<void>[SWS_DM_00701]. Não estão definidos códigos de erro padronizados; Interpretação: eventuais erros em Result deverão refletir problemas específicos do fabricante durante o processamento de pedidos pelo Diagnostic Server. Pergunta Q-9f780f4ef7991bf4 (aberta)
Segurança de threads: A função é segura contra exceções (noexcept), mas está especificada como não segura para threads (not thread-safe) [SWS_DM_00701]. Chamadas paralelas no mesmo objeto de conversação devem, portanto, ser coordenadas pela aplicação chamadora.
Interação
O método complementa o caráter informativo da interface de conversação com um controlo de estado direcionado AUTOSAR_AP_SWS_Diagnostics §7 «Diagnostic Conversation Interface». Assegura que pedidos de diagnóstico existentes sejam terminados de forma ordenada antes de o estado da conversação ser modificado [SWS_DM_00842].
Esta nota de utilização foi gerada automaticamente e baseia-se exclusivamente nos documentos de especificação da AUTOSAR Adaptive R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 49e9828acc72Procedê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::Conversation::SetActivityNotifier serve para registrar uma função de notificação (notifier), que é chamada sempre que o status de atividade da conversação de diagnóstico for alterado [SWS_DM_00695]. A declaração ocorre por meio do arquivo de cabeçalho #include "ara/diag/conversation.h" no escopo da classe ara::diag::ConversationAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.11 «SetActivityNotifier». Uma chamada nova ou consecutiva na mesma instância sobrescreve totalmente o notificador registrado anteriormente [SWS_DM_00695], [SWS_DM_01355].
Tratamento de erros e simultaneidade
O valor de retorno é tipificado como ara::core::Result<void> e reporta o sucesso ou um estado de erro; a interface, porém, não especifica códigos de erro padronizados [SWS_DM_00695]. O método é declarado como noexcept e seguro contra exceções (exception safe).
Em relação à segurança para threads, a função é classificada como não segura para threads (not thread-safe) [SWS_DM_00695]. Se o acesso à mesma instância de conversação ocorrer a partir de múltiplas threads, a chamada de registro deve ser sincronizada pelo lado da aplicação.
Interação no ciclo de vida
As instâncias da conversação são disponibilizadas pelo Diagnostic Server, sendo o número máximo de conversações paralelas configurado através de maxConversations[SWS_DM_00840]. Quando o ciclo de vida de uma conversação de diagnóstico termina, o Diagnostic Server define o estado de atividade como kInactive[SWS_DM_00843]. Supõe-se que isto sinalize ao notificador registado o fim da comunicação de diagnóstico ativa. Pergunta Q-93c30267eb100ed7 (aberta)
Este texto foi gerado por um sistema de IA e revisado editorialmente.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b40c717f1178ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função SetDiagnosticSessionNotifier pertence à classe ara::diag::Conversation e é disponibilizada através do ficheiro de cabeçalho #include "ara/diag/conversation.h"[SWS_DM_00697]. Ela permite que as aplicações registem uma função de notificação (notifier) que é acionada a cada mudança de sessão de diagnóstico.
Uso e semântica de chamada
A chamada é realizada de forma síncrona numa instância de ara::diag::Conversation passando o parâmetro notifier do tipo SessionControl TypeNotifier[SWS_DM_00697]. Uma chamada de método consecutiva ou repetida substitui totalmente o notificador registado anteriormente AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.12 «SetDiagnosticSessionNotifier».
Valor de retorno e tratamento de erros
Como valor de retorno, a interface devolve um ara::core::Result<void>, que ou confirma um registo bem-sucedido ou contém um objeto de erro [SWS_DM_00697]. A especificação não define códigos de erro padronizados para esta chamada; presume-se, portanto, que eventuais erros decorram de validações específicas da implementação. Pergunta Q-1ac7eebee90e3c22 (aberta)
Simultaneidade e restrições
Segurança de threads: O método está especificado como não seguro para threads (not thread-safe) [SWS_DM_00697]. Chamadas paralelas para a mesma instância de conversação devem, portanto, ser sincronizadas pelo lado da aplicação.
Segurança contra exceções: A função está declarada como noexcept e é considerada segura contra exceções (exception safe) [SWS_DM_00697].
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f0130e1f2bdeProcedê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::Conversation::SetSecurityLevelNotifier serve para o registo de uma função de callback que é notificada assim que o nível de segurança (SecurityLevel) da conversação de diagnóstico se altera [SWS_DM_00699]. É declarado através do cabeçalho ara/diag/conversation.hAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 «SetSecurityLevelNotifier». Como parâmetro, recebe a função a chamar notifier. Uma nova chamada do método substitui por completo uma função de notificação registada anteriormente [SWS_DM_00699].
Semântica e valor de retorno
A função está definida como noexcept e especificada como segura contra exceções (exception safe) [SWS_DM_00699]. Como tipo de retorno, fornece ara::core::Result<void>, o qual não devolve nenhum valor ou devolve um erro ocorrido [SWS_DM_00699].
Tratamento de erros
A especificação não define códigos de erro padronizados para SetSecurityLevelNotifier[SWS_DM_00699]. Presume-se, portanto, que eventuais erros devolvidos em ara::core::Result sejam específicos do fabricante ou decorrentes do runtime da plataforma subjacente. Pergunta Q-c8dd53e9d661cc78 (aberta)
Simultaneidade e restrições
No que diz respeito à segurança de threads, o método está explicitamente classificado como not thread-safe[SWS_DM_00699]. Acessos paralelos à mesma instância de ara::diag::Conversation têm, por conseguinte, de ser sincronizados do lado do chamador. Além disso, a definição da API possui o estado DRAFTAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 «SetSecurityLevelNotifier» na presente versão da documentação.
Esta nota de uso baseia-se na especificação AUTOSAR Adaptive Platform Release R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão