Serve para retornar os dados úteis de uma resposta de diagnóstico positiva sem Service-ID em operações de download.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c06f480862f4ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve para retornar os dados úteis de uma resposta de diagnóstico positiva sem Service-ID em operações de download.
A estrutura de dados ara::diag::DownloadService::OperationOutput serve como contentor de transporte para os dados úteis de respostas de diagnóstico positivas em serviços de download ([SWS_DM_00785]). A aplicação adaptativa preenche aqui o campo responseData com os bytes de resultado e transmite a estrutura ao Diagnostic Management ([SWS_DM_00786]). Uma condição limite essencial é que responseData deve conter os dados úteis obrigatoriamente sem Service-ID e, dependendo da operação como DownloadData ou RequestDownloadExit, são esperados conteúdos distintos ([SWS_DM_00786]).
Contexto
A estrutura ara::diag::DownloadService::OperationOutput é um tipo de dados especializado do módulo de diagnóstico dentro da AUTOSAR Adaptive Platform e é disponibilizada através do ficheiro de cabeçalho ara/diag/download.h ([SWS_DM_00785]). A sua função primária consiste em encapsular os dados úteis de uma mensagem de resposta de diagnóstico positiva para serviços de download (AUTOSAR_AP_SWS_Diagnostics §8.14.2 «Struct: OperationOutput»). Dentro da arquitetura de diagnóstico, a estrutura atua como contentor de transporte de dados entre a implementação concreta de serviço na aplicação adaptativa e o ambiente de execução de diagnóstico subjacente (ara::diag), o qual, por sua vez, interage com o cliente de diagnóstico externo (tester) (AUTOSAR_AP_SWS_Diagnostics §7 «API Specification»).
O único membro contido é o campo público responseData do tipo ara::core::Vector<std::uint8_t> ([SWS_DM_00786]). Este transporta os bytes puros de dados úteis e payload que devem ser enviados de volta ao tester de diagnóstico após o processamento bem-sucedido de uma operação de download.
Ciclo de vida
Como estrutura de dados pura (struct), OperationOutput não possui máquinas de estados internas nem métodos próprios ([SWS_DM_00785]). O seu ciclo de vida é efémero e está diretamente associado ao processamento síncrono ou assíncrono de um único pedido de diagnóstico:
Criação: a estrutura é instanciada pela aplicação assim que uma operação de download pôde ser concluída com sucesso e os dados de resposta estiverem disponíveis. A criação deverá ocorrer tipicamente na pilha ou dentro de uma cadeia de callbacks ou de futures. Pergunta (aberta)
Preenchimento e transmissão: a aplicação preenche o vetor responseData com os bytes calculados ([SWS_DM_00786]). Com o retorno ao Diagnostic Management, a responsabilidade pelos dados transita para a plataforma.
Destruição: assim que a camada da plataforma tiver serializado os dados e enviado o frame UDS, a instância é libertada.
No que diz respeito à concorrência, deve notar-se que OperationOutput, como objeto de valor passivo, não é thread-safe. Se as operações forem processadas em worker threads concorrentes da aplicação, deve assegurar-se que não ocorram acessos concorrentes a responseData antes de o objeto ser transmitido a ara::diag.
Caminho de utilização
A utilização típica de OperationOutput ocorre no âmbito do processamento de pedidos de diagnóstico de download. Um tester de diagnóstico externo envia um pedido ao veículo, o qual é recebido pela plataforma e encaminhado para o método correspondente da interface DownloadService na aplicação adaptativa (AUTOSAR_AP_SWS_Diagnostics §7 «API Specification»). Após o processamento interno bem-sucedido, a aplicação cria uma instância de OperationOutput e transmite os dados de resposta.
Ao preencher responseData, deve ter-se em conta que os dados úteis devem ser disponibilizados sem o Service-ID (SID) ([SWS_DM_00786]). A plataforma complementa de forma autónoma o SID específico do protocolo, bem como eventuais informações de cabeçalho. Além disso, a estrutura exata do conteúdo depende da operação chamada: em DownloadData ou RequestDownloadExit, a expectativa semântica quanto ao início e à estrutura dos dados de resposta no vetor difere ([SWS_DM_00786]).
Cenários de erro
Como OperationOutput é explicitamente especificado para mensagens de resposta positiva (AUTOSAR_AP_SWS_Diagnostics §8.14.2 «Struct: OperationOutput»), não existem campos para códigos de erro ou respostas negativas dentro da estrutura de dados. Se ocorrer um erro durante a execução da operação de download (por ex., intervalos de endereços inválidos, ordem incorreta de blocos ou transmissões abortadas), OperationOutput presumivelmente não é avaliado; em vez disso, a aplicação sinaliza a falha através de canais de erro da plataforma, após o que é gerado um código de resposta negativo (NRC). Pergunta (aberta)
Ocorre um erro do lado da aplicação na utilização de OperationOutput quando o Service-ID é inserido inadvertidamente em responseData. Isto contradiz a especificação [SWS_DM_00786] e deverá resultar numa formatação de frame defeituosa. Pergunta (aberta) Do mesmo modo, uma ordem de bytes incorreta ou um volume de dados incompleto conduz, consoante a operação específica, a erros de protocolo do lado do tester ([SWS_DM_00786]).
Este guia baseia-se na especificação AUTOSAR Adaptive Platform Release R25-11 e foi gerado automaticamente.
Diagrama de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
Content of positive response message (without SID) Depending on the operation (e.g.: DownloadData, RequestDownloadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.
Content of positive response message (without SID) Depending on the operation (e.g.: DownloadData, RequestDownloadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão