Fornece um snapshot consistente de tempo e de status de uma base de tempo sincronizada para avaliação.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: fbf296ab413aProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Fornece um snapshot consistente de tempo e de status de uma base de tempo sincronizada para avaliação.
A classe ara::tsync::SynchronizedTimeBaseStatus encapsula um snapshot imutável de uma base de tempo sincronizada no momento de sua criação. Ela disponibiliza métodos para ler, de forma thread-safe, carimbos de data/hora de criação locais e sincronizados, o estado de sincronização, bem como flags de status para correção de taxa e dados úteis específicos do usuário [SWS_TS_01053]. Caso a base de tempo ainda não tenha sido sincronizada desde a inicialização do sistema, a consulta do tempo sincronizado fornecerá um Optional vazio [SWS_TS_01055]. Como o construtor padrão está excluído, o objeto é tipicamente criado pela base de tempo e transferido para a aplicação por semântica de valor.
Contexto
A classe ara::tsync::SynchronizedTimeBaseStatus representa um snapshot imutável de um ponto no tempo, incluindo todos os estados associados de uma base de tempo sincronizada. Em sistemas automotivos distribuídos, ela serve para o desacoplamento temporal entre a base de tempo em progressão dinâmica e a aplicação avaliadora: em vez de consultar estados efêmeros diretamente na base de tempo em execução, a aplicação recebe uma imagem internamente consistente das informações de tempo e de status no momento da criação do objeto. A classe consolida, assim, valores temporais do relógio mono local e do tempo sincronizado, vinculando-os ao estado de sincronização [SWS_TS_01053], a flags de status para correção de taxa e a dados úteis específicos da aplicação recebidos do Time Master da base de tempo [SWS_TS_01056]. Como parceiros de interação essenciais, atuam a base de tempo provedora do módulo tsync e a aplicação consumidora.
Ciclo de vida
O ciclo de vida de uma instância de SynchronizedTimeBaseStatus é projetado para preservar a consistência do snapshot:
Criação: o construtor padrão foi excluído ([SWS_TS_01061]). As aplicações, portanto, não podem instanciar objetos de status; a criação deve ocorrer exclusivamente de forma interna pela respectiva base de tempo da plataforma. Pergunta Q-ed50a9c63b8e2481 (aberta)
Posse e transferência: para retornar o snapshot às aplicações por semântica de valor, a classe disponibiliza um construtor de cópia noexcept ([SWS_TS_01058]). Para transferências de propriedade eficientes em termos de recursos, existem também um construtor de movimentação ([SWS_TS_01057]), bem como operadores de atribuição por cópia e por movimentação correspondentes ([SWS_TS_01060], [SWS_TS_01059]). A aplicação receptora assume a posse total do objeto.
Destruição: o destrutor é especificado como destrutor padrão com noexcept ([SWS_TS_01062]) e libera recursos de forma determinística.
Concorrência: todos os métodos de leitura para consulta de status são definidos como thread-safe e seguros contra exceções (exception safe) ([SWS_TS_14176], [SWS_TS_01055]). Múltiplas threads podem, portanto, avaliar o mesmo snapshot de forma concorrente e sem sincronização adicional. Apenas as operações de atribuição e construção são non_threadsafe ([SWS_TS_01057], [SWS_TS_01058]).
Caminho de utilização
Assim que uma aplicação recebe uma instância de SynchronizedTimeBaseStatus da base de tempo ([SWS_TS_01058]), a avaliação ocorre tipicamente ao longo de uma sequência definida:
Primeiramente, a aplicação verifica o tempo de criação sincronizado por meio de GetCreationTime() ([SWS_TS_01055]). Se a base de tempo nunca tiver sido sincronizada desde a inicialização do sistema, a chamada fornecerá um ara::core::Optional vazio. Nesse caso, a aplicação pode recorrer a GetCreationLocalTime() ([SWS_TS_14176]) para obter o momento de criação referente ao relógio mono local (ara::core::SteadyClock).
No estado sincronizado, a aplicação determina por meio de GetSynchronizationStatus() ([SWS_TS_01053]) a fase exata de sincronização e verifica com GetLeapJump() ([SWS_TS_01054]) se e em qual direção ocorreu um salto de tempo desde a criação do snapshot anterior. Em seguida, controla-se se uma correção de taxa está sendo calculada (GetRateCorrected(), [SWS_TS_14226]) e se o desvio de taxa calculado ultrapassa o valor limite rateCorrectionThreshold (GetRateExceeded(), [SWS_TS_14229]). Por fim, dados úteis transmitidos pelo Time Master podem ser consultados via GetUserData() ([SWS_TS_01056]).
A interface de SynchronizedTimeBaseStatus é totalmente declarada como noexcept e não lança exceções C++. Estados inválidos ou erros são sinalizados por meio de tipos de retorno semânticos:
Uma ausência de referência de sincronização é representada por um ara::core::Optional vazio em GetCreationTime(), se a base de tempo apresentar o status kNotSynchronizedUntilStartup desde a inicialização do sistema ([SWS_TS_01055]). Violações de valor limite no rastreamento de frequência são reportadas por GetRateExceeded() através do valor booleano em ara::core::Result<bool> ([SWS_TS_14229]). Códigos de erro padronizados não estão especificados para GetRateCorrected() ([SWS_TS_14226]) e GetRateExceeded() ([SWS_TS_14229]); interpretação: um estado de erro transportado no Result deve indicar problemas internos de plataforma ou de driver. Pergunta (aberta)
Este guia baseia-se na especificação AUTOSAR Adaptive R25-11 (módulo tsync) e foi preparado por um assistente de curadoria por IA.
SynchronizedTimeBaseStatus & operator= (const SynchronizedTimeBase Status &) noexcept; DIRECTION NOT const SynchronizedTime -- DEFINED BaseStatus &SWS_TS_01060
Documentação dos métodos
função GetCreationLocalTime [SWS_TS_14176]Upstream: RS_TS_00021 texto ainda não 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 em alemão