Maakt de periodieke overdracht van UDS-diagnoseberichten ter ondersteuning van service 0x2A mogelijk.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: fabfa1b95261HerkomstOpen vragen (3)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt de periodieke overdracht van UDS-diagnoseberichten ter ondersteuning van service 0x2A mogelijk.
De klasse apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler biedt een puur virtuele interface voor de afhandeling van de periodieke UDS-service 0x2A via transportspecifieke diagnosekanalen ([SWS_DM_01064]). Deze stelt het diagnosebeheer in staat om kanaalspecifieke payload- en hoeveelheidslimieten te bepalen, evenals de ordelijke overdracht van meerdere UDS-berichten via PeriodicTransmit ([SWS_DM_01067]). Als het verzenden van een bericht mislukt, wordt het proces afgebroken en wordt de toestand gemeld via een bevestigingsfunctie. Aangezien alle methoden als niet-thread-safe zijn gespecificeerd, moeten gelijktijdige toegangen door de aanroeper worden gesynchroniseerd.
Context
De puur virtuele klasse apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler vormt de gestandaardiseerde interface ter ondersteuning van het periodiek uitlezen van diagnosegegevens conform de UDS-service 0x2A ([SWS_DM_01064], AUTOSAR_AP_SWS_Diagnostics §C.3.1 “Class: UdsTransportProtocolPeriodicHandler”). In het diagnosesysteem van het AUTOSAR Adaptive Platform ontkoppelt deze het bovenliggende diagnosebeheer van de concrete netwerk- en transportprotocolimplementatie. Terwijl het diagnosebeheer binnenkomende verzoeken voor periodieke overdrachten evalueert en de bijbehorende datapakketten samenstelt, verzorgt de handler de daadwerkelijke overdracht van deze periodieke berichten over een concrete verbinding ([SWS_DM_01067]). Als interactiepartners fungeren daarbij het diagnosebeheer aan de aanroeperszijde en het respectievelijke communicatiekanaal, dat wordt geïdentificeerd via een unieke ChannelID ([SWS_DM_01065], [SWS_DM_01066]).
Aangezien UdsTransportProtocolPeriodicHandler is gedefinieerd als een abstracte basisinterface met puur virtuele methoden, kan deze niet direct worden geïnstantieerd ([SWS_DM_01064]). De creatie van concrete handler-instanties vindt vermoedelijk plaats door transportspecifieke drivercomponenten (bijvoorbeeld voor DoIP- of CAN-gebaseerde protocollen). Vraag Q-d0b3bf3b0c14dcf6 (open) De levenscyclus van de instantie is typisch gebonden aan de beschikbaarheid van de betreffende transportprotocol-stack. Voor de correcte polymorfe vernietiging bij beëindiging van de communicatiestack stelt de klasse een virtuele destructor ~UdsTransportProtocolPeriodicHandler() beschikbaar ([SWS_DM_02089], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.1.1 “Destructor”).
Wat betreft gelijktijdigheid zijn alle lidfuncties van de klasse expliciet aangeduid als niet-thread-safe (not thread-safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Bij parallelle toegang vanuit meerdere threads of gelijktijdige verzoeken via dezelfde ChannelID moeten aanroepers de toegangen daarom onder eigen verantwoordelijkheid synchroniseren.
Gebruikspad
Een typisch verloop voor het uitvoeren van periodieke berichtoverdrachten voor de service 0x2A is onderverdeeld in de volgende stappen:
Bepaling van de maximale payloadlengte: Het diagnosebeheer roept GetMaxPayloadLength(channelId) aan om de op de opgegeven verbinding maximaal ondersteunde payloadlengte voor een enkele periodieke overdracht te controleren ([SWS_DM_01066], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.1 “GetMaxPayloadLength”).
Uitvoering van de periodieke overdracht: Het diagnosebeheer geeft een geordende lijst van berichten in een ara::core::Vector<UdsMessageConstPtr> door aan de methode PeriodicTransmit(channelId, messages) ([SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.2.3 “PeriodicTransmit”). De handler verzendt de opgenomen berichten in de opgegeven volgorde.
Bevestiging: De transportlaag signaleert het resultaat van het verzendproces via de aanroep van PeriodicTransmit Confirmation, die het aantal succesvol verzonden berichten en de oorspronkelijke vector retourneert ([SWS_DM_01067]).
Tijdens de uitvoering van PeriodicTransmit worden alle berichten in de lijst achtereenvolgens overgedragen. Als de overdracht van een afzonderlijk bericht mislukt, wordt het gehele verzendproces onmiddellijk afgebroken ([SWS_DM_01067]). De daaropvolgende berichten in de lijst worden in dat geval niet meer verzonden. Voor foutdiagnose en informatie aan het diagnosebeheer wordt desalniettemin de bevestigingsaanroep PeriodicTransmit Confirmation geactiveerd. Deze bevat het aantal tot aan het afbreken succesvol verzonden berichten en ongewijzigd de volledige vector met UDS-berichten ([SWS_DM_01067]). Hierdoor kan het diagnosebeheer exact nagaan welk bericht de fout heeft veroorzaakt.
Alle interfacemethoden zijn gespecificeerd als noexcept en exception-safe (exception safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Fouttoestanden bij de overdracht leiden niet tot C++-excepties, maar worden deterministisch gemeld via het daarvoor bestemde bevestigingsmechanisme.
Deze klassehandleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform Release R25-11 en is automatisch gegenereerd.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ceb97c8b447fHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De zuiver virtuele methode PeriodicTransmit van de interface apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler dient voor het gebundeld verzenden van periodieke UDS-berichten via een bestaande transportverbinding [SWS_DM_01067]. Deze wordt typisch aangeroepen door Diagnostic Management (DM) in het kader van periodieke overdracht volgens schedulertype 1 conform ISO 14229-1, waarbij geconfigureerde periodieke DID's (PDID's) cyclisch worden getriggerd AUTOSAR_AP_SWS_Diagnostics §Scheduler Periodic Transmission[SWS_DM_01060].
Parameters en semantiek
channelId: Identifier van het concrete communicatiekanaal waarover de overdracht plaatsvindt [SWS_DM_01067].
messages: Geordende lijst (ara::core::Vector<UdsMessageConstPtr>) van alle direct na elkaar over te dragen berichten [SWS_DM_01067].
De functie levert geen retourwaarde op en garandeert als noexcept gedeclareerde uitzonderingsveiligheid [SWS_DM_01067]. De berichten worden strikt in de doorgegeven volgorde verwerkt.
Foutafhandeling en bevestiging
Mislukt het verzenden van een afzonderlijk bericht, dan breekt de gehele verzendprocedure onmiddellijk af [SWS_DM_01067]. Voor het terugmelden van het resultaat wordt de bevestigingsfunctie PeriodicTransmitConfirmation van UdsTransportProtocolMgr aangeroepen [SWS_DM_01069]. Deze callback geeft het aantal succesvol verzonden berichten door, evenals dezelfde oorspronkelijke berichtenvector [SWS_DM_01067].
Concurrency
De methode is gespecificeerd als not thread-safe[SWS_DM_01067]. Parallelle aanroepen op dezelfde instantie moeten aan aanroeperszijde worden gesynchroniseerd.
Deze tekst is door een AI gegenereerd op basis van de specificatie AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel