Dient voor het applicatiezijdig beschikbaar stellen van uitgebreide diagnosegegevens voor het adaptieve Diagnostic Management.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 0446a63ad449HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor het applicatiezijdig beschikbaar stellen van uitgebreide diagnosegegevens voor het adaptieve Diagnostic Management.
De klasse <ExtendedDataRecordElementInterface> dient adaptieve applicaties als interface voor het beschikbaar stellen van uitgebreide diagnosegegevens aan Diagnostic Management ([SWS_DM_02152]). Na instantiëring en activering via Offer() implementeert de handler de asynchrone levering van de gegevens via de zuiver virtuele methode Read() ([SWS_DM_02156]). Aangezien de Diagnostic Manager de gegevensrecords permanent opslaat in het niet-vluchtige geheugen, moeten niet-beschikbare waarden verplicht worden opgevuld met een opvulpatroon. De interface is noch kopieerbaar, noch verplaatsbaar en de destructor ervan is niet thread-safe.
Context
De interface <ExtendedDataRecordElementInterface> dient in het diagnosesubsysteem van het AUTOSAR Adaptive Platform voor het beschikbaar stellen van applicatiespecifieke uitgebreide diagnosegegevens (Extended Data Records) aan Diagnostic Management (DM) (AUTOSAR AP SWS Diagnostics §7.2 “DiagnosticExtendedDataRecordInterface”). Een Extended Data Record bevat diagnosegerelateerde aanvullende gegevens zoals tellerstanden of omgevingsinformatie die aan een foutgebeurtenis zijn toegewezen. De klasse fungeert als abstracte basisinterface voor handler-componenten aan de applicatiezijde. Tot de interactiepartners behoren de Diagnostic Manager (DM), die leesoperaties aanvraagt en coördineert, de concrete handler-implementatie binnen de applicatie en het niet-vluchtige geheugen (Non-Volatile Memory, NVM), waarin de DM de opgehaalde gegevens permanent opslaat ([SWS_DM_02156]). Interpretatie: de aanroep van Read() wordt vermoedelijk veranlasst door een interne diagnoseverwerking in de DM, bijvoorbeeld bij het optreden van een foutgebeurtenis of bij statuswijzigingen van een Diagnostic Trouble Code. Vraag Q-f80be8c2bd5697fc (open)
Het aanmaken geschiedt via de geparametriseerde constructor onder vermelding van een ara::core::InstanceSpecifier en de concurrency-modus ara::diag::ConcurrencyType ([SWS_DM_02158], AUTOSAR AP SWS Diagnostics §7.2 “DiagnosticExtendedDataRecordInterface”). De constructie is thread-safe en uitzonderingsveilig (exception safe). Via de parameter concurrencyType wordt vastgelegd of aanroepen van de interface gelijktijdig (kConcurrent) of sequentieel (kNotConcurrent) verwerkt mogen worden ([SWS_DM_02158]). Kopieer- en verplaatsoperaties zijn volledig verhinderd: copy-constructor ([SWS_DM_02147]), copy-toekenning ([SWS_DM_02148]), move-constructor ([SWS_DM_02149]) en move-toekenning ([SWS_DM_02150]) zijn verwijderd (=delete). Een instantie heeft daarmee een vaste identiteit en kan noch gedupliceerd, noch overgedragen worden.
Na instantiëring bevindt het object zich eerst in inactieve toestand. Pas door het aanroepen van Offer() ([SWS_DM_02152]) wordt de service actief geschakeld en stuurt de DM verzoeken door naar de handler. Met behulp van StopOffer() ([SWS_DM_02153]) kan dit doorsturen te allen tijde worden gestopt. De vernietiging vindt plaats via de virtuele destructor ~<ExtendedDataRecordElementInterface>() ([SWS_DM_02151]). Deze is weliswaar uitzonderingsveilig, maar expliciet niet thread-safe (not thread-safe) ([SWS_DM_02151]). Interpretatie: StopOffer() moet vermoedelijk worden aangeroepen vóór het vernietigen van het handler-object, om te waarborgen dat er geen verdere verzoeken binnenkomen terwijl het object wordt vrijgegeven. Vraag Q-c77dda63f0e8798a (open)
Gebruikspad
Het reguliere verloop omvat het aanbieden, het asynchroon beantwoorden van leesverzoeken en de deactivering van de service:
Initialisatie: de applicatie instantieert de afgeleide klasse met de passende port-identifier en de concurrency-configuratie ([SWS_DM_02158]).
Service-aanbod: door aanroep van Offer() wordt het doorsturen van verzoeken in de DM vrijgegeven ([SWS_DM_02152]). De methode retourneert een ara::core::Result<void>.
Gegevensopvraging: wanneer een leesverzoek binnenkomt, roept de DM de zuiver virtuele methode Read() aan ([SWS_DM_02156]). Daarbij worden de verzoek-metadata (metaInfo) en een cancellationHandler meegegeven.
Annuleringsafhandeling en teruggave: de handler kan via cancellationHandler.IsCanceled() controleren of de conversatie is afgebroken, of via cancellationHandler.SetNotifier() een notificatie registreren ([SWS_DM_02156]). Het resultaat wordt asynchroon geleverd via een ara::core::Future met een ReadOutput-object ([SWS_DM_02156], [SWS_DM_02154]).
Persistentie: de DM neemt de opgehaalde gegevens over en slaat deze permanent op in het niet-vluchtige geheugen ([SWS_DM_02156]).
Service-afmelding: vóór het afsluiten roept de applicatie StopOffer() aan ([SWS_DM_02153]) om het doorsturen door de DM te beëindigen voordat de instantie wordt vernietigd ([SWS_DM_02151]).
Bij het gebruik van de interface dient rekening te worden gehouden met diverse foutcondities en randvoorwaarden:
Constructiefouten en modelschendingen: bij het aanroepen van de constructor kunnen modelleringsfouten optreden ([SWS_DM_02158]). Daartoe behoren InstanceSpecifierMappingIntegrityViolation (de identifier kan niet worden opgelost of refereert niet naar een PortPrototype), PortInterfaceMappingViolation (ontbrekende referentiëring door een DiagnosticDataPortMapping), ProcessMappingViolation (geen passend proces in het model gevonden) en InstanceSpecifierAlreadyInUseViolation (de identifier wordt al gebruikt in het proces) ([SWS_DM_02158]).
Meervoudig aanbieden: als Offer() wordt aangeroepen terwijl de service al actief wordt aangeboden, mislukt de aanroep en retourneert deze de foutcode DiagOfferErrc::kAlreadyOffered ([SWS_DM_02152]).
Niet-beschikbare gegevens bij leesverzoeken: aangezien de DM de gegevens in het niet-vluchtige geheugen opslaat, moet bij een aanroep van Read() verplicht een waarde worden geretourneerd ([SWS_DM_02156]). Als gegevens op het moment van bevragen niet beschikbaar zijn, moet de handler-implementatie deze opvullen met een gedefinieerd opvulpatroon zoals 0xFF ([SWS_DM_02156]).
Applicatie- en diagnosefouten: als het beschikbaar stellen van gegevens geheel mislukt, kan de geretourneerde ara::core::Future een overeenkomstige diagnose-NRC-foutcode (DiagUdsNrcErrc) of een applicatiespecifieke fout (ApApplicationError) bevatten ([SWS_DM_02156]).
Gevaar bij destructie: aangezien de destructor niet thread-safe is ([SWS_DM_02151]), leidt vernietiging van het object tijdens parallel lopende aanroepen of zonder voorafgaande StopOffer() ([SWS_DM_02153]) tot ongedefinieerd gedrag.
Deze handleiding is gegenereerd door een AI op basis van de specificatie AUTOSAR R25-11.
Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 5f6f8ec51798HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik en aanroepcontext
De functie <ExtendedDataRecordElementInterface> dient als constructor voor het creëren van een DataElement voor een uitbreidingsrecord-interface aan de hand van een ara::core::InstanceSpecifier[SWS_DM_02158]. De declaratie bevindt zich in de scope <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface> en vereist het includeren van het headerbestand #include "<ExtendedDataRecordElementShortname>.h"AUTOSAR_AP_SWS_Diagnostics §8.49.2.2.1.6.
De synchrone aanroep vereist twee invoerparameters [SWS_DM_02158]:
instanceSpec (ara::core::InstanceSpecifier): Identifier van de concrete service-instantie in het AUTOSAR-model.
concurrencyType (ara::diag::ConcurrencyType): Bepaalt of de interface thread-safe (kConcurrent) of niet-thread-safe (kNotConcurrent) wordt geïnstantieerd.
Gelijktijdigheid en foutveiligheid
De constructorfunctie zelf is gedeclareerd als noexcept en gespecificeerd als thread-safe en exception safe[SWS_DM_02158]. Interpretatie: Aangezien de functie als noexcept is gedefinieerd, zullen modellerings- en initialisatiefouten vermoedelijk niet via C++-exceptions, maar via de in het Adaptive-framework gedefinieerde violations worden gesignaleerd [SWS_DM_02158]. Vraag Q-9ce91764c3e8364e (open)
Foutafhandeling en modelviolations
Bij een foutieve modelconfiguratie of ongeldige identifiers treden specifieke violations op [SWS_DM_02158]:
InstanceSpecifierMappingIntegrityViolation: De identifier kan in de context van het proces niet worden opgelost of verwijst niet naar een PortPrototype.
PortInterfaceMappingViolation: Een door DiagnosticExtendedDataRecordInterface getypeerde PortPrototype wordt niet door een DiagnosticDataPortMapping gerefereerd.
ProcessMappingViolation: Een passende InstanceRef bestaat, maar er is geen passend gemodelleerd proces voor het runtimeproces gevonden.
InstanceSpecifierAlreadyInUseViolation: De constructor is aangeroepen met een InstanceSpecifier die in het proces reeds in gebruik is.
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie van AUTOSAR Adaptive R25-11.
Implementer's Guide volgt (complexiteit I1)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheit
exception safe
Thread-Sicherheit
thread-safe
Verletzungen (Violations)
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is typed by a pingViolation DiagnosticExtendedDataRecordInterface needs to be referenced by a DiagnosticDataPortMapping.
ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
instanceSpec
The specifier of a specific instance of a service.
concurrencyType
Specifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to forward request messages to this handler
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e44e4ef775f3HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie Offer activeert het doorsturen van diagnoseverzoeken door de Diagnostic Management Daemon (DM) naar de betreffende instantie van de handler [SWS_DM_02152]. Zij wordt parameterloos aangeroepen en levert synchroon een ara::core::Result<void> terug, gedeclareerd als noexcept en gespecificeerd als exception-safe [SWS_DM_02152].
Voor een correct gebruik en de foutafhandeling gelden de volgende richtlijnen:
Retourwaarde en fouten: In het geval van succes bevat het resultaat een lege waarde. Werd de service voor deze handler-instantie al eerder geregistreerd, dan mislukt de aanroep en levert deze de foutcode DiagOfferErrc::kAlreadyOffered op met rollback-semantiek [SWS_DM_02152]. Verwante foutdomeinen definiëren voor deze toestand eveneens de foutcode kAlreadyOffered[SWS_DM_00514][SWS_DM_00560].
Concurrency: In tegenstelling tot andere diagnose-handlers, die vaak als niet thread-safe zijn aangeduid (zoals bijvoorbeeld in [SWS_DM_00557]), is deze methode expliciet gedefinieerd als thread-safe [SWS_DM_02152].
Interactie in het systeem: Zolang een interface door de applicatie nog niet middels Offer beschikbaar is gesteld, reageert de DM afhankelijk van de context met gedefinieerde standaard- resp. vervangende waarden, zoals bijvoorbeeld met de status “Not ready” bij DoIP-PowerMode-opvragingen [SWS_DM_01525] of vervangende waarden voor groeps-ID's [SWS_DM_01527]. Bovendien benadrukt de specificatie dat diagnose-offer-functies specifiek zijn voor ara::diag en niet mogen worden verward met ara::com::OfferAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.
Interpretatie: Het synchrone terugkoppelingsgedrag van Offer zal er vermoedelijk voor zorgen dat de handler-registratie vóór de ontvangst van opvolgende UDS-verzoeken volledig is voltooid. Vraag Q-e6b2916cf4887164 (open)
Deze tekst is gegenereerd door een AI op basis van de AUTOSAR-specificatie R25-11.
Implementer's Guide volgt (complexiteit I2)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
• If successful: an ara::core::Result containing a ara:: core::Result::value_type • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: diag::DiagOfferErrc
Fehler
Fehlercode
Beschreibung
DiagOfferErrc::kAlreadyOffered
rollback_semantics The service is already offered.
Request a governed re-review of this record. The record is not changed immediately.
Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: fe834745387eHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik en semantiek
De zuiver virtuele methode Read wordt aangeroepen door het Diagnostic Management (DM) om de gegevens van een ExtendedDataRecordElement op te vragen uit de applicatie ([SWS_DM_02156]). Aangezien het DM de opgevraagde gegevens permanent opslaat in het niet-vluchtige geheugen, moet de methode altijd een waarde leveren. Als er op het tijdstip van aanroepen geen gegevens beschikbaar zijn, moeten deze door de implementatie worden opgevuld met een vulpatroon zoals 0xFF ([SWS_DM_02156]).
De uitvoering verloopt asynchroon en retourneert een ara::core::Future die bij succes de structuur ReadOutput inkapselt ([SWS_DM_02154]). De aanroep geeft de volgende parameters mee ([SWS_DM_02156]):
metaInfo: Geeft meta-informatie van het onderliggende diagnoseverzoek door.
cancellationHandler: Maakt het mogelijk om een afbreking op te vragen via cancellationHandler.IsCanceled() en om een notificatiefunctie te registreren via cancellationHandler.SetNotifier().
Foutafhandeling
In geval van een fout stelt de Future een negatieve UDS-responscode (DiagUdsNrcErrc) of een applicatiespecifieke fout (ApApplicationError) beschikbaar ([SWS_DM_02156], AUTOSAR_AP_SWS_Diagnostics §7.3.2.6.1 “NRCs created by application”). Indien de benodigde service-interface nog niet of niet meer via offer() beschikbaar wordt gesteld, antwoordt het DM met NRC 0x94 (ResourceTemporarilyNotAvailable) ([SWS_DM_01257]). Daarnaast meldt DiagOfferErrc::kAlreadyOffered wanneer de service al wordt aangeboden ([SWS_DM_02156]).
Gelijktijdigheid en wisselwerking
De methode is gespecificeerd als uitzonderingsveilig (exception safe) ([SWS_DM_02156]). De thread-safety is voorwaardelijk en implementatiegedefinieerd (implementation defined) ([SWS_DM_02156]). Dit onderscheidt Read voor Extended Data Records van leesoperaties op reguliere gegevenselementen ([SWS_DM_00596]) of data identifiers ([SWS_DM_00640]), die uitdrukkelijk niet-thread-safe zijn.
Deze tekst is gegenereerd door een AI-systeem op basis van de specificaties van release R25-11.
Implementer's Guide volgt (complexiteit I1)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheit
exception safe
Thread-Sicherheit
conditional Thread safety is implementation defined
Parameter (in)
Parameter
Beschreibung
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
• If successful: an ara::core::Future containing an ReadOutput object as per [SWS_DM_02154] • If unsuccessful: an ara::core::Future containing a corresponding DiagUdsNrcErrc or ApApplicationError.
Fehler
Fehlercode
Beschreibung
DiagOfferErrc::kAlreadyOffered
rollback_semantics The service is already offered.
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7a0fc3b7b561HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik en aanroepcontext
De functie StopOffer wordt aangeroepen op een instantie van de Extended-Data-Record-interface (<ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>), die via de header #include "<ExtendedDataRecordElementShortname>.h" wordt geïncludeerd [SWS_DM_02153]. De aanroep geschiedt synchroon, accepteert geen parameters en heeft geen retourwaarde (void).
Het doel van de methode is om het doorsturen van binnenkomende verzoekberichten vanuit Diagnostic Management (DM) naar het betreffende Extended-Data-Record-element te deactiveren [SWS_DM_02153]. Na de uitvoering leidt de DM geen nieuwe diagnoseverzoeken meer door naar de bijbehorende handler.
Foutafhandeling en gelijktijdigheid
De functie is gedeclareerd met de identifier noexcept en gespecificeerd als uitzonderingsveilig (exception safe) [SWS_DM_02153]. Specifieke foutcodes, retourwaarden of notificaties aan foutbewakingen zijn in de payload niet gedefinieerd; in geval van fouten worden geen exceptions opgeworpen.
Wat betreft concurrency is de methode uitdrukkelijk geclassificeerd als thread-safe (thread-safe) [SWS_DM_02153]. Dit vormt een bijzonderheid, aangezien verwante StopOffer-interfaces in ara::diag – zoals bijvoorbeeld voor routines [SWS_DM_00558], data-elementen [SWS_DM_00617] of monitors [SWS_DM_01089] – gespecificeerd zijn als niet thread-safe. Reeds in verwerking zijnde verzoeken zullen vermoedelijk vóór de definitieve stop nog worden voltooid of verworpen. Vraag Q-82e9d44f8ac1969d (open)
Interactie binnen Diagnostic Management
De naamgeving volgt het uniforme servicepatroon in AUTOSAR Adaptive, waarbij functionele eenheden hun beschikbaarheid regelen via Offer en StopOfferAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”. Het element sluit daarmee aan bij vergelijkbare interfaces van de DM, zoals voor generieke UDS-diensten [SWS_DM_00620], data-identifiers [SWS_DM_00600], security access [SWS_DM_00767] of ECU-reset-verzoeken [SWS_DM_01017].
Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie AUTOSAR Adaptive R25-11.
Implementer's Guide volgt (complexiteit I2)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheit
exception safe
Thread-Sicherheit
thread-safe
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel