DEENESPTFRRUARHIKOZHNL

класс apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler

[SWS_DM_01064] Upstream: RS_Diag_04215

class UdsTransportProtocolPeriodicHandler {...};

UdsTransportProtocolPeriodicHandler class to support 0x2A service from ISO.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Forwarding-Header#include "apext/diag/diag_fwd.h"
Scopenamespace apext::diag::uds_transport

Руководство пользователяСОЗДАНО ИИ

Обеспечивает периодическую передачу диагностических сообщений 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]).

diag_periodic_kontext diag_server Diagnose-Server (UDS 0x2A) handler UdsTransportProtocolPeriodicHandler diag_server->handler Запрос пропускной способности & задание на отправку handler->diag_server PeriodicTransmit Confirmation transport Transportschicht (ChannelID) handler->transport Periodische Nachrichten

Контекстная диаграмма: встраивание UdsTransportProtocolPeriodicHandler между сервером диагностики и транспортным уровнем. Источники: [SWS_DM_01064], [SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1 «Class: UdsTransportProtocolPeriodicHandler».

Жизненный цикл

Поскольку 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»).
  • Запрос емкости сообщений: через GetNumberOfPeriodicMessages(channelId) запрашивается зависящее от транспортного протокола и соединения количество возможных периодических сообщений ([SWS_DM_01065], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.2 «GetNumberOfPeriodicMessages»).
  • Выполнение периодической передачи: управление диагностикой передает упорядоченный список сообщений в 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]).
Периодическая передача через UdsTransportProtocolPeriodicHandlerDiagnose-Server (0x2A)UdsTransportProtocolPeriodicHandlerTransportschicht / KanalUse Case: Kanalparameter ermittelnGetMaxPayloadLength(channelId)maxPayloadLengthGetNumberOfPeriodicMessages(channelId)numberOfPeriodicMessagesUse Case: Periodischer SendevorgangPeriodicTransmit(channelId, messages)loopДля каждого сообщения в messagesПередать сообщениеaltПроизошла ошибка передачиSendeprozess stoppenPeriodicTransmit Confirmation(anzahlGesendet, messages)Все сообщения успешно переданыPeriodicTransmit Confirmation(gesamtAnzahl, messages)

Диаграмма последовательности: типичный процесс запроса емкости, периодической отправки и подтверждения. Источники: [SWS_DM_01065], [SWS_DM_01066], [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 и был сгенерирован автоматически.

Карта членов

Диаграмма классов

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G napext__diag__uds_transport__UdsTransportProtocolPeriodicHandler54 UdsTransportProtocolPeriodicHandler + ~UdsTransportProtocolPeriodicHandler() + GetMaxPayloadLength() + GetNumberOfPeriodicMessages() + PeriodicTransmit()

Подробный вид

Выберите элемент в оглавлении.

Конструкторы и деструктор

Destructor.

Методы

GetMaxPayloadLength функция

Reports the maximum payload length supported for a single periodic transmission on the channel.

virtual std::size_t GetMaxPayloadLength (ChannelID channelId) const noexcept=0;

Reports the Transport Protocol implementation and connection specific number of periodic messages.

virtual std::size_t GetNumberOfPeriodicMessages (ChannelID channelId) const noexcept=0;
PeriodicTransmit функция

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.

virtual void PeriodicTransmit (ChannelID channelId, ara::core::Vector< UdsMessageConstPtr > messages) noexcept=0;

Документация методов

функция GetMaxPayloadLength [SWS_DM_01066] Upstream: RS_Diag_04215

virtual std::size_t GetMaxPayloadLength (ChannelID channelId) const noexcept=0;

Reports the maximum payload length supported for a single periodic transmission on the channel.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection for which the maximum payload length is reported.

Rückgabewert

TypBeschreibung
std::size_tSupported payload length

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01066
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01066@rel:R25-11#aa5b5f1c
Content hash
aa5b5f1c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01066
Status: valid/unmigrated Version: rel:R25-11#cac9e976 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01066@rel:R25-11#cac9e976
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#1dc32cc82026-09-30
  • R20-11rel:R20-11#28bcd8642026-10-14
  • R21-11rel:R21-11#a933cb442026-10-14
  • R22-11rel:R22-11#7020a1832026-10-14
  • R23-11rel:R23-11#68f8be1a2026-10-14
  • R24-11rel:R24-11#22ba880f2026-10-14
  • R25-11rel:R25-11#cac9e9762026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция GetNumberOfPeriodicMessages [SWS_DM_01065] Upstream: RS_Diag_04215

virtual std::size_t GetNumberOfPeriodicMessages (ChannelID channelId) const noexcept=0;

Reports the Transport Protocol implementation and connection specific number of periodic messages.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection to send over.

Rückgabewert

TypBeschreibung
std::size_tNumber of periodic messages.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01065
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01065@rel:R25-11#c3151f85
Content hash
c3151f85
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01065
Status: valid/unmigrated Version: rel:R25-11#4725f9e5 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01065@rel:R25-11#4725f9e5
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#f28623fc2026-09-30
  • R20-11rel:R20-11#bdc723c72026-10-14
  • R21-11rel:R21-11#bdc723c72026-10-14
  • R22-11rel:R22-11#81d54d3a2026-10-14
  • R23-11rel:R23-11#2c2c83b92026-10-14
  • R24-11rel:R24-11#1dee77bf2026-10-14
  • R25-11rel:R25-11#4725f9e52026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция PeriodicTransmit [SWS_DM_01067] Upstream: RS_Diag_04215

virtual void PeriodicTransmit (ChannelID channelId, ara::core::Vector< UdsMessageConstPtr > messages) noexcept=0;

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)

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection to send over
messagesOrdered list of messages to send at once

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01067
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01067@rel:R25-11#287e9b58
Content hash
287e9b58
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01067
Status: valid/unmigrated Version: rel:R25-11#59bd4882 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01067@rel:R25-11#59bd4882
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#f35c930a2026-09-30
  • R20-11rel:R20-11#6586083c2026-10-14
  • R21-11rel:R21-11#5d391bcd2026-10-14
  • R22-11rel:R22-11#3723eafa2026-10-14
  • R23-11rel:R23-11#eb3e5ef12026-10-14
  • R24-11rel:R24-11#9533d1602026-10-14
  • R25-11rel:R25-11#59bd48822026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция ~UdsTransportProtocolPeriodicHandler [SWS_DM_02089] Upstream: RS_Diag_04215

virtual ~UdsTransportProtocolPeriodicHandler () noexcept;

Destructor.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_02089
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02089@rel:R25-11#85128ade
Content hash
85128ade
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02089
Status: valid/unmigrated Version: rel:R25-11#d455b1a3 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_02089@rel:R25-11#d455b1a3
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#a6cfcd7a2026-09-30
  • R24-11rel:R24-11#b5a34f3b2026-10-14
  • R25-11rel:R25-11#d455b1a32026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill