[SWS_TS_01100]Upstream: RS_TS_00030 texto ainda não 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
Serve a aplicações provedoras de tempo para definir, corrigir e validar uma base de tempo sincronizada no barramento.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 29af5ad2e896ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve a aplicações provedoras de tempo para definir, corrigir e validar uma base de tempo sincronizada no barramento.
A classe move-only ara::tsync::SynchronizedTimeBaseProvider serve a aplicações provedoras de tempo para injeção, correção de taxa e validação de uma base de tempo sincronizada [SWS_TS_01101][SWS_TS_01110]. As atualizações podem disparar transmissões imediatas no barramento ou ser programadas como uma atualização local para o próximo ciclo de transmissão [SWS_TS_01107][SWS_TS_01108]. Enquanto acessos de leitura são thread-safe, todos os métodos modificadores e o registro de notifiers requerem chamada local à thread ou sincronizada [SWS_TS_01109][SWS_TS_01114].
Contexto
A classe ara::tsync::SynchronizedTimeBaseProvider disponibiliza para aplicações provedoras de tempo o acesso ativo de controle a uma base de tempo sincronizada, modelada através de um ara::core::InstanceSpecifier[SWS_TS_01101]. No AUTOSAR Adaptive, a instância atua como interface entre a lógica da aplicação provedora, o daemon de sincronização de tempo local e os barramentos de comunicação conectados. Por meio deste componente, a aplicação injeta novos valores de tempo e dados úteis específicos do usuário no sistema, compensa desvios através de correções de taxa e captura parâmetros de validação [SWS_TS_01107][SWS_TS_01110][SWS_TS_01114].
Diagrama de contexto: integração do SynchronizedTimeBaseProvider entre aplicação provedora, validação e transmissão de barramento. Fontes: [SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01114]
Ciclo de vida
A instanciação ocorre explicitamente através de um ara::core::InstanceSpecifier, que deve referenciar um PortPrototype tipado por um SynchronizedTimeBaseProviderInterface[SWS_TS_01101]. O construtor é declarado como seguro contra exceções e thread-safe [SWS_TS_01101]. Um objeto da classe é um objeto exclusivo move-only: o construtor de cópia e o operador de atribuição por cópia estão explicitamente excluídos [SWS_TS_01104][SWS_TS_01105], enquanto a construção por movimentação e a atribuição por movimentação são suportadas [SWS_TS_01102][SWS_TS_01103].
Em relação à concorrência, aplica-se uma separação estrita: operações puras de leitura de estado, como GetCurrentTime(), GetRateDeviation() e GetUserData(), são thread-safe e podem ser executadas concorrentemente [SWS_TS_01109][SWS_TS_01111][SWS_TS_01113]. Todas as operações modificadoras, o registro de notificações e a destruição do objeto via destrutor, por outro lado, não são thread-safe e exigem sincronização por parte da aplicação [SWS_TS_01106][SWS_TS_01107][SWS_TS_01114].
Caminho de utilização
O uso típico divide-se no registro para feedbacks de validação e na transmissão de tempo cíclica ou orientada a eventos:
Registrar validação: se necessário, a aplicação provedora registra um objeto de notificação através de RegisterTimeValidationNotification() para receber blocos de dados de sincronização de tempo recém-gravados [SWS_TS_01114]. No máximo um receptor de notificação pode estar ativo; um novo registro sobrescreve um existente [SWS_TS_01114], enquanto UnregisterTimeValidationNotification() desfaz a associação [SWS_TS_01115].
Definir valor de tempo: no caso de uma distribuição imediatamente necessária, a aplicação chama SetTime(). Isso define o valor de tempo local e dispara imediatamente a transmissão para o barramento [SWS_TS_01107]. Se a transmissão de barramento só deve ocorrer no próximo ciclo regular, utiliza-se UpdateTime(), pelo que o relógio é atualizado inicialmente apenas de forma local [SWS_TS_01108].
Correção e dados úteis: através de SetRateCorrection(), o desvio do relógio local pode ser ajustado por um fator de correção (valores menores que 1.0 desaceleram o relógio, valores maiores que 1.0 o aceleram) [SWS_TS_01110]. Dados adicionais da base de tempo específicos do usuário podem ser atualizados via SetUserData()[SWS_TS_01112].
Diagrama de sequência: fluxo de registro de notifier e atualização de tempo com caminhos alternativos de transmissão no barramento. Fontes: [SWS_TS_01107], [SWS_TS_01108], [SWS_TS_01114]
Cenários de erro
Métodos com valor de retorno ara::core::Result<void> sinalizam falhas através de códigos de erro do tipo TsyncErrc sem semântica de rollback:
TsyncErrc::kInvalidUserDataSize: ocorre em SetTime(), UpdateTime() e SetUserData() se os UserData passados excederem o comprimento máximo de UserData::kMaxUserDataSize (atualmente 3 bytes) [SWS_TS_01107][SWS_TS_01108][SWS_TS_01112].
TsyncErrc::kDaemonConnectionLost: ocorre em SetTime() caso a conexão IPC com o daemon de sincronização de tempo esteja interrompida no momento da chamada [SWS_TS_01107].
TsyncErrc::kLimitsExceeded: é retornado por SetRateCorrection() quando o fator de correção de taxa solicitado estiver fora da faixa de valores permitida [SWS_TS_01110].
TsyncErrc::kFunctionNotSupported: é reportado por SetRateCorrection() quando a plataforma ou base de tempo subjacente não suportar correção de taxa [SWS_TS_01110].
Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11 (módulo tsync) e foi elaborado para o 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 89b44278d606Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O método RegisterTimeValidationNotification faz parte da classe ara::tsync::SynchronizedTimeBaseProvider e é incluído através do cabeçalho #include "ara/tsync/synchronized_time_base_provider.h"[SWS_TS_01114]. Ele serve para aplicações time-provider receberem parâmetros de sincronização de tempo [SWS_TS_01114]. Através do parâmetro timeBaseValidationNotification é passada uma referência para um objeto de notificação do tipo ProviderTimeBaseValidationNotification, o qual é informado assim que um novo bloco de dados estiver disponível para a base de tempo [SWS_TS_01114]. O método não fornece valor de retorno (void) [SWS_TS_01114].
Tratamento de erros
O método é declarado como noexcept e possui a propriedade exception safe[SWS_TS_01114]. Ele não lança exceções e não retorna códigos de erro [SWS_TS_01114].
Simultaneidade e restrições
Na utilização devem ser tidas em conta as seguintes restrições:
Limite de registo: Pode ser registado no máximo um notificador; cada registo adicional sobrescreve o registo atual [SWS_TS_01114].
Segurança para threads: A função é especificada como non_threadsafe[SWS_TS_01114]. Chamadas na mesma instância devem ser sincronizadas pelo lado da aplicação em caso de acesso paralelo.
Interação
Enquanto esta função implementa o registo do lado do fornecedor de tempo (provider) [SWS_TS_01114], a classe ara::tsync::SynchronizedTimeBaseConsumer com RegisterTimeValidationNotification e o tipo ConsumerTimeBaseValidationNotification representa a contraparte funcional para consumidores de tempo (consumer) [SWS_TS_01016].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
função SetRateCorrection [SWS_TS_01110]Upstream: RS_TS_00029 texto ainda não importado, RS_TS_00026 texto ainda não importado, RS_TS_00018 texto ainda não importado
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.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
função SetUserData [SWS_TS_01112]Upstream: RS_TS_00029 texto ainda não importado, RS_TS_00026 texto ainda não importado, RS_TS_00015 texto ainda não importado
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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4be2caa7a1a0ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método UnregisterTimeValidationNotification da classe ara::tsync::SynchronizedTimeBaseProvider é disponibilizado através do arquivo de cabeçalho ara/tsync/synchronized_time_base_provider.h[SWS_TS_01115]. Ele serve aplicações fornecedoras de tempo (Time Provider Applications) no contexto da sincronização de tempo e da receção de parâmetros de sincronização de tempo [SWS_TS_01115]; de acordo com o identificador, o seu propósito deve consistir no cancelamento do registo de uma notificação de validação de tempo previamente registada. Pergunta Q-49ba26b4b16dd5c7 (aberta)
Relativamente ao contexto de chamada e à semântica aplicam-se os seguintes requisitos:
Assinatura e retorno: A função não recebe parâmetros e não possui valor de retorno (void) [SWS_TS_01115].
Tratamento de erros: A operação é declarada como noexcept e especificada como segura contra exceções (exception safe) [SWS_TS_01115]. Códigos de erro ou notificações para o DET ou DEM não estão previstos para esta interface.
Concorrência: A função é explicitamente classificada como non_threadsafe[SWS_TS_01115]. Chamadas paralelas na mesma instância de SynchronizedTimeBaseProvider devem, portanto, ser sincronizadas pelo chamador.
Na interação da arquitetura de sincronização de tempo, existe para recetores de tempo (Time Consumer Applications) uma contraparte direta na classe ara::tsync::SynchronizedTimeBaseConsumer (definida em ara/tsync/synchronized_time_base_consumer.h), a qual apresenta propriedades idênticas no que diz respeito à segurança de threads e à segurança de exceções [SWS_TS_01017].
Esta nota de utilização foi gerada automaticamente e baseia-se exclusivamente na especificação R25-11.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
função UpdateTime [SWS_TS_01108]Upstream: RS_TS_00010 texto ainda não importado, RS_TS_00011 texto ainda não importado, RS_TS_00029 texto ainda não importado, RS_TS_00026 texto ainda não importado, RS_TS_00009 texto ainda não importado
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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a90a9a9d69eeProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O método UpdateTime do cabeçalho ara/tsync/synchronized_time_base_provider.h pertence à classe ara::tsync::SynchronizedTimeBaseProvider[SWS_TS_01108]. Ele serve para definir um novo valor de tempo para o relógio. O método recebe o instante a definir timePoint com o parâmetro de template Duration, bem como dados de aplicação definidos pelo utilizador userData[SWS_TS_01108]. O valor do relógio é atualizado de imediato localmente; a transmissão através do barramento só ocorre no ciclo seguinte [SWS_TS_01108].
Tratamento de erros
A chamada é declarada com noexcept e retorna um ara::core::Result<void>[SWS_TS_01108]. Caso o comprimento dos userData passados exceda o tamanho máximo permitido, que está atualmente limitado a 3 bytes por UserData::kMaxUserDataSize, a operação falha [SWS_TS_01108]. Neste caso, o objeto de resultado fornece o código de erro TsyncErrc::kInvalidUserDataSize, não estando prevista semântica de rollback (no_rollback_semantics) para o caso de erro [SWS_TS_01108].
Simultaneidade e restrições
Para a integração, deve notar-se que UpdateTime está especificado como não seguro para threads (non_threadsafe) [SWS_TS_01108]. Se instâncias de SynchronizedTimeBaseProvider forem utilizadas em contextos de execução concorrentes, o código chamador deve assegurar uma sincronização adequada. A função garante, no entanto, segurança contra exceções (exception safe) [SWS_TS_01108].
Este texto foi gerado por uma IA com base na especificação.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão