Ermöglicht die periodische Übertragung von UDS-Diagnosenachrichten zur Unterstützung des Dienstes 0x2A.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fabfa1b95261HerkunftOffene 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]).
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:
Ermittlung der maximalen Nutzdatenlänge: Die Diagnoseverwaltung ruft GetMaxPayloadLength(channelId) auf, um die auf der angegebenen Verbindung maximal unterstützte Nutzdatenlänge für eine einzelne periodische Übertragung zu prüfen ([SWS_DM_01066], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.1 „GetMaxPayloadLength“).
Durchführung der periodischen Übertragung: Die Diagnoseverwaltung übergibt eine geordnete Liste von Botschaften in einem ara::core::Vector<UdsMessageConstPtr> an die Methode PeriodicTransmit(channelId, messages) ([SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.3 „PeriodicTransmit“). Der Handler überträgt die enthaltenen Nachrichten in der vorgegebenen Reihenfolge.
Bestätigung: Die Transportschicht signalisiert das Ergebnis des Sendevorgangs über den Aufruf von PeriodicTransmit Confirmation, welcher die Anzahl der erfolgreich übertragenen Nachrichten und den ursprünglichen Vektor zurückliefert ([SWS_DM_01067]).
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.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ceb97c8b447fHerkunft
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.
gemini-3.8-flash-medium· 2026-10-13