Permite la transmisión periódica de mensajes de diagnóstico UDS en soporte del servicio 0x2A.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fabfa1b95261ProcedenciaPreguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite la transmisión periódica de mensajes de diagnóstico UDS en soporte del servicio 0x2A.
La clase apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler proporciona una interfaz puramente virtual para el procesamiento del servicio UDS periódico 0x2A a través de canales de diagnóstico específicos del transporte ([SWS_DM_01064]). Permite a la gestión de diagnóstico determinar los límites de datos útiles y de cantidad específicos del canal, así como la transmisión ordenada de varios mensajes UDS mediante PeriodicTransmit ([SWS_DM_01067]). Si falla el envío de un mensaje, la operación se cancela y el estado se notifica mediante una función de confirmación. Dado que todos los métodos están especificados como no seguros para subprocesos (thread-safe), el invocador debe sincronizar los accesos concurrentes.
Contexto
La clase puramente virtual apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler representa la interfaz estandarizada para admitir la lectura periódica de datos de diagnóstico conforme al servicio UDS 0x2A ([SWS_DM_01064], AUTOSAR_AP_SWS_Diagnostics §C.3.1 «Class: UdsTransportProtocolPeriodicHandler»). En el sistema de diagnóstico de la AUTOSAR Adaptive Platform, desacopla la gestión de diagnóstico de nivel superior de la implementación concreta de la red y del protocolo de transporte. Mientras que la gestión de diagnóstico evalúa las solicitudes entrantes para transmisiones periódicas y compone los paquetes de datos correspondientes, el manejador asume la transmisión efectiva de estos mensajes periódicos a través de una conexión concreta ([SWS_DM_01067]). En este contexto, actúan como interlocutores la gestión de diagnóstico en el lado del invocador, así como el respectivo canal de comunicación, el cual se identifica mediante un ChannelID unívoco ([SWS_DM_01065], [SWS_DM_01066]).
Dado que UdsTransportProtocolPeriodicHandler está definida como una interfaz base abstracta con métodos puramente virtuales, no puede instanciarse directamente ([SWS_DM_01064]). La creación de instancias concretas de manejadores se realiza presumiblemente mediante componentes de controlador específicos del transporte (por ejemplo, para protocolos basados en DoIP o CAN). Pregunta Q-d0b3bf3b0c14dcf6 (abierta) El ciclo de vida de la instancia suele estar vinculado a la disponibilidad de la pila de protocolos de transporte correspondiente. Para una destrucción polimórfica limpia al finalizar la pila de comunicaciones, la clase proporciona un destructor virtual ~UdsTransportProtocolPeriodicHandler() ([SWS_DM_02089], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.1.1 «Destructor»).
En lo relativo a la concurrencia, todas las funciones miembro de la clase están designadas explícitamente como no seguras para subprocesos (not thread-safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Por lo tanto, en caso de acceso en paralelo a través de múltiples hilos o solicitudes simultáneas sobre el mismo ChannelID, los invocadores deben sincronizar los accesos bajo su propia responsabilidad.
Ruta de uso
Un flujo típico para llevar a cabo transmisiones periódicas de mensajes para el servicio 0x2A se divide en los siguientes pasos:
Determinación de la longitud máxima de datos útiles: la gestión de diagnóstico invoca GetMaxPayloadLength(channelId) para verificar la longitud máxima de datos útiles admitida en la conexión especificada para una única transmisión periódica ([SWS_DM_01066], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.1 «GetMaxPayloadLength»).
Ejecución de la transmisión periódica: la gestión de diagnóstico transfiere una lista ordenada de mensajes en un ara::core::Vector<UdsMessageConstPtr> al método PeriodicTransmit(channelId, messages) ([SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.3 «PeriodicTransmit»). El manejador transmite los mensajes contenidos en el orden predeterminado.
Confirmación: la capa de transporte señala el resultado de la operación de envío mediante la invocación de PeriodicTransmit Confirmation, la cual devuelve la cantidad de mensajes transmitidos con éxito y el vector original ([SWS_DM_01067]).
Durante la ejecución de PeriodicTransmit, todos los mensajes de la lista se transmiten uno tras otro. Si falla la transmisión de un solo mensaje, todo el proceso de envío se cancela de inmediato ([SWS_DM_01067]). En este caso, los mensajes subsiguientes de la lista ya no se envían. Para el diagnóstico de errores y la información a la gestión de diagnóstico, se desencadena aun así la invocación de confirmación PeriodicTransmit Confirmation. Esta contiene el número de mensajes transmitidos con éxito hasta la cancelación, así como, sin modificaciones, el vector completo con mensajes UDS ([SWS_DM_01067]). De este modo, la gestión de diagnóstico puede rastrear con exactitud qué mensaje causó el error.
Todos los métodos de la interfaz están especificados como noexcept y con seguridad frente a excepciones (exception safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Los estados de error durante la transmisión no dan lugar a excepciones de C++, sino que se notifican de manera determinista a través del mecanismo de confirmación previsto.
Esta guía de clases se basa en la especificación AUTOSAR Adaptive Platform Release R25-11 y se ha generado automáticamente.
Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.
Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ceb97c8b447fProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método puramente virtual PeriodicTransmit de la interfaz apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler sirve para el envío agrupado de mensajes UDS periódicos a través de una conexión de transporte existente [SWS_DM_01067]. El Diagnostic Management (DM) lo llama típicamente en el marco de la transmisión periódica según el planificador tipo 1 conforme a ISO 14229-1, en el cual los DID periódicos (PDID) configurados se activan cíclicamente AUTOSAR_AP_SWS_Diagnostics §Scheduler Periodic Transmission[SWS_DM_01060].
Parámetros y semántica
channelId: identificador del canal de comunicación concreto a través del cual se realiza la transmisión [SWS_DM_01067].
messages: lista ordenada (ara::core::Vector<UdsMessageConstPtr>) de todos los mensajes que deben transmitirse inmediatamente uno tras otro [SWS_DM_01067].
La función no proporciona ningún valor de retorno y garantiza la seguridad frente a excepciones declarada como noexcept[SWS_DM_01067]. Los mensajes se procesan estrictamente en el orden transferido.
Gestión de errores y confirmación
Si falla el envío de un solo mensaje, todo el proceso de envío se interrumpe de inmediato [SWS_DM_01067]. Para la notificación del resultado se invoca la función de confirmación PeriodicTransmitConfirmation del UdsTransportProtocolMgr[SWS_DM_01069]. Esta devolución de llamada transfiere la cantidad de mensajes transmitidos con éxito, así como el mismo vector de mensajes original [SWS_DM_01067].
concurrencia
El método está especificado como not thread-safe[SWS_DM_01067]. Las llamadas paralelas en la misma instancia deben sincronizarse en el lado del llamador.
Este texto ha sido generado por una IA a partir de la especificación AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán