Sirve para devolver los datos útiles de una respuesta de diagnóstico positiva sin Service-ID en operaciones de descarga.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c06f480862f4ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve para devolver los datos útiles de una respuesta de diagnóstico positiva sin Service-ID en operaciones de descarga.
La estructura de datos ara::diag::DownloadService::OperationOutput sirve como contenedor de transporte para los datos útiles de respuestas de diagnóstico positivas en servicios de descarga ([SWS_DM_00785]). En este proceso, la aplicación adaptativa rellena el campo responseData con los bytes de resultado y transfiere la estructura a Diagnostic Management ([SWS_DM_00786]). Una restricción esencial es que responseData debe contener obligatoriamente los datos útiles sin Service-ID y que se esperan contenidos diferentes según la operación, como DownloadData o RequestDownloadExit ([SWS_DM_00786]).
Contexto
La estructura ara::diag::DownloadService::OperationOutput es un tipo de datos especializado del módulo de diagnóstico dentro de la AUTOSAR Adaptive Platform y se proporciona a través del archivo de cabecera ara/diag/download.h ([SWS_DM_00785]). Su función primaria consiste en encapsular los datos útiles de un mensaje de respuesta de diagnóstico positiva para servicios de descarga (AUTOSAR_AP_SWS_Diagnostics §8.14.2 «Struct: OperationOutput»). Dentro de la arquitectura de diagnóstico, la estructura actúa como contenedor de transporte de datos entre la implementación concreta del servicio en la aplicación adaptativa y el entorno de ejecución de diagnóstico subyacente (ara::diag), el cual a su vez interactúa con el cliente de diagnóstico externo (téster) (AUTOSAR_AP_SWS_Diagnostics §7 «API Specification»).
El único miembro que contiene es el campo público responseData de tipo ara::core::Vector<std::uint8_t> ([SWS_DM_00786]). Transporta los bytes netos de datos útiles y de carga útil que deben devolverse al téster de diagnóstico tras un procesamiento correcto de una operación de descarga.
Ciclo de vida
Como estructura de datos pura (struct), OperationOutput no posee máquinas de estados internas ni métodos propios ([SWS_DM_00785]). Su ciclo de vida es efímero y está directamente vinculado al procesamiento síncrono o asíncrono de una petición de diagnóstico individual:
Creación: la aplicación instancia la estructura en cuanto una operación de descarga ha podido completarse con éxito y se dispone de datos de respuesta. La creación debería realizarse típicamente en la pila o dentro de una cadena de callbacks o futures. Pregunta (abierta)
Llenado y transferencia: la aplicación rellena el vector responseData con los bytes calculados ([SWS_DM_00786]). Con la devolución a Diagnostic Management, la responsabilidad sobre los datos se transfiere a la plataforma.
Destrucción: en cuanto la capa de plataforma serializa los datos y envía la trama UDS, la instancia se libera.
En cuanto a la concurrencia, debe tenerse en cuenta que OperationOutput, al ser un objeto de valor pasivo, no es seguro para subprocesos. Si las operaciones se procesan en subprocesos de trabajo concurrentes de la aplicación, debe garantizarse que no se produzcan accesos competidores a responseData antes de transferir el objeto a ara::diag.
Ruta de uso
El uso típico de OperationOutput se produce en el marco del procesamiento de peticiones de diagnóstico de descarga. Un téster de diagnóstico externo envía una petición al vehículo, la cual es recibida por la plataforma y reenviada al método adecuado de la interfaz DownloadService en la aplicación adaptativa (AUTOSAR_AP_SWS_Diagnostics §7 «API Specification»). Tras un procesamiento interno correcto, la aplicación crea una instancia de OperationOutput y transfiere los datos de respuesta.
Al rellenar responseData, debe tenerse en cuenta que los datos útiles deben proporcionarse sin el Service-ID (SID) ([SWS_DM_00786]). La plataforma añade de forma autónoma el SID específico del protocolo, así como la eventual información de cabecera. Además, la estructura exacta del contenido depende de la operación invocada: en DownloadData o RequestDownloadExit, difiere la expectativa semántica respecto al inicio y la composición de los datos de respuesta en el vector ([SWS_DM_00786]).
Escenarios de error
Dado que OperationOutput está especificado explícitamente para mensajes de respuesta positiva (AUTOSAR_AP_SWS_Diagnostics §8.14.2 «Struct: OperationOutput»), no existen campos para códigos de error o respuestas negativas dentro de la estructura de datos. Si se produce un error durante la ejecución de la operación de descarga (p. ej., rangos de direcciones no válidos, orden incorrecto de bloques o transferencias interrumpidas), es de suponer que OperationOutput no se evaluará; en su lugar, la aplicación señaliza el fallo a través de los canales de error de la plataforma, tras lo cual se genera un código de respuesta negativa (NRC). Pregunta (abierta)
Se produce un error por parte de la aplicación al utilizar OperationOutput si el Service-ID se inserta accidentalmente en responseData. Esto contradice la especificación [SWS_DM_00786] y es de suponer que origine un formateo incorrecto de la trama. Pregunta (abierta) Asimismo, un orden de bytes erróneo o una cantidad incompleta de datos provoca, según la operación específica, errores de protocolo por parte del téster ([SWS_DM_00786]).
Esta guía se basa en la especificación AUTOSAR Adaptive Platform Release R25-11 y se ha generado de forma automatizada.
Diagrama de clases 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 en alemán