Configura a concorrência permitida para acessos de leitura e escrita em portas para identificadores de dados.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ec523fe189beProcedênciaPerguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Configura a concorrência permitida para acessos de leitura e escrita em portas para identificadores de dados.
A estrutura ara::diag::DataIdentifierConcurrencyType especifica o comportamento de concorrência permitido para portas de diagnóstico associadas a identificadores de dados (Data Identifier) [SWS_DM_00936]. Através das variáveis-membro read, write e readWrite, a aplicação define em que medida o Diagnostic Management (DM) pode executar chamadas de leitura e escrita em paralelo. Como condição de contorno essencial, todos os campos são pré-inicializados defensivamente por padrão com ConcurrencyType::kNotConcurrent, de modo que uma execução concorrente só é liberada mediante definição explícita para kConcurrent[SWS_DM_00939].
Contexto
A estrutura C++ ara::diag::DataIdentifierConcurrencyType serve, na AUTOSAR Adaptive Platform, para a especificação do comportamento de concorrência em portas vinculadas a identificadores de dados de diagnóstico (Data Identifier, DID) [SWS_DM_00936]. Ela atua como tipo de dados de configuração padronizado, através do qual um software de aplicação declara as suas capacidades para processamento paralelo perante o sistema de tempo de execução de diagnóstico (AUTOSAR_AP_SWS_Diagnostics §8.8.2 «Struct: DataIdentifierConcurrencyType»). A estrutura faz parte das definições de interface para o módulo diag (AUTOSAR_AP_SWS_Diagnostics p. 79).
O principal parceiro de interação é o Diagnostic Management (DM). As requisições de diagnóstico recebidas são acolhidas pelo DM e encaminhadas para os métodos correspondentes da porta DataIdentifier. Com base nos valores depositados em DataIdentifierConcurrencyType, o DM decide se as operações de leitura e escrita podem ser chamadas de forma concorrente ou se devem ser serializadas sequencialmente [SWS_DM_00939].
Ciclo de vida
A estrutura é incluída através do arquivo de cabeçalho ara/diag/concurrency.h e instanciada como um objeto de dados C++ puro (struct) [SWS_DM_00936]. Na criação, todas as variáveis-membro contidas são inicializadas defensivamente com o valor padrão ConcurrencyType::kNotConcurrent[SWS_DM_00937]. Isso assegura que, sem liberação explícita pela aplicação, não ocorram chamadas paralelas pelo DM.
O ciclo de vida da configuração da estrutura está tipicamente vinculado à inicialização da respectiva porta DataIdentifier. A aplicação cria o objeto, define os graus de concorrência desejados e passa a configuração para a porta. Durante a operação de diagnóstico ativa subsequente, as configurações permanecem inalteradas, permitindo que o Diagnostic Management escalone chamadas de método de forma determinística (AUTOSAR_AP_SWS_Diagnostics §8.8.2.1 «Public Member Variables»).
A estrutura subdivide a concorrência em três campos de configuração ortogonais:
read: define o tipo de concorrência para acessos puramente de leitura (Reads) [SWS_DM_00937].
write: define o tipo de concorrência para acessos de escrita (Writes) [SWS_DM_00938].
readWrite: define o comportamento na chamada conjunta e paralela de métodos de leitura e escrita [SWS_DM_00939].
Caminho de utilização
Um caminho de uso regular começa na disponibilização de um serviço de diagnóstico por uma aplicação adaptativa. Se a implementação interna da porta for thread-safe, a aplicação pode liberar a execução paralela de acessos de leitura e escrita. Para isso, cria-se uma instância de DataIdentifierConcurrencyType e define-se o campo readWrite como ConcurrencyType::kConcurrent[SWS_DM_00939]. Do mesmo modo, read e write podem ser configurados conforme a necessidade [SWS_DM_00937], [SWS_DM_00938].
Assim que a porta DataIdentifier estiver registada no DM, o DM recebe comandos de diagnóstico externos e encaminha-os (AUTOSAR_AP_SWS_Diagnostics p. 1115). Com kConcurrent definido, o DM pode executar chamadas de leitura e escrita recebidas em simultâneo, otimizando o débito e a latência [SWS_DM_00939]. Se a configuração permanecer no valor predefinido kNotConcurrent, o DM serializa as chamadas.
Diagrama de sequência: fluxo típico de configuração e controlo de chamadas simultâneas pelo Diagnostic Management (DM). Fontes: [SWS_DM_00936], [SWS_DM_00939].
Este guia resume a especificação de ara::diag::DataIdentifierConcurrencyType no AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão