Предоставляет согласованный снимок времени и состояния синхронизированной базы времени для анализа.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: fbf296ab413aПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Предоставляет согласованный снимок времени и состояния синхронизированной базы времени для анализа.
Класс ara::tsync::SynchronizedTimeBaseStatus инкапсулирует неизменяемый снимок синхронизированной базы времени на момент создания. Он предоставляет методы для потокобезопасного считывания локальных и синхронизированных меток времени создания, состояния синхронизации, а также флагов состояния для коррекции скорости и пользовательских полезных данных [SWS_TS_01053]. Если база времени ещё не была синхронизирована с момента запуска системы, запрос синхронизированного времени возвращает пустой Optional [SWS_TS_01055]. Поскольку конструктор по умолчанию удалён, объект обычно создаётся базой времени и передаётся приложению по семантике значений.
Контекст
Класс ara::tsync::SynchronizedTimeBaseStatus представляет собой неизменяемый снимок (snapshot) момента времени, включая все сопутствующие состояния синхронизированной базы времени. В распределённых автомобильных системах он служит для временного разделения между динамически продвигающейся базой времени и анализирующим приложением: вместо прямого опроса нестабильных состояний на работающей базе времени приложение получает внутренне согласованный снимок информации о времени и состоянии на момент создания объекта. При этом класс объединяет значения времени локальных монотонных часов и синхронизированного времени и связывает их с состоянием синхронизации [SWS_TS_01053], флагами состояния для коррекции скорости, а также специфичными для приложения полезными данными, полученными от Time Master базы времени [SWS_TS_01056]. Таким образом, в качестве основных партнёров по взаимодействию выступают предоставляющая база времени модуля tsync и потребляющее приложение.
Жизненный цикл
Жизненный цикл экземпляра SynchronizedTimeBaseStatus рассчитан на сохранение согласованности снимка:
Создание: конструктор по умолчанию удалён ([SWS_TS_01061]). Таким образом, приложения не могут инстанцировать объекты состояния; создание, предположительно, осуществляется исключительно внутренне соответствующей базой времени платформы. Вопрос Q-ed50a9c63b8e2481 (открытый)
Владение и передача: чтобы возвращать снимок приложениям по семантике значений, класс предоставляет noexcept-конструктор копирования ([SWS_TS_01058]). Для ресурсоэффективной передачи права владения дополнительно существуют конструктор перемещения ([SWS_TS_01057]), а также соответствующие операторы присваивания копированием и перемещением ([SWS_TS_01060], [SWS_TS_01059]). Принимающее приложение получает полное владение объектом.
Уничтожение: деструктор специфицирован как деструктор по умолчанию с noexcept ([SWS_TS_01062]) и детерминированно освобождает ресурсы.
Параллелизм: все методы чтения для запроса состояния определены как потокобезопасные и безопасные по отношению к исключениям (exception safe) ([SWS_TS_14176], [SWS_TS_01055]). Таким образом, несколько потоков могут анализировать один и тот же снимок параллельно и без дополнительной синхронизации. Лишь операции присваивания и конструирования являются non_threadsafe ([SWS_TS_01057], [SWS_TS_01058]).
Путь использования
Как только приложение получило экземпляр SynchronizedTimeBaseStatus от базы времени ([SWS_TS_01058]), анализ обычно выполняется в определённой последовательности:
Сначала приложение проверяет синхронизированное время создания с помощью GetCreationTime() ([SWS_TS_01055]). Если база времени ни разу не синхронизировалась с момента запуска системы, вызов возвращает пустой ara::core::Optional. В этом случае приложение может переключиться через GetCreationLocalTime() ([SWS_TS_14176]) на момент времени создания относительно локальных монотонных часов (ara::core::SteadyClock).
В синхронизированном состоянии приложение определяет точную фазу синхронизации через GetSynchronizationStatus() ([SWS_TS_01053]) и проверяет с помощью GetLeapJump() ([SWS_TS_01054]), произошёл ли скачок времени с момента предыдущего создания снимка и в каком направлении. Затем проверяется, рассчитывается ли коррекция скорости (GetRateCorrected(), [SWS_TS_14226]) и превышает ли рассчитанное отклонение скорости пороговое значение rateCorrectionThreshold (GetRateExceeded(), [SWS_TS_14229]). Наконец, через GetUserData() ([SWS_TS_01056]) можно запросить полезные данные, переданные от Time Master.
Интерфейс SynchronizedTimeBaseStatus полностью объявлен как noexcept и не выбрасывает исключений C++. Недопустимые состояния или ошибки сигнализируются через семантические типы возврата:
Отсутствие привязки к синхронизации отображается пустым ara::core::Optional в GetCreationTime(), если база времени имеет статус kNotSynchronizedUntilStartup с момента запуска системы ([SWS_TS_01055]). О нарушениях порогового значения при подстройке частоты сообщает GetRateExceeded() через логическое значение в ara::core::Result<bool> ([SWS_TS_14229]). Стандартизированные коды ошибок для GetRateCorrected() ([SWS_TS_14226]) и GetRateExceeded() ([SWS_TS_14229]) не специфицированы; интерпретация: состояние ошибки, передаваемое в Result, предположительно указывает на внутренние проблемы платформы или драйвера. Вопрос (открытый)
Настоящее руководство основано на спецификации AUTOSAR Adaptive R25-11 (модуль tsync) и подготовлено ассистентом курации на базе ИИ.
SynchronizedTimeBaseStatus & operator= (const SynchronizedTimeBase Status &) noexcept; DIRECTION NOT const SynchronizedTime -- DEFINED BaseStatus &SWS_TS_01060
Документация методов
функция GetCreationLocalTime [SWS_TS_14176]Upstream: RS_TS_00021 текст ещё не импортирован
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 · Немецкий оригинал