Уведомляет приложения-потребители о появлении новых доступных блоков данных измерений для валидации базиса времени.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c02e36846f4fПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Уведомляет приложения-потребители о появлении новых доступных блоков данных измерений для валидации базиса времени.
Интерфейс ara::tsync::ConsumerTimeBaseValidationNotification информирует приложения-потребители о появлении новых доступных блоков данных измерений базиса времени. Через callback-методы SetSlaveTimingData[SWS_TS_00420] и SetPdelayInitiatorData[SWS_TS_00422] система передает детальные данные синхронизации и валидации для Time Slave, а также инициатора pDelay. Разработчики приложений наследуются от этого класса, реализуют обработку данных и должны гарантировать отсутствие генерации исключений, поскольку все методы специфицированы как noexcept и безопасные по отношению к исключениям. Кроме того, классификация как non_threadsafe требует синхронизации со стороны приложения при параллельных обращениях.
Контекст
Класс ara::tsync::ConsumerTimeBaseValidationNotification представляет собой callback-интерфейс в модуле tsync AUTOSAR Adaptive Platform. Его назначение заключается в информировании приложения-потребителя, как только для отслеживаемого базиса времени становятся доступны новые записанные блоки данных.
В этом взаимодействии участвуют преимущественно три компонента:
Базис времени модуля tsync: непрерывно регистрирует измерения времени и синхронизации в коммуникационной сети.
Интерфейс ConsumerTimeBaseValidationNotification: определяет точки передачи зарегистрированных блоков данных измерений через методы SetSlaveTimingData[SWS_TS_00420] и SetPdelayInitiatorData[SWS_TS_00422].
Приложение-потребитель: реализует callback-методы, принимает предоставленные значения измерений и выполняет прикладную валидацию базиса времени.
Благодаря такой структуре специфичная для приложения логика валидации четко отделена от внутренней фиксации данных времени платформой.
Жизненный цикл
Являясь абстрактным интерфейсным классом с чисто виртуальными методами, ara::tsync::ConsumerTimeBaseValidationNotification не может быть инстанцирован напрямую. Приложение-потребитель создает производный конкретный класс и реализует необходимые методы.
Создание и владение полностью находятся в зоне ответственности приложения-потребителя. Предположительно, приложение создает объект обратного вызова на этапе своей инициализации и связывает его с соответствующим базисом времени службы tsync. Вопрос Q-a423ce4cbd4eeaaa (открытый)
Для уничтожения класс предоставляет виртуальный деструктор: virtual ~ConsumerTimeBaseValidationNotification() noexcept = default;[SWS_TS_01300]. Объявление виртуального деструктора обеспечивает типобезопасное освобождение экземпляров производных классов через указатели на базовый класс без утечек ресурсов.
Что касается параллелизма, методы уведомления SetSlaveTimingData[SWS_TS_00420] и SetPdelayInitiatorData[SWS_TS_00422] специфицированы как non_threadsafe. Если вызов со стороны службы платформы выполняется в контексте фонового потока, реализация со стороны приложения должна самостоятельно обеспечивать защиту доступа к разделяемым ресурсам приложения. Вопрос Q-1b857df043504eec (открытый)
Путь использования
Типичная процедура использования уведомления о валидации включает следующие шаги:
Реализация: приложение-потребитель реализует класс, производный от ara::tsync::ConsumerTimeBaseValidationNotification.
Получение данных измерений Time Slave: как только для Time Slave базиса времени записывается новый блок данных измерений, служба времени вызывает метод SetSlaveTimingData[SWS_TS_00420] и передает подробные данные валидации через параметр measurementData типа TimeSlaveMeasurementType.
Получение данных измерений инициатора pDelay: при наличии новых данных измерений для инициатора pDelay выполняется вызов SetPdelayInitiatorData[SWS_TS_00422] с подробными данными синхронизации в PdelayInitiatorMeasurementType.
Обработка: приложение-потребитель анализирует переданные блоки данных для выявления ошибок синхронизации или отклонений времени выполнения.
Освобождение объекта: при завершении мониторинга экземпляр уничтожается через виртуальный деструктор [SWS_TS_01300].
Диаграмма последовательности: передача собранных блоков данных измерений для Time Slave и инициатора pDelay в реализацию потребителя. Источники: [SWS_TS_00420], [SWS_TS_00422].
Сценарии ошибок
Интерфейсные методы рассчитаны на максимальную надежность и детерминированные вызовы:
Безопасность исключений: все функции-члены — SetSlaveTimingData[SWS_TS_00420], SetPdelayInitiatorData[SWS_TS_00422] и деструктор [SWS_TS_01300] — объявлены с noexcept и специфицированы как безопасные относительно исключений (exception safe). Переопределяющие методы в приложении-потребителе не должны распространять исключения наружу, так как это приводит к немедленному завершению программы.
Отсутствие каналов обратной связи: поскольку методы обратного вызова имеют тип возвращаемого значения void, ошибки обработки внутри логики приложения не могут быть возвращены модулю tsync. Приложение должно самостоятельно обрабатывать и протоколировать любые ошибочные состояния внутри себя.
Риски параллелизма: из-за свойства non_threadsafe ([SWS_TS_00420], [SWS_TS_00422]) необходимо предотвращать параллельную обработку нескольких блоков данных без блокировки со стороны приложения. Интерпретация: кроме того, объект обратного вызова должен оставаться действительным в течение всего времени регистрации на базисе времени, чтобы предотвратить фатальные обращения к уже освобожденной памяти. Вопрос Q-934e451f6a0099c1 (открытый)
Настоящее руководство основано на спецификации AUTOSAR Adaptive R25-11 для модуля tsync. Пояснения без явных ссылок на спецификацию представляют собой технические интерпретации.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал