[SWS_TS_01100]Upstream: RS_TS_00030 текст ещё не импортирован
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
Служит приложениям-поставщикам времени для установки, коррекции и валидации синхронизированной шкалы времени на шине.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 29af5ad2e896ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит приложениям-поставщикам времени для установки, коррекции и валидации синхронизированной шкалы времени на шине.
Перемещаемый класс (move-only) ara::tsync::SynchronizedTimeBaseProvider служит приложениям-поставщикам времени для ввода, коррекции скорости и валидации синхронизированной шкалы времени [SWS_TS_01101][SWS_TS_01110]. Обновления могут либо вызывать немедленную передачу по шине, либо планироваться как локальное обновление для следующего цикла передачи [SWS_TS_01107][SWS_TS_01108]. В то время как операции чтения потокобезопасны, все модифицирующие методы, а также регистрация уведомителя требуют потоко-локального или синхронизированного вызова [SWS_TS_01109][SWS_TS_01114].
Контекст
Класс ara::tsync::SynchronizedTimeBaseProvider предоставляет приложениям-поставщикам времени активный управляющий доступ к синхронизированной шкале времени, смоделированной через ara::core::InstanceSpecifier[SWS_TS_01101]. В AUTOSAR Adaptive данный экземпляр выступает в качестве интерфейса между предоставляющей логикой приложения, локальным демоном Time-Sync и подключенными коммуникационными шинами. Через этот компонент приложение подает новые значения времени и пользовательские полезные данные в систему, компенсирует дрейфы с помощью коррекции скорости и регистрирует параметры валидации [SWS_TS_01107][SWS_TS_01110][SWS_TS_01114].
Контекстная диаграмма: интеграция SynchronizedTimeBaseProvider между приложением-поставщиком, валидацией и передачей по шине. Источники: [SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01114]
Жизненный цикл
Инстанцирование выполняется явно через ara::core::InstanceSpecifier, который должен указывать на PortPrototype, типизированный через SynchronizedTimeBaseProviderInterface[SWS_TS_01101]. Конструктор объявлен безопасным к исключениям и потокобезопасным [SWS_TS_01101]. Объект класса является исключительно перемещаемым (move-only): конструктор копирования и оператор присваивания копированием явно удалены [SWS_TS_01104][SWS_TS_01105], тогда как перемещающее конструирование и присваивание перемещением поддерживаются [SWS_TS_01102][SWS_TS_01103].
В отношении параллелизма действует строгое разделение: операции только для чтения состояния, такие как GetCurrentTime(), GetRateDeviation() и GetUserData(), являются потокобезопасными и могут выполняться конкурентно [SWS_TS_01109][SWS_TS_01111][SWS_TS_01113]. Все модифицирующие операции, регистрация уведомлений, а также уничтожение объекта через деструктор, напротив, не являются потокобезопасными и требуют синхронизации на стороне приложения [SWS_TS_01106][SWS_TS_01107][SWS_TS_01114].
Путь использования
Типичное применение делится на регистрацию для получения обратной связи по валидации, а также циклическую или управляемую событиями передачу времени:
Регистрация валидации: при необходимости приложение-поставщик регистрирует через RegisterTimeValidationNotification() объект уведомления для приема вновь записанных блоков данных синхронизации времени [SWS_TS_01114]. Активным может быть максимум один получатель уведомлений; повторная регистрация перезаписывает существующую [SWS_TS_01114], тогда как UnregisterTimeValidationNotification() разрывает привязку [SWS_TS_01115].
Установка значения времени: при необходимости немедленного распределения приложение вызывает SetTime(). Это устанавливает локальное значение времени и напрямую инициирует передачу по шине [SWS_TS_01107]. Если же передача по шине должна состояться только в следующем регулярном цикле, используется UpdateTime(), благодаря чему часы сначала обновляются только локально [SWS_TS_01108].
Коррекция и полезные данные: с помощью SetRateCorrection() дрейф локальных часов можно скорректировать коэффициентом коррекции (значения меньше 1.0 замедляют часы, значения больше 1.0 ускоряют их) [SWS_TS_01110]. Дополнительные пользовательские данные шкалы времени можно обновить через SetUserData()[SWS_TS_01112].
Диаграмма последовательности: процесс регистрации уведомителя и обновления времени с альтернативными путями передачи по шине. Источники: [SWS_TS_01107], [SWS_TS_01108], [SWS_TS_01114]
Сценарии ошибок
Методы с возвращаемым значением ara::core::Result<void> сигнализируют о сбоях через коды ошибок типа TsyncErrc без семантики отката:
TsyncErrc::kInvalidUserDataSize: возникает при SetTime(), UpdateTime() и SetUserData(), если переданные UserData превышают максимальную длину UserData::kMaxUserDataSize (в настоящее время 3 байта) [SWS_TS_01107][SWS_TS_01108][SWS_TS_01112].
TsyncErrc::kDaemonConnectionLost: возникает при SetTime(), если IPC-соединение с демоном Time-Sync прервано в момент вызова [SWS_TS_01107].
TsyncErrc::kLimitsExceeded: возвращается из SetRateCorrection(), если запрошенный коэффициент коррекции скорости находится вне допустимого диапазона значений [SWS_TS_01110].
TsyncErrc::kFunctionNotSupported: сообщается из SetRateCorrection(), если базовая платформа или шкала времени не поддерживает коррекцию скорости [SWS_TS_01110].
Данное руководство основано на спецификации AUTOSAR Adaptive Platform R25-11 (модуль tsync) и подготовлено для 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.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 89b44278d606Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод RegisterTimeValidationNotification является частью класса ara::tsync::SynchronizedTimeBaseProvider и подключается через заголовочный файл #include "ara/tsync/synchronized_time_base_provider.h"[SWS_TS_01114]. Он служит приложениям Time Provider для приема параметров синхронизации времени [SWS_TS_01114]. Через параметр timeBaseValidationNotification передается ссылка на объект уведомлений типа ProviderTimeBaseValidationNotification, который информируется, как только становится доступным новый блок данных для базиса времени [SWS_TS_01114]. Метод не возвращает значения (void) [SWS_TS_01114].
Обработка ошибок
Метод объявлен как noexcept и обладает свойством exception safe[SWS_TS_01114]. Он не генерирует исключений и не возвращает кодов ошибок [SWS_TS_01114].
Параллелизм и ограничения
При использовании необходимо соблюдать следующие ограничения:
Ограничение регистрации: может быть зарегистрирован только один нотификатор; каждая последующая регистрация перезаписывает текущую регистрацию [SWS_TS_01114].
Потокобезопасность: функция специфицирована как non_threadsafe[SWS_TS_01114]. Вызовы на одном и том же экземпляре при параллельном доступе должны синхронизироваться со стороны приложения.
Взаимодействие
В то время как эта функция реализует регистрацию на стороне источника времени (Provider) [SWS_TS_01114], класс ara::tsync::SynchronizedTimeBaseConsumer с RegisterTimeValidationNotification и типом ConsumerTimeBaseValidationNotification представляет собой функциональный аналог для потребителей времени (Consumer) [SWS_TS_01016].
Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
🚫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
функция SetRateCorrection [SWS_TS_01110]Upstream: RS_TS_00029 текст ещё не импортирован, RS_TS_00026 текст ещё не импортирован, RS_TS_00018 текст ещё не импортирован
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
функция SetUserData [SWS_TS_01112]Upstream: RS_TS_00029 текст ещё не импортирован, RS_TS_00026 текст ещё не импортирован, RS_TS_00015 текст ещё не импортирован
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.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4be2caa7a1a0ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод UnregisterTimeValidationNotification класса ara::tsync::SynchronizedTimeBaseProvider предоставляется через заголовочный файл ara/tsync/synchronized_time_base_provider.h[SWS_TS_01115]. Он служит приложениям — поставщикам времени (Time Provider Applications) в контексте синхронизации времени и приема параметров синхронизации времени [SWS_TS_01115]; судя по идентификатору, его назначение, вероятно, заключается в отмене регистрации ранее зарегистрированного уведомления для валидации времени. Вопрос Q-49ba26b4b16dd5c7 (открытый)
В отношении контекста вызова и семантики действуют следующие требования:
Сигнатура и возврат: функция не принимает параметров и не имеет возвращаемого значения (void) [SWS_TS_01115].
Обработка ошибок: операция объявлена как noexcept и специфицирована как исключениебезопасная (exception safe) [SWS_TS_01115]. Коды ошибок или уведомления в DET или DEM для этого интерфейса не предусмотрены.
Конкурентность: функция явно классифицирована как non_threadsafe[SWS_TS_01115]. Параллельные вызовы на одном и том же экземпляре SynchronizedTimeBaseProvider поэтому должны синхронизироваться вызывающей стороной.
Во взаимодействии архитектуры синхронизации времени для получателей времени (Time Consumer Applications) существует прямой аналог в классе ara::tsync::SynchronizedTimeBaseConsumer (определенный в ara/tsync/synchronized_time_base_consumer.h), обладающий идентичными свойствами в отношении потокобезопасности и безопасности исключений [SWS_TS_01017].
Это указание по использованию было создано автоматически и опирается исключительно на спецификацию R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
🚫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
функция UpdateTime [SWS_TS_01108]Upstream: RS_TS_00010 текст ещё не импортирован, RS_TS_00011 текст ещё не импортирован, RS_TS_00029 текст ещё не импортирован, RS_TS_00026 текст ещё не импортирован, RS_TS_00009 текст ещё не импортирован
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.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a90a9a9d69eeПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод UpdateTime из заголовочного файла ara/tsync/synchronized_time_base_provider.h принадлежит классу ara::tsync::SynchronizedTimeBaseProvider[SWS_TS_01108]. Он служит для задания нового значения времени для часов. Метод принимает устанавливаемый момент времени timePoint с шаблонным параметром Duration, а также пользовательские прикладные данные userData[SWS_TS_01108]. Значение часов при этом обновляется локально немедленно; передача по шине происходит только в следующем цикле [SWS_TS_01108].
Обработка ошибок
Вызов объявлен с noexcept и возвращает ara::core::Result<void>[SWS_TS_01108]. Если длина переданных userData превышает максимально допустимый размер, который ограничен UserData::kMaxUserDataSize в настоящее время 3 байтами, операция завершается сбоем [SWS_TS_01108]. В этом случае объект Result возвращает код ошибки TsyncErrc::kInvalidUserDataSize, причем для случая ошибки семантика отката (no_rollback_semantics) не предусмотрена [SWS_TS_01108].
Параллелизм и ограничения
Для интеграции следует учитывать, что UpdateTime специфицирован как непотокобезопасный (non_threadsafe) [SWS_TS_01108]. Если экземпляры SynchronizedTimeBaseProvider используются в контекстах параллельного выполнения, вызывающий код должен обеспечить соответствующую синхронизацию. Функция, однако, гарантирует безопасность исключений (exception safe) [SWS_TS_01108].
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал