Notifica a las aplicaciones consumidoras sobre nuevos bloques de datos de medición disponibles para la validación de una base de tiempo.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c02e36846f4fProcedenciaPreguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Notifica a las aplicaciones consumidoras sobre nuevos bloques de datos de medición disponibles para la validación de una base de tiempo.
La interfaz ara::tsync::ConsumerTimeBaseValidationNotification informa a las aplicaciones consumidoras acerca de nuevos bloques de datos de medición disponibles de una base de tiempo. Mediante los métodos de callback SetSlaveTimingData[SWS_TS_00420] y SetPdelayInitiatorData[SWS_TS_00422], el sistema transfiere datos detallados de temporización y validación para el Time Slave así como para el iniciador de pDelay. Los desarrolladores de aplicaciones derivan de la clase, implementan el procesamiento de datos y deben asegurarse de que no se lancen excepciones, ya que todos los métodos están especificados como noexcept y seguros frente a excepciones. Asimismo, su clasificación como non_threadsafe exige sincronización en la parte de la aplicación ante accesos concurrentes.
Contexto
La clase ara::tsync::ConsumerTimeBaseValidationNotification representa una interfaz de callback en el módulo tsync de la AUTOSAR Adaptive Platform. Su propósito consiste en informar a una aplicación consumidora en cuanto haya nuevos bloques de datos registrados disponibles para una base de tiempo monitorizada.
En esta interacción intervienen fundamentalmente tres componentes:
Base de tiempo del módulo tsync: registra continuamente mediciones de tiempo y sincronización en la red de comunicación.
Interfaz ConsumerTimeBaseValidationNotification: define los puntos de entrega para bloques de datos de medición registrados a través de los métodos SetSlaveTimingData[SWS_TS_00420] y SetPdelayInitiatorData[SWS_TS_00422].
Aplicación consumidora: implementa los métodos de callback, asume los valores de medición suministrados y lleva a cabo la validación funcional de la base de tiempo.
Gracias a esta estructura, la lógica de validación específica de la aplicación queda limpiamente desacoplada del registro de datos temporales interno de la plataforma.
Ciclo de vida
Al tratarse de una clase de interfaz abstracta con métodos virtuales puros, ara::tsync::ConsumerTimeBaseValidationNotification no se puede instanciar directamente. Una aplicación consumidora deriva una clase concreta e implementa los métodos requeridos.
La creación y la titularidad recaen por completo bajo la responsabilidad de la aplicación consumidora. Presumiblemente, la aplicación genera el objeto de callback durante su fase de inicialización y lo vincula con la base de tiempo correspondiente del servicio tsync. Pregunta Q-a423ce4cbd4eeaaa (abierta)
Para la destrucción, la clase pone a disposición un destructor virtual: virtual ~ConsumerTimeBaseValidationNotification() noexcept = default;[SWS_TS_01300]. La declaración como destructor virtual asegura que las instancias de clases derivadas se puedan liberar mediante punteros a la clase base de forma segura en cuanto a tipos y sin fugas de recursos.
En cuanto a la concurrencia, los métodos de notificación SetSlaveTimingData[SWS_TS_00420] y SetPdelayInitiatorData[SWS_TS_00422] están especificados como non_threadsafe. En caso de que la llamada por parte del servicio de plataforma se produzca en el contexto de un subproceso en segundo plano, la propia implementación de la aplicación es responsable de proteger los accesos a los recursos compartidos de la aplicación. Pregunta Q-1b857df043504eec (abierta)
Ruta de uso
El flujo típico para el uso de la notificación de validación comprende los siguientes pasos:
Implementación: la aplicación consumidora implementa una clase derivada de ara::tsync::ConsumerTimeBaseValidationNotification.
Recepción de datos de medición del Time Slave: en cuanto se ha registrado un nuevo bloque de datos de medición para el Time Slave de la base de tiempo, el servicio horario invoca el método SetSlaveTimingData[SWS_TS_00420] y transfiere los datos detallados de validación a través del parámetro measurementData de tipo TimeSlaveMeasurementType.
Recepción de datos de medición del iniciador de pDelay: cuando se dispone de nuevos datos de medición para el iniciador de pDelay, se produce la llamada a SetPdelayInitiatorData[SWS_TS_00422] con los datos detallados de temporización en PdelayInitiatorMeasurementType.
Procesamiento: la aplicación consumidora evalúa los bloques de datos transmitidos para detectar errores de sincronización o desviaciones en el tiempo de ejecución.
Liberación del objeto: al finalizar la monitorización, la instancia se destruye a través del destructor virtual [SWS_TS_01300].
Diagrama de secuencia: transmisión de bloques de datos de medición registrados para el Time Slave y el iniciador de pDelay a la implementación consumidora. Fuentes: [SWS_TS_00420], [SWS_TS_00422].
Escenarios de error
Los métodos de la interfaz están diseñados para ofrecer la máxima robustez y llamadas deterministas:
Seguridad frente a excepciones: todas las funciones miembro —SetSlaveTimingData[SWS_TS_00420], SetPdelayInitiatorData[SWS_TS_00422] y el destructor [SWS_TS_01300]— están declaradas con noexcept y especificadas como seguras frente a excepciones (exception safe). Los métodos que las sobrescriben en la aplicación consumidora no deben propagar ninguna excepción hacia el exterior, ya que esto provocaría la terminación inmediata del programa.
Falta de canales de retorno: dado que los métodos de callback tienen el tipo de retorno void, los errores de procesamiento dentro de la lógica de aplicación no se pueden notificar de vuelta al módulo tsync. La aplicación debe gestionar y registrar internamente cualquier estado de error por sí misma.
Riesgos de concurrencia: debido a la propiedad non_threadsafe ([SWS_TS_00420], [SWS_TS_00422]), se debe evitar que se procesen en paralelo múltiples bloques de datos sin un bloqueo del lado de la aplicación. Interpretación: el objeto de callback también debe permanecer válido durante todo el periodo de registro en la base de tiempo para evitar accesos fatales a memoria ya liberada. Pregunta Q-934e451f6a0099c1 (abierta)
Esta guía se basa en la especificación AUTOSAR Adaptive R25-11 para el módulo tsync. Las explicaciones que carecen de referencias explícitas a la especificación constituyen interpretaciones técnicas.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán