Sirve para la recepción y devolución de datos útiles en respuestas positivas de servicios de rutina genéricos.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d9df3888892fProcedenciaPreguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve para la recepción y devolución de datos útiles en respuestas positivas de servicios de rutina genéricos.
La estructura ara::diag::GenericRoutine::OperationOutput sirve como estructura de retorno para mensajes de respuesta positiva de servicios de rutina genéricos en AUTOSAR Adaptive [SWS_DM_00633]. Tras la ejecución exitosa de una rutina, la aplicación instancia la estructura y rellena el miembro responseData con los datos útiles del resultado SWS Diagnostics p. 80. Una condición marginal esencial es que el vector responseData contenga exclusivamente los datos puros del resultado y que el RoutineIdentifier no debe estar incluido explícitamente [SWS_DM_00633].
Contexto
La estructura ara::diag::GenericRoutine::OperationOutput sirve en el módulo de diagnóstico de AUTOSAR Adaptive como contenedor de datos dedicado para mensajes de respuesta positiva de servicios de rutina genéricos [SWS_DM_00633]. Está disponible a través de la cabecera ara/diag/generic_routine.h[SWS_DM_00633] y encapsula los datos útiles que una aplicación de diagnóstico adaptativa devuelve a Diagnostic Management (ara::diag) tras la ejecución exitosa de una rutina. En la interacción participan primariamente tres instancias: el tester de diagnóstico externo como emisor de solicitudes de rutina, el framework de plataforma ara::diag para el procesamiento de protocolos y la implementación específica de la aplicación de GenericRoutine, que ejecuta la lógica funcional y proporciona el resultado SWS Diagnostics p. 80. La tarea fundamental de OperationOutput consiste en proporcionar de forma estructurada los datos puros de salida de la rutina, no formando parte de esta estructura de datos expresamente el RoutineIdentifier[SWS_DM_00633].
Ciclo de vida
Como estructura de datos ligera (struct), OperationOutput posee un ciclo de vida de valores simple. La instanciación se realiza según las necesidades por parte de la aplicación de diagnóstico adaptativa tan pronto como una orden dirigida a la rutina (por ejemplo, inicio, detención o consulta de resultados) se haya podido completar positivamente. El único elemento de datos es responseData de tipo ara::core::Vector<std::uint8_t>[SWS_DM_00633]. La aplicación asigna el vector, lo completa con los datos de retorno específicos de la aplicación y transfiere la estructura lista al subsistema de diagnóstico. El retorno al framework de diagnóstico suele tener lugar típicamente de forma asíncrona a través de tipos Result o Future de ara::core (interpretación: convención de interfaz asíncrona de la Adaptive Platform). Pregunta Q-e672dfb8b9ff416a (abierta) Tras la transferencia, la responsabilidad de la serialización pasa a ara::diag. Tan pronto como los datos se transmiten o se transfieren a búferes internos, la estructura se destruye de nuevo al salir del ámbito de validez correspondiente. En cuanto a la concurrencia, cabe señalar que OperationOutput se crea para el contexto de una ejecución de operación individual; normalmente no se produce un acceso compartido y no protegido entre varios hilos de ejecución.
Ruta de uso
El flujo habitual para el uso de OperationOutput comprende varias fases sucesivas:
Recepción de solicitud: Un cliente de diagnóstico envía una solicitud RoutineControl de UDS, que la capa de diagnóstico reenvía a la instancia de GenericRoutine correspondiente SWS Diagnostics p. 84.
Ejecución: La aplicación adaptativa ejecuta la rutina solicitada y procesa los parámetros de entrada.
Generación de resultados: Tras una ejecución satisfactoria, la aplicación crea un ejemplar de OperationOutput y completa responseData con los valores de byte resultantes [SWS_DM_00633].
Transferencia de respuesta: La estructura se devuelve como resultado positivo de la operación a ara::diag.
Transmisión de respuesta: El Diagnostic Management asume previsiblemente el antepuesto automático del RoutineIdentifier al campo responseData al ensamblar la respuesta UDS (interpretación: adición de la cabecera de protocolo por parte del demonio) y envía el paquete completo al cliente [SWS_DM_00633]. Pregunta Q-ccdd2867b87d00d1 (abierta)
Diagrama de secuencia: Flujo típico de la provisión de datos mediante OperationOutput en caso de ejecución satisfactoria de la rutina. Fuentes: [SWS_DM_00633], SWS Diagnostics p. 80.
Escenarios de error
Si se produce un error durante el procesamiento de la rutina o si los datos de entrada transferidos no son válidos, se cancela la ruta de uso de OperationOutput. En caso de error, es previsible que la aplicación transmita un código de error al Diagnostic Management en lugar de OperationOutput, con lo que se desencadena una respuesta UDS negativa (interpretación: ruta de error mediante Result/Error-Domain). Pregunta (abierta) Por lo tanto, se considera una condición previa esencial para el uso de OperationOutput que la operación de rutina haya finalizado por completo y sin errores. Como poscondición, la aplicación garantiza que responseData contenga exclusivamente los datos útiles puros del mensaje de respuesta positivo y que no se incluyan prefijos de protocolo como RoutineIdentifier[SWS_DM_00633]. Si una rutina finaliza satisfactoriamente pero no genera datos de retorno adicionales, el vector responseData permanece vacío SWS Diagnostics p. 70.
Esta guía se basa en la especificación de AUTOSAR Adaptive para el módulo Diagnostics (R25-11). Las explicaciones se basan en el extracto de la especificación y están sujetas al marco de asunciones documentado.
Diagrama de clases UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán