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 GuideKI-GENERIERT

Ermöglicht die periodische Übertragung von UDS-Diagnosenachrichten zur Unterstützung des Dienstes 0x2A.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fabfa1b95261 Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Ermöglicht die periodische Übertragung von UDS-Diagnosenachrichten zur Unterstützung des Dienstes 0x2A.

Die Klasse apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler stellt eine rein virtuelle Schnittstelle zur Abwicklung des periodischen UDS-Dienstes 0x2A über transportspezifische Diagnosekanäle bereit ([SWS_DM_01064]). Sie erlaubt der Diagnoseverwaltung die Ermittlung kanalspezifischer Nutzdaten- und Mengengrenzen sowie die geordnete Übertragung mehrerer UDS-Nachrichten mittels PeriodicTransmit ([SWS_DM_01067]). Schlägt das Senden einer Nachricht fehl, wird der Vorgang abgebrochen und der Zustand über eine Bestätigungsfunktion gemeldet. Da alle Methoden als nicht threadsicher spezifiziert sind, müssen nebenläufige Zugriffe durch den Aufrufer synchronisiert werden.

Kontext

Die rein virtuelle Klasse apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler stellt die standardisierte Schnittstelle zur Unterstützung des periodischen Auslesens von Diagnosedaten gemäß dem UDS-Dienst 0x2A dar ([SWS_DM_01064], AUTOSAR_AP_SWS_Diagnostics §C.3.1 „Class: UdsTransportProtocolPeriodicHandler“). Im Diagnosesystem der AUTOSAR Adaptive Platform entkoppelt sie die übergeordnete Diagnoseverwaltung von der konkreten Netzwerk- und Transportprotokollimplementierung. Während die Diagnoseverwaltung eingehende Anfragen für periodische Übertragungen auswertet und entsprechende Datenpakete zusammenstellt, übernimmt der Handler die eigentliche Übertragung dieser periodischen Botschaften über eine konkrete Verbindung ([SWS_DM_01067]). Als Interaktionspartner fungieren dabei die Diagnoseverwaltung auf Aufruferseite sowie der jeweilige Kommunikationskanal, welcher über einen eindeutigen ChannelID identifiziert wird ([SWS_DM_01065], [SWS_DM_01066]).

diag_periodic_kontext diag_server Diagnose-Server (UDS 0x2A) handler UdsTransportProtocolPeriodicHandler diag_server->handler Kapazitätsabfrage & Sendeauftrag handler->diag_server PeriodicTransmit Confirmation transport Transportschicht (ChannelID) handler->transport Periodische Nachrichten

Kontextdiagramm: Einbettung des UdsTransportProtocolPeriodicHandler zwischen Diagnose-Server und Transportschicht. Quellen: [SWS_DM_01064], [SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1 „Class: UdsTransportProtocolPeriodicHandler“.

Lebenszyklus

Da UdsTransportProtocolPeriodicHandler als abstrakte Basisschnittstelle mit rein virtuellen Methoden definiert ist, kann sie nicht direkt instanziiert werden ([SWS_DM_01064]). Die Erzeugung konkreter Handler-Instanzen erfolgt vermutlich durch transportspezifische Treiberkomponenten (beispielsweise für DoIP- oder CAN-basierte Protokolle). Frage Q-d0b3bf3b0c14dcf6 (offen) Der Lebenszyklus der Instanz ist typischerweise an die Verfügbarkeit des jeweiligen Transportprotokoll-Stacks gebunden. Für die saubere polymorphe Zerstörung bei Beendigung des Kommunikationsstacks stellt die Klasse einen virtuellen Destruktor ~UdsTransportProtocolPeriodicHandler() bereit ([SWS_DM_02089], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.1.1 „Destructor“).

Bezüglich der Nebenläufigkeit sind sämtliche Elementfunktionen der Klasse explizit als nicht threadsicher (not thread-safe) ausgewiesen ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Bei parallelem Zugriff über mehrere Threads oder gleichzeitigen Anforderungen über denselben ChannelID müssen Aufrufer die Zugriffe daher eigenverantwortlich synchronisieren.

Nutzungspfad

Ein typischer Ablauf zur Durchführung periodischer Nachrichtenübertragungen für den Dienst 0x2A gliedert sich in folgende Schritte:

Periodische Übertragung über UdsTransportProtocolPeriodicHandlerDiagnose-Server (0x2A)UdsTransportProtocolPeriodicHandlerTransportschicht / KanalUse Case: Kanalparameter ermittelnGetMaxPayloadLength(channelId)maxPayloadLengthGetNumberOfPeriodicMessages(channelId)numberOfPeriodicMessagesUse Case: Periodischer SendevorgangPeriodicTransmit(channelId, messages)loopFür jede Nachricht in messagesÜbertrage NachrichtaltÜbertragungsfehler aufgetretenSendeprozess stoppenPeriodicTransmit Confirmation(anzahlGesendet, messages)Alle Nachrichten erfolgreichPeriodicTransmit Confirmation(gesamtAnzahl, messages)

Sequenzdiagramm: Typischer Ablauf der Kapazitätsabfrage, des periodischen Sendens und der Bestätigung. Quellen: [SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067].

Fehlerszenarien

Während der Ausführung von PeriodicTransmit werden alle Nachrichten der Liste der Reihe nach übermittelt. Scheitert die Übertragung einer einzelnen Nachricht, wird der gesamte Sendeprozess unmittelbar abgebrochen ([SWS_DM_01067]). Die nachfolgenden Nachrichten der Liste werden in diesem Fall nicht mehr gesendet. Zur Fehlerdiagnose und Information der Diagnoseverwaltung wird dennoch der Bestätigungsaufruf PeriodicTransmit Confirmation ausgelöst. Dieser enthält die Anzahl der bis zum Abbruch erfolgreich übertragenen Nachrichten sowie unverändert den vollständigen Vektor mit UDS-Nachrichten ([SWS_DM_01067]). Dadurch kann die Diagnoseverwaltung exakt nachvollziehen, welche Nachricht den Fehler verursacht hat.

Sämtliche Schnittstellenmethoden sind als noexcept und ausnahmesicher (exception safe) spezifiziert ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Fehlerzustände bei der Übertragung führen nicht zu C++-Ausnahmen, sondern werden deterministisch über den vorgesehenen Bestätigungsmechanismus gemeldet.

Dieser Klassen-Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11 und wurde automatisch generiert.

Mitgliederkarte

Klassendiagramm

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

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

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

Methoden

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;

Dokumentation der Methoden

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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ceb97c8b447f Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die rein virtuelle Methode PeriodicTransmit der Schnittstelle apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler dient dem gebündelten Versenden periodischer UDS-Nachrichten über eine bestehende Transportverbindung [SWS_DM_01067]. Sie wird typischerweise vom Diagnostic Management (DM) im Rahmen der periodischen Übertragung nach Scheduler-Typ 1 gemäß ISO 14229-1 aufgerufen, bei dem konfigurierte periodische DIDs (PDIDs) zyklisch ausgelöst werden AUTOSAR_AP_SWS_Diagnostics §Scheduler Periodic Transmission [SWS_DM_01060].

Parameter und Semantik

  • channelId: Kennung des konkreten Kommunikationskanals, über den die Übertragung erfolgt [SWS_DM_01067].
  • messages: Geordnete Liste (ara::core::Vector<UdsMessageConstPtr>) aller unmittelbar nacheinander zu übertragenden Nachrichten [SWS_DM_01067].

Die Funktion liefert keinen Rückgabewert und garantiert als noexcept deklarierte Ausnahmesicherheit [SWS_DM_01067]. Die Nachrichten werden strikt in der übergebenen Reihenfolge abgearbeitet.

Fehlerbehandlung und Bestätigung

Schlägt das Senden einer einzelnen Nachricht fehl, bricht der gesamte Sendevorgang unverzüglich ab [SWS_DM_01067]. Zur Rückmeldung des Ergebnisses wird die Bestätigungsfunktion PeriodicTransmitConfirmation des UdsTransportProtocolMgr aufgerufen [SWS_DM_01069]. Dieser Rückruf übergibt die Anzahl der erfolgreich übertragenen Nachrichten sowie denselben ursprünglichen Nachrichtenvektor [SWS_DM_01067].

Nebenläufigkeit

Die Methode ist als not thread-safe spezifiziert [SWS_DM_01067]. Parallele Aufrufe auf derselben Instanz müssen aufruferseitig synchronisiert werden.

Dieser Text wurde von einer KI basierend auf der Spezifikation AUTOSAR Adaptive R25-11 generiert.

Implementer's Guide folgt (Komplexität 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