DEENESPTFRRUARHIKOZHNL

class 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

User GuideAI-GENERATED

Enables the periodic transmission of UDS diagnostic messages to support service 0x2A.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: fabfa1b95261 Provenance Open questions (3)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Enables the periodic transmission of UDS diagnostic messages to support service 0x2A.

The class apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler provides a pure virtual interface for handling the periodic UDS service 0x2A via transport-specific diagnostic channels ([SWS_DM_01064]). It allows diagnostic management to determine channel-specific payload and quantity limits as well as the ordered transmission of multiple UDS messages by means of PeriodicTransmit ([SWS_DM_01067]). If sending a message fails, the operation is aborted and the state is reported via a confirmation function. Since all methods are specified as not thread-safe, concurrent accesses must be synchronized by the caller.

Context

The pure virtual class apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler represents the standardized interface for supporting the periodic readout of diagnostic data according to the UDS service 0x2A ([SWS_DM_01064], AUTOSAR_AP_SWS_Diagnostics §C.3.1 “Class: UdsTransportProtocolPeriodicHandler”). In the diagnostic system of the AUTOSAR Adaptive Platform, it decouples the higher-level diagnostic management from the concrete network and transport protocol implementation. While the diagnostic management evaluates incoming requests for periodic transmissions and assembles corresponding data packets, the handler takes over the actual transmission of these periodic messages via a concrete connection ([SWS_DM_01067]). Interaction partners here are the diagnostic management on the caller side and the respective communication channel, which is identified via a unique ChannelID ([SWS_DM_01065], [SWS_DM_01066]).

diag_periodic_kontext diag_server Diagnose-Server (UDS 0x2A) handler UdsTransportProtocolPeriodicHandler diag_server->handler Capacity query & transmission request handler->diag_server PeriodicTransmit Confirmation transport Transportschicht (ChannelID) handler->transport Periodische Nachrichten

Context diagram: Embedding of UdsTransportProtocolPeriodicHandler between diagnostic server and transport layer. Sources: [SWS_DM_01064], [SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1 “Class: UdsTransportProtocolPeriodicHandler”.

Lifecycle

Since UdsTransportProtocolPeriodicHandler is defined as an abstract base interface with pure virtual methods, it cannot be instantiated directly ([SWS_DM_01064]). The creation of concrete handler instances is presumably performed by transport-specific driver components (for example, for DoIP- or CAN-based protocols). Question Q-d0b3bf3b0c14dcf6 (open) The lifecycle of the instance is typically tied to the availability of the respective transport protocol stack. For clean polymorphic destruction upon termination of the communication stack, the class provides a virtual destructor ~UdsTransportProtocolPeriodicHandler() ([SWS_DM_02089], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.1.1 “Destructor”).

Regarding concurrency, all member functions of the class are explicitly designated as not thread-safe (not thread-safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). In the case of parallel access via multiple threads or concurrent requests via the same ChannelID, callers must therefore synchronize accesses on their own responsibility.

Usage Path

A typical sequence for performing periodic message transmissions for service 0x2A is divided into the following steps:

Periodic transmission via UdsTransportProtocolPeriodicHandlerDiagnose-Server (0x2A)UdsTransportProtocolPeriodicHandlerTransportschicht / KanalUse Case: Kanalparameter ermittelnGetMaxPayloadLength(channelId)maxPayloadLengthGetNumberOfPeriodicMessages(channelId)numberOfPeriodicMessagesUse Case: Periodischer SendevorgangPeriodicTransmit(channelId, messages)loopFor each message in messagesTransmit messagealtTransmission error occurredSendeprozess stoppenPeriodicTransmit Confirmation(anzahlGesendet, messages)All messages successfulPeriodicTransmit Confirmation(gesamtAnzahl, messages)

Sequence diagram: Typical sequence of capacity query, periodic sending, and confirmation. Sources: [SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067].

Error Scenarios

During the execution of PeriodicTransmit, all messages in the list are transmitted sequentially. If the transmission of an individual message fails, the entire sending process is aborted immediately ([SWS_DM_01067]). In this case, subsequent messages in the list are no longer sent. For fault diagnosis and informing diagnostic management, the confirmation call PeriodicTransmit Confirmation is triggered nonetheless. This call contains the number of messages successfully transmitted up to the abort as well as the complete vector of UDS messages unchanged ([SWS_DM_01067]). This allows diagnostic management to trace exactly which message caused the error.

All interface methods are specified as noexcept and exception-safe (exception safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Error states during transmission do not lead to C++ exceptions, but are reported deterministically via the intended confirmation mechanism.

This class guide is based on the specification AUTOSAR Adaptive Platform Release R25-11 and was generated automatically.

Member map

Class diagram

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

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

Detail view

Select an entry in the outline.

Constructors and destructor

Methods

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;

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;

Method documentation

function 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#1dc32cc8
Content hash
1dc32cc8
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

function 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#f28623fc
Content hash
f28623fc
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

function 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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: ceb97c8b447f Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The pure virtual method PeriodicTransmit of interface apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler serves for bundled transmission of periodic UDS messages via an existing transport connection [SWS_DM_01067]. It is typically called by Diagnostic Management (DM) in the context of periodic transmission according to scheduler type 1 pursuant to ISO 14229-1, in which configured periodic DIDs (PDIDs) are triggered cyclically AUTOSAR_AP_SWS_Diagnostics §Scheduler Periodic Transmission [SWS_DM_01060].

Parameters and Semantics

  • channelId: Identifier of the concrete communication channel over which transmission takes place [SWS_DM_01067].
  • messages: Ordered list (ara::core::Vector<UdsMessageConstPtr>) of all messages to be transmitted immediately one after another [SWS_DM_01067].

The function returns no value and guarantees exception safety declared as noexcept [SWS_DM_01067]. The messages are processed strictly in the passed order.

Error handling and confirmation

If sending an individual message fails, the entire sending process aborts immediately [SWS_DM_01067]. To report the result, the confirmation function PeriodicTransmitConfirmation of UdsTransportProtocolMgr is called [SWS_DM_01069]. This callback passes the number of successfully transmitted messages as well as the same original message vector [SWS_DM_01067].

Concurrency

The method is specified as not thread-safe [SWS_DM_01067]. Concurrent calls on the same instance must be synchronized on the caller side.

This text was generated by an AI based on the AUTOSAR Adaptive R25-11 specification.

Implementer's Guide to follow (complexity 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#f35c930a
Content hash
f35c930a
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

function ~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#a6cfcd7a
Content hash
a6cfcd7a
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