Обеспечивает периодическую передачу диагностических сообщений UDS для поддержки сервиса 0x2A.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: fabfa1b95261ПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Обеспечивает периодическую передачу диагностических сообщений UDS для поддержки сервиса 0x2A.
Класс apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler предоставляет чисто виртуальный интерфейс для обработки периодического сервиса UDS 0x2A через транспортозависимые диагностические каналы ([SWS_DM_01064]). Он позволяет управлению диагностикой определять специфичные для канала ограничения полезной нагрузки и объема, а также осуществлять упорядоченную передачу нескольких UDS-сообщений с помощью PeriodicTransmit ([SWS_DM_01067]). В случае сбоя отправки сообщения операция прерывается, а состояние сообщается через функцию подтверждения. Поскольку все методы специфицированы как потоконебезопасные, параллельные обращения должны синхронизироваться вызывающей стороной.
Контекст
Чисто виртуальный класс apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler представляет собой стандартизированный интерфейс для поддержки периодического считывания диагностических данных в соответствии с сервисом UDS 0x2A ([SWS_DM_01064], AUTOSAR_AP_SWS_Diagnostics §C.3.1 «Class: UdsTransportProtocolPeriodicHandler»). В диагностической системе AUTOSAR Adaptive Platform он отделяет вышестоящее управление диагностикой от конкретной реализации сетевого и транспортного протоколов. В то время как управление диагностикой анализирует входящие запросы на периодические передачи и формирует соответствующие пакеты данных, обработчик берет на себя непосредственную передачу этих периодических сообщений через конкретное соединение ([SWS_DM_01067]). В качестве партнеров по взаимодействию выступают управление диагностикой на стороне вызывающего объекта, а также соответствующий коммуникационный канал, идентифицируемый через уникальный ChannelID ([SWS_DM_01065], [SWS_DM_01066]).
Поскольку UdsTransportProtocolPeriodicHandler определен как абстрактный базовый интерфейс с чисто виртуальными методами, его экземпляр не может быть создан напрямую ([SWS_DM_01064]). Создание конкретных экземпляров обработчика осуществляется, предположительно, компонентами драйверов конкретных транспортов (например, для протоколов на базе DoIP или CAN). Вопрос Q-d0b3bf3b0c14dcf6 (открытый) Жизненный цикл экземпляра обычно привязан к доступности стека соответствующего транспортного протокола. Для корректного полиморфного уничтожения при завершении работы стека коммуникации класс предоставляет виртуальный деструктор ~UdsTransportProtocolPeriodicHandler() ([SWS_DM_02089], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.1.1 «Destructor»).
Что касается параллелизма, все функции-члены класса явно обозначены как потоконебезопасные (not thread-safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). При параллельном доступе из нескольких потоков или одновременных запросах через один и тот же ChannelID вызывающие стороны должны самостоятельно синхронизировать обращения.
Путь использования
Типичный порядок действий для выполнения периодических передач сообщений для сервиса 0x2A подразделяется на следующие шаги:
Определение максимальной длины полезной нагрузки: управление диагностикой вызывает GetMaxPayloadLength(channelId), чтобы проверить максимально поддерживаемую длину полезной нагрузки для отдельной периодической передачи на указанном соединении ([SWS_DM_01066], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.1 «GetMaxPayloadLength»).
Выполнение периодической передачи: управление диагностикой передает упорядоченный список сообщений в ara::core::Vector<UdsMessageConstPtr> методу PeriodicTransmit(channelId, messages) ([SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.3 «PeriodicTransmit»). Обработчик передает содержащиеся сообщения в заданном порядке.
Подтверждение: транспортный уровень сигнализирует о результате процесса отправки через вызов PeriodicTransmit Confirmation, который возвращает количество успешно переданных сообщений и исходный вектор ([SWS_DM_01067]).
Во время выполнения PeriodicTransmit все сообщения списка отправляются по порядку. В случае сбоя передачи одного сообщения весь процесс отправки немедленно прерывается ([SWS_DM_01067]). Последующие сообщения списка в этом случае больше не отправляются. Тем не менее, для диагностики ошибок и информирования управления диагностикой инициируется вызов подтверждения PeriodicTransmit Confirmation. Он содержит количество успешно переданных до момента прерывания сообщений, а также исходный неизмененный полный вектор с UDS-сообщениями ([SWS_DM_01067]). Благодаря этому управление диагностикой может точно проследить, какое сообщение вызвало ошибку.
Все методы интерфейса специфицированы как noexcept и безопасные по отношению к исключениям (exception safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Состояния ошибок при передаче не приводят к C++-исключениям, а детерминированно сообщаются через предусмотренный механизм подтверждения.
Этот путеводитель по классу основан на спецификации AUTOSAR Adaptive Platform релиза R25-11 и был сгенерирован автоматически.
Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.
Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ceb97c8b447fПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Чисто виртуальный метод PeriodicTransmit интерфейса apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler служит для пакетной отправки периодических UDS-сообщений через существующее транспортное соединение [SWS_DM_01067]. Он обычно вызывается Diagnostic Management (DM) в рамках периодической передачи по планировщику типа 1 согласно ISO 14229-1, при которой сконфигурированные периодические DID (PDID) циклически инициируются AUTOSAR_AP_SWS_Diagnostics §Scheduler Periodic Transmission[SWS_DM_01060].
Параметры и семантика
channelId: идентификатор конкретного коммуникационного канала, по которому осуществляется передача [SWS_DM_01067].
messages: упорядоченный список (ara::core::Vector<UdsMessageConstPtr>) всех сообщений, подлежащих передаче непосредственно друг за другом [SWS_DM_01067].
Функция не возвращает значения и гарантирует безопасность исключений, будучи объявленной как noexcept[SWS_DM_01067]. Сообщения обрабатываются строго в переданном порядке.
Обработка ошибок и подтверждение
Если отправка отдельного сообщения завершается неудачно, весь процесс отправки немедленно прерывается [SWS_DM_01067]. Для обратной связи о результате вызывается функция подтверждения PeriodicTransmitConfirmation объекта UdsTransportProtocolMgr[SWS_DM_01069]. Этот обратный вызов передает количество успешно переданных сообщений, а также тот же исходный вектор сообщений [SWS_DM_01067].
Параллелизм
Метод специфицирован как not thread-safe[SWS_DM_01067]. Параллельные вызовы на одном и том же экземпляре должны синхронизироваться на стороне вызывающего кода.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал