Stelt aan applicaties transport- en protocolgerelateerde metadata over een lopend diagnoseverzoek ter beschikking.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4cec228b1decHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt aan applicaties transport- en protocolgerelateerde metadata over een lopend diagnoseverzoek ter beschikking.
De klasse ara::diag::MetaInfo stelt aan Adaptive Applications relevante meta-informatie zoals bronadres, doeladres en protocolcontext van een lopend diagnoseverzoek ter beschikking (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1 “MetaInfo class”). Applicaties vragen deze waarden tijdens een door Diagnostic Management geïnitieerde callback-aanroep synchroon op via inspectiemethoden. De gegarandeerde levensduur van het object is daarbij strikt beperkt tot de uitvoeringstijd van de actieve callback-functie, waardoor opslaan buiten deze aanroep leidt tot ongedefinieerd gedrag ([SWS_DM_01345]).
Context
De klasse ara::diag::MetaInfo biedt een gestandaardiseerd mechanisme om transport- en protocolspecifieke meta-informatie vanuit Diagnostic Management (DM) door te geven aan geïnteresseerde Adaptive Applications (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1 “MetaInfo class”). In de AUTOSAR Adaptive-diagnosearchitectuur treedt DM op als tussenpersoon tussen externe diagnoseclients en de interne functieclusters respectievelijk applicaties. Komt er een diagnoseverzoek binnen via een UDS-transportprotocol of SOVD, dan extraheert DM relevante protocolgegevens en geeft deze bij methodeaanroepen door aan de interfaces van de applicatie ([SWS_DM_02094]).
Tot de kerntaken van ara::diag::MetaInfo behoort het ter beschikking stellen van de aanroepcontext alsmede specifieke sleutel-waardeparen. Via de interface verkrijgen applicatieservices informatie over het bronadres (SA) van de diagnoseclient middels de sleutel kSA ([SWS_DM_02094]), het doeladres (TA) van de diagnoseserver via kTA ([SWS_DM_02095]) alsmede de UDS-adresseringswijze (fysiek of functioneel) via de sleutel kTAType ([SWS_DM_02096]). De aanroepcontext wordt getypeerd via het type ara::diag::MetaInfo::Context ([SWS_DM_00977]). Mogelijke contexten zijn de reguliere diagnosecommunicatie kDiagnosticCommunication ([SWS_DM_01342]), de foutgeheugentoegang kFaultMemory ([SWS_DM_01343]), DoIP-initiële opvragingen zoals het uitlezen van het voertuigidentificatienummer kDoIP ([SWS_DM_01344]) en serviceverzoeken in de SOVD-context kSovd ([SWS_DM_01818]).
Het creëren en beheren van ara::diag::MetaInfo-instanties berust volledig bij Diagnostic Management. De parameterloze standaardconstructor is expliciet verwijderd ([SWS_DM_00972]). Bijgevolg kan een applicatie eigen instanties noch direct instantiëren, noch via kopieerbewerkingen dupliceren, aangezien zowel de kopieerconstructor ([SWS_DM_00973]) als de kopieertoewijzingsoperator ([SWS_DM_00975]) verwijderd zijn. Een instantiëring vindt vermoedelijk intern plaats door DM vóór het aanroepen van de applicatie-callbacks. Vraag Q-f695f92296527ce8 (open)ara::diag::MetaInfo ondersteunt move-semantiek: de move-constructor ([SWS_DM_00974]) en de move-toewijzingsoperator ([SWS_DM_00976]) zijn beschikbaar. De vernietiging vindt plaats via de standaarddestructor ([SWS_DM_00980]).
Wat betreft eigendomsverhoudingen en geldigheidsduur geldt een strikte binding aan de actieve methodeaanroep: voor elke door DM aan de applicatie gerichte methode met een MetaInfo-object als parameter is de gegarandeerde levensduur strikt beperkt tot de duur van deze methodeaanroep ([SWS_DM_01345], AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.2 “Lifetime of MetaInfo”). Na terugkeer van de functie is het verder gebruiken of opslaan van het object niet toegestaan.
Met betrekking tot gelijktijdigheid zijn de lezende inspectiemethoden GetContext() ([SWS_DM_00979]) en GetValue() ([SWS_DM_00978]) gespecificeerd als thread-safe en uitzonderingsveilig. De move-toewijzingsoperator ([SWS_DM_00976]) en de destructor ([SWS_DM_00980]) zijn daarentegen niet thread-safe. Kan een callback volgens configuratie gelijktijdig worden aangeroepen (AUTOSAR_AP_SWS_Diagnostics §7.3.1.2 “Concurrency of ara::diag interfaces”), dan stelt DM bij elke aanroep een afzonderlijk, voor de aanroepduur geldig object ter beschikking.
Gebruikspad
Het typische gebruikstraject strekt zich uit van de ontvangst van een diagnose-aanroep tot aan de evaluatie van de overgedragen metagegevens:
Aanroep door het DM: Diagnostic Management roept een callback-methode van de applicatie aan en draagt daarbij een referentie naar ara::diag::MetaInfo over ([SWS_DM_01345]).
Context bepalen: De applicatie roept GetContext() aan ([SWS_DM_00979]) om vast te stellen of de aanroep bijvoorbeeld plaatsvindt in het kader van een reguliere diagnosecommunicatie (kDiagnosticCommunication, [SWS_DM_01342]) of een foutgeheugentoegang (kFaultMemory, [SWS_DM_01343]).
Sleutelwaarden opvragen: Middels GetValue() ([SWS_DM_00978]) vraagt de applicatie gericht benodigde attributen op, zoals het afzenderadres met kSA ([SWS_DM_02094]), het doeladres met kTA ([SWS_DM_02095]) of de adresseringsmodus met kTAType ([SWS_DM_02096]).
Resultaat verwerken:GetValue() retourneert een ara::core::Optional<ara::core::StringView> ([SWS_DM_00978]). Als de waarde aanwezig is, evalueert de applicatie de tekenreeks synchroon om toegangscontroles of adresseringslogica uit te voeren.
Afsluiting van de aanroep: De applicatie voltooit de verwerking en keert terug uit de callback-methode, waarmee de levensduur van de overgedragen metagegevens eindigt ([SWS_DM_01345]).
Bij het gebruik van ara::diag::MetaInfo moeten ontwikkelaars specifieke pre- en postcondities in acht nemen:
Opslag na afloop van de callback-duur: Slaat een applicatie het MetaInfo-object of een door GetValue() geretourneerde ara::core::StringView op na afloop van de uitvoeringstijd van de callback-functie, dan leidt dit tot ongedefinieerd gedrag ([SWS_DM_01345], AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.2 “Lifetime of MetaInfo”). Waarden die asynchroon of permanent benodigd zijn, moeten als eigen stringkopieën worden gepersisteerd.
Opvragen van niet-aanwezige sleutels: Wordt een sleutel overgedragen die in de huidige context niet beschikbaar wordt gesteld, dan genereert GetValue() geen exceptie, maar retourneert het een lege ara::core::Optional ([SWS_DM_00978]). Beide toegangsmethoden zijn gedeclareerd met noexcept en zijn exceptieveilig ([SWS_DM_00978], [SWS_DM_00979]).
Contextspecifieke geldigheid: In de context kDoIP ([SWS_DM_01344]) is volgens de specificatie geen van de standaardsleutels toepasbaar (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.1 “Provision of MetaInfo”). De aanroep van GetValue() met UDS-sleutels zoals kSA of kTA levert in deze context geen resultaat op.
Deze handleiding is geautomatiseerd door een AI opgesteld op basis van de AUTOSAR-specificatie R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel