Proporciona una instantánea consistente de tiempo y estado de una base de tiempo sincronizada para su evaluación.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fbf296ab413aProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Proporciona una instantánea consistente de tiempo y estado de una base de tiempo sincronizada para su evaluación.
La clase ara::tsync::SynchronizedTimeBaseStatus encapsula una instantánea inmutable de una base de tiempo sincronizada en el momento de su creación. Proporciona métodos para leer de forma segura para hilos las marcas de tiempo de creación locales y sincronizadas, el estado de sincronización, así como indicadores de estado para la corrección de tasa y datos útiles específicos del usuario [SWS_TS_01053]. Si la base de tiempo aún no se ha sincronizado desde el inicio del sistema, la consulta de la hora sincronizada devuelve un opcional vacío [SWS_TS_01055]. Dado que el constructor por defecto está eliminado, el objeto suele ser creado por la base de tiempo y transferido a la aplicación mediante semántica por valor.
Contexto
La clase ara::tsync::SynchronizedTimeBaseStatus representa una instantánea inmutable (snapshot) de un punto en el tiempo, incluyendo todos los estados asociados de una base de tiempo sincronizada. En sistemas de automoción distribuidos, sirve para el desacoplamiento temporal entre la base de tiempo que progresa dinámicamente y la aplicación que realiza la evaluación: en lugar de consultar estados volátiles directamente sobre la base de tiempo en ejecución, la aplicación recibe una imagen internamente coherente de la información de tiempo y de estado en el momento de creación del objeto. Para ello, la clase combina valores temporales del reloj monocromático local y del tiempo sincronizado, vinculándolos con el estado de sincronización [SWS_TS_01053], indicadores de estado para la corrección de tasa y datos útiles específicos de la aplicación que se recibieron del Time Master de la base de tiempo [SWS_TS_01056]. Como interlocutores principales actúan, por consiguiente, la base de tiempo suministradora del módulo tsync y la aplicación consumidora.
Ciclo de vida
El ciclo de vida de una instancia de SynchronizedTimeBaseStatus está diseñado para preservar la consistencia de la instantánea:
Creación: El constructor por defecto está eliminado ([SWS_TS_01061]). Por tanto, las aplicaciones no pueden instanciar objetos de estado; es de prever que la creación se realice exclusivamente de forma interna a través de la base de tiempo correspondiente de la plataforma. Pregunta Q-ed50a9c63b8e2481 (abierta)
Propiedad y transferencia: Para devolver la instantánea a las aplicaciones mediante semántica por valor, la clase proporciona un constructor de copia noexcept ([SWS_TS_01058]). Para transferencias de propiedad eficientes en el uso de recursos, existen además un constructor de movimiento ([SWS_TS_01057]), así como los correspondientes operadores de asignación por copia y por movimiento ([SWS_TS_01060], [SWS_TS_01059]). La aplicación receptora asume la propiedad completa del objeto.
Destrucción: El destructor está especificado como destructor por defecto con noexcept ([SWS_TS_01062]) y libera los recursos de manera determinista.
Concurrencia: Todos los métodos de lectura para la consulta de estado están definidos como seguros para hilos (thread-safe) y seguros frente a excepciones (exception safe) ([SWS_TS_14176], [SWS_TS_01055]). Por lo tanto, varios hilos pueden evaluar la misma instantánea de forma concurrente y sin sincronización adicional. Únicamente las operaciones de asignación y de construcción son non_threadsafe ([SWS_TS_01057], [SWS_TS_01058]).
Ruta de uso
Una vez que una aplicación ha recibido una instancia de SynchronizedTimeBaseStatus de la base de tiempo ([SWS_TS_01058]), la evaluación se lleva a cabo habitualmente a lo largo de un orden establecido:
En primer lugar, la aplicación comprueba el tiempo de creación sincronizado mediante GetCreationTime() ([SWS_TS_01055]). Si la base de tiempo nunca se sincronizó desde el inicio del sistema, la llamada devuelve un ara::core::Optional vacío. En este caso, la aplicación puede recurrir a GetCreationLocalTime() ([SWS_TS_14176]) para obtener el momento de creación referido al reloj monocromático local (ara::core::SteadyClock).
En estado sincronizado, la aplicación determina la fase de sincronización exacta a través de GetSynchronizationStatus() ([SWS_TS_01053]) y comprueba con GetLeapJump() ([SWS_TS_01054]) si se ha producido un salto temporal desde la creación previa de la instantánea y en qué dirección. A continuación, se controla si se calcula una corrección de tasa (GetRateCorrected(), [SWS_TS_14226]) y si la desviación de tasa calculada supera el valor umbral rateCorrectionThreshold (GetRateExceeded(), [SWS_TS_14229]). Por último, se pueden consultar mediante GetUserData() ([SWS_TS_01056]) los datos útiles transmitidos por el Time Master.
La interfaz de SynchronizedTimeBaseStatus está completamente declarada como noexcept y no lanza excepciones de C++. Los estados no válidos o errores se señalizan a través de tipos de retorno semánticos:
La falta de referencia de sincronización se refleja mediante un ara::core::Optional vacío en GetCreationTime() si la base de tiempo presenta el estado kNotSynchronizedUntilStartup desde el inicio del sistema ([SWS_TS_01055]). Las infracciones de valores umbral en el seguimiento de frecuencia son notificadas por GetRateExceeded() a través del valor booleano en ara::core::Result<bool> ([SWS_TS_14229]). No se especifican códigos de error estandarizados para GetRateCorrected() ([SWS_TS_14226]) ni para GetRateExceeded() ([SWS_TS_14229]); interpretación: es probable que un estado de error transmitido en el Result apunte a problemas internos de la plataforma o del controlador. Pregunta (abierta)
Esta guía se basa en la especificación AUTOSAR Adaptive R25-11 (módulo tsync) y ha sido elaborada mediante un asistente de curación asistido por IA.
SynchronizedTimeBaseStatus & operator= (const SynchronizedTimeBase Status &) noexcept; DIRECTION NOT const SynchronizedTime -- DEFINED BaseStatus &SWS_TS_01060
Documentación de los métodos
función GetCreationLocalTime [SWS_TS_14176]Upstream: RS_TS_00021 texto aún no importado
The point in time at which this object was created. Time point is expressed in synchronized time. If time was never synchronized (SynchronizationStatus = kNotSynchronizedUntilStartup), the returned optional is empty (i.e., no valid value).
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán