[SWS_TS_01100]Upstream: RS_TS_00030 texto aún no importado
class SynchronizedTimeBaseProvider final {...};
Class SynchronizedTimeBaseProvider is the access to the synchronized timebase referenced by the IntstanceSpecifier. It allows to get the current time_point, the rate deviation, the current status and the received user data
Sirve a aplicaciones proveedoras de tiempo para ajustar, corregir y validar una base de tiempo sincronizada en el bus.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 29af5ad2e896ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve a aplicaciones proveedoras de tiempo para ajustar, corregir y validar una base de tiempo sincronizada en el bus.
La clase de solo movimiento ara::tsync::SynchronizedTimeBaseProvider sirve a aplicaciones proveedoras de tiempo para la inyección, corrección de tasa y validación de una base de tiempo sincronizada [SWS_TS_01101][SWS_TS_01110]. Las actualizaciones pueden desencadenar transmisiones inmediatas al bus o bien programarse como actualización local para el siguiente ciclo de transmisión [SWS_TS_01107][SWS_TS_01108]. Mientras que los accesos de lectura son seguros para hilos, todos los métodos modificadores así como el registro de notifiers requieren una invocación local al hilo o sincronizada [SWS_TS_01109][SWS_TS_01114].
Contexto
La clase ara::tsync::SynchronizedTimeBaseProvider proporciona a aplicaciones proveedoras de tiempo el acceso de control activo a una base de tiempo sincronizada, la cual está modelada mediante un ara::core::InstanceSpecifier[SWS_TS_01101]. En AUTOSAR Adaptive, la instancia actúa como interfaz entre la lógica de aplicación suministradora, el daemon local de sincronización de tiempo y los buses de comunicación conectados. A través de este componente, la aplicación inyecta nuevos valores de tiempo y datos útiles específicos de usuario en el sistema, compensa derivas mediante correcciones de tasa y recopila parámetros de validación [SWS_TS_01107][SWS_TS_01110][SWS_TS_01114].
Diagrama de contexto: integración de SynchronizedTimeBaseProvider entre aplicación proveedora, validación y transmisión por bus. Fuentes: [SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01114]
Ciclo de vida
La instanciación se realiza explícitamente a través de un ara::core::InstanceSpecifier, el cual debe hacer referencia a un PortPrototype que esté tipificado por un SynchronizedTimeBaseProviderInterface[SWS_TS_01101]. El constructor está declarado como seguro frente a excepciones y seguro para hilos [SWS_TS_01101]. Un objeto de la clase es un objeto exclusivo de solo movimiento: el constructor de copia y el operador de asignación por copia están explícitamente eliminados [SWS_TS_01104][SWS_TS_01105], mientras que la construcción por movimiento y la asignación por movimiento están soportadas [SWS_TS_01102][SWS_TS_01103].
En cuanto a la concurrencia, rige una separación estricta: las operaciones de solo lectura sobre el estado como GetCurrentTime(), GetRateDeviation() y GetUserData() son seguras para hilos y pueden ejecutarse de manera concurrente [SWS_TS_01109][SWS_TS_01111][SWS_TS_01113]. En cambio, todas las operaciones modificadoras, el registro de notificaciones así como la destrucción del objeto a través del destructor no son seguras para hilos y requieren sincronización del lado de la aplicación [SWS_TS_01106][SWS_TS_01107][SWS_TS_01114].
Ruta de uso
El uso típico se divide en el registro para respuestas de validación, así como en la transmisión de tiempo cíclica o controlada por eventos:
Registrar validación: en caso necesario, la aplicación proveedora registra un objeto de notificación a través de RegisterTimeValidationNotification() para recibir bloques de datos de sincronización de tiempo recién registrados [SWS_TS_01114]. Puede haber activo como máximo un receptor de notificaciones; un nuevo registro sobrescribe uno existente [SWS_TS_01114], mientras que UnregisterTimeValidationNotification() cancela la vinculación [SWS_TS_01115].
Establecer valor de tiempo: en caso de requerirse una distribución inmediata, la aplicación llama a SetTime(). Esto establece el valor de tiempo local e inicia inmediatamente la transmisión al bus [SWS_TS_01107]. Si, por el contrario, la transmisión al bus debe efectuarse en el siguiente ciclo regular, se utiliza UpdateTime(), con lo cual el reloj solo se actualiza localmente en un primer momento [SWS_TS_01108].
Corrección y datos útiles: mediante SetRateCorrection() se puede ajustar la deriva del reloj local mediante un factor de corrección (valores inferiores a 1.0 ralentizan el reloj, valores superiores a 1.0 lo aceleran) [SWS_TS_01110]. Se pueden actualizar datos adicionales de la base de tiempo específicos de usuario mediante SetUserData()[SWS_TS_01112].
Diagrama de secuencia: desarrollo del registro de notifier y de la actualización de tiempo con rutas de transmisión de bus alternativas. Fuentes: [SWS_TS_01107], [SWS_TS_01108], [SWS_TS_01114]
Escenarios de error
Los métodos con valor de retorno ara::core::Result<void> señalan fallos mediante códigos de error del tipo TsyncErrc sin semántica de rollback:
TsyncErrc::kInvalidUserDataSize: se produce en SetTime(), UpdateTime() y SetUserData() si los UserData transferidos superan la longitud máxima de UserData::kMaxUserDataSize (actualmente 3 bytes) [SWS_TS_01107][SWS_TS_01108][SWS_TS_01112].
TsyncErrc::kDaemonConnectionLost: se produce en SetTime() si la conexión IPC con el daemon de Time-Sync está interrumpida en el momento de la llamada [SWS_TS_01107].
TsyncErrc::kLimitsExceeded: es devuelto por SetRateCorrection() cuando el factor de corrección de tasa solicitado se encuentra fuera del rango de valores permitido [SWS_TS_01110].
TsyncErrc::kFunctionNotSupported: es notificado por SetRateCorrection() cuando la plataforma o base de tiempo subyacente no admite la corrección de tasa [SWS_TS_01110].
Esta guía se basa en la especificación AUTOSAR Adaptive Platform R25-11 (módulo tsync) y ha sido creada para autodocs.
Method that can be used by time provider applications to receive time sync parameters. A maximum of one notifier can be registered. Every further registration overwrites the current registration.
A method that can be used to set a new time value for the clock. The clock value is only updated locally, transmission on the bus will happen in the next cycle.
Method that can be used by time provider applications to receive time sync parameters. A maximum of one notifier can be registered. Every further registration overwrites the current registration.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 89b44278d606Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método RegisterTimeValidationNotification forma parte de la clase ara::tsync::SynchronizedTimeBaseProvider y se incluye a través del encabezado #include "ara/tsync/synchronized_time_base_provider.h"[SWS_TS_01114]. Sirve a las aplicaciones Time-Provider para recibir parámetros de sincronización temporal [SWS_TS_01114]. A través del parámetro timeBaseValidationNotification se pasa una referencia a un objeto de notificación del tipo ProviderTimeBaseValidationNotification, el cual es informado tan pronto como está disponible un nuevo bloque de datos para la base de tiempo [SWS_TS_01114]. El método no devuelve ningún valor (void) [SWS_TS_01114].
Manejo de errores
El método está declarado como noexcept y posee la propiedad exception safe[SWS_TS_01114]. No lanza excepciones ni devuelve códigos de error [SWS_TS_01114].
Concurrencia y restricciones
Durante el uso, deben observarse las siguientes restricciones:
Límite de registro: Solo se puede registrar un notificador como máximo; cualquier registro adicional sobrescribe el registro actual [SWS_TS_01114].
Seguridad de hilos: La función está especificada como non_threadsafe[SWS_TS_01114]. Las llamadas sobre la misma instancia deben sincronizarse del lado de la aplicación en caso de acceso paralelo.
Interacción
Mientras que esta función implementa el registro del lado del proveedor de tiempo (Provider) [SWS_TS_01114], la clase ara::tsync::SynchronizedTimeBaseConsumer con RegisterTimeValidationNotification y el tipo ConsumerTimeBaseValidationNotification representa la contrapartida funcional para los consumidores de tiempo (Consumer) [SWS_TS_01016].
Esta nota de uso fue generada automáticamente a partir de la especificación de AUTOSAR.
Rate correction factor applied to the local clock value. A factor smaller than 1.0 slows down the local clock by that factor, a value greater than 1.0 speeds up the clock.
PortInterfaceMap- A PortPrototype that is referenced by a pingViolation TimeSyncPortPrototypeToTimeBaseMapping needs to be typed by a SynchronizedTimeBaseProviderInterface.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to an PortPrototype of a PortPrototype typed by a SynchronizedTimeBaseProviderInterface
Request a governed re-review of this record. The record is not changed immediately.
Method that can be used by time provider applications to receive time sync parameters.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4be2caa7a1a0ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método UnregisterTimeValidationNotification de la clase ara::tsync::SynchronizedTimeBaseProvider se proporciona a través del archivo de encabezado ara/tsync/synchronized_time_base_provider.h[SWS_TS_01115]. Sirve a aplicaciones proveedoras de tiempo (Time Provider Applications) en el contexto de la sincronización temporal y la recepción de parámetros de sincronización temporal [SWS_TS_01115]; según su identificador, es de suponer que su propósito radica en dar de baja una notificación previamente registrada para la validación temporal. Pregunta Q-49ba26b4b16dd5c7 (abierta)
Con respecto al contexto de llamada y la semántica, se aplican las siguientes directrices:
Firma y retorno: La función no acepta parámetros y no tiene valor de retorno (void) [SWS_TS_01115].
Gestión de errores: La operación está declarada como noexcept y especificada como segura contra excepciones (exception safe) [SWS_TS_01115]. No están previstos códigos de error ni notificaciones a DET o DEM para esta interfaz.
Concurrencia: La función está clasificada explícitamente como non_threadsafe[SWS_TS_01115]. Por lo tanto, las llamadas paralelas sobre la misma instancia de SynchronizedTimeBaseProvider deben ser sincronizadas por el llamador.
En la interacción de la arquitectura de sincronización temporal, existe para los receptores de tiempo (Time Consumer Applications) una contraparte directa en la clase ara::tsync::SynchronizedTimeBaseConsumer (definida en ara/tsync/synchronized_time_base_consumer.h), la cual presenta propiedades idénticas en cuanto a seguridad de hilos y seguridad frente a excepciones [SWS_TS_01017].
Esta nota de uso fue generada automáticamente y se basa exclusivamente en la especificación R25-11.
A method that can be used to set a new time value for the clock. The clock value is only updated locally, transmission on the bus will happen in the next cycle.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a90a9a9d69eeProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método UpdateTime del encabezado ara/tsync/synchronized_time_base_provider.h pertenece a la clase ara::tsync::SynchronizedTimeBaseProvider[SWS_TS_01108]. Sirve para definir un nuevo valor de tiempo para el reloj. El método recibe el punto temporal a establecer timePoint con el parámetro de plantilla Duration, así como datos de aplicación definidos por el usuario userData[SWS_TS_01108]. El valor del reloj se actualiza de forma inmediata localmente; la transmisión a través del bus solo tiene lugar en el ciclo siguiente [SWS_TS_01108].
Manejo de errores
La llamada está declarada con noexcept y devuelve un ara::core::Result<void>[SWS_TS_01108]. Si la longitud de los userData pasados superara el tamaño máximo permitido, que está limitado por UserData::kMaxUserDataSize a actualmente 3 bytes, la operación fallará [SWS_TS_01108]. En este caso, el objeto de resultado devuelve el código de error TsyncErrc::kInvalidUserDataSize, sin contemplarse semántica de reversión (no_rollback_semantics) para el caso de error [SWS_TS_01108].
Concurrencia y restricciones
Para la integración, debe tenerse en cuenta que UpdateTime está especificado como no seguro para hilos (non_threadsafe) [SWS_TS_01108]. Si se utilizan instancias de SynchronizedTimeBaseProvider en contextos de ejecución concurrentes, el código llamador debe encargarse de una sincronización adecuada. Sin embargo, la función garantiza seguridad frente a excepciones (exception safe) [SWS_TS_01108].
Este texto ha sido generado por una IA a partir de la especificación.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán