Stelt applicaties in staat om UDS-lees- en schrijfverzoeken voor diagnose-identifiers generiek te verwerken.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 02c252ff66d0HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt applicaties in staat om UDS-lees- en schrijfverzoeken voor diagnose-identifiers generiek te verwerken.
De klasse ara::diag::GenericDataIdentifier dient als generieke interface voor de asynchrone verwerking van UDS-lees- en schrijfverzoeken voor diagnose-identifiers in AUTOSAR Adaptive [SWS_DM_00636]. Na binding aan een poort en vrijgave via Offer() leidt Diagnostic Management verzoeken door naar de geïmplementeerde methoden [SWS_DM_00638]. Als singuliere instantie kan het object noch gekopieerd noch verplaatst worden, terwijl de thread-safety van de verwerking van verzoeken wordt geregeld via de bij de constructor gekozen concurrency-configuratie.
Context
De klasse ara::diag::GenericDataIdentifier vormt een generieke service-interface binnen het functionele cluster Diagnostic Management (DM) van het AUTOSAR Adaptive Platform SWS Diagnostics §8.2 “GenericDataIdentifier”. Waar typespecifieke interfaces gebonden zijn aan vast gemodelleerde datatypes, dient GenericDataIdentifier voor de flexibele verwerking van diagnose-identifiers (Data Identifiers, DID's), waarbij de 16-bits identifier dynamisch als parameter wordt doorgegeven.
Bij de diagnoseverwerking zijn primair drie rollen betrokken:
De externe diagnosetester, die gestandaardiseerde UDS-diensten zoals ReadDataByIdentifier (0x22) of WriteDataByIdentifier (0x2E) richt aan het voertuig.
Diagnostic Management (DM), dat diagnoseverzoeken ontvangt, valideert en via gedefinieerde poortinterfaces doorstuurt naar de desbetreffende applicatie-instantie, mits deze vooraf via Offer is geactiveerd [SWS_DM_00638].
De applicatiespecifieke implementatie van GenericDataIdentifier, die de eigenlijke verwerkingslogica inkapselt door de methoden Read[SWS_DM_00636] en Write[SWS_DM_00637] beschikbaar te stellen en de data asynchroon te retourneren.
Levenscyclus
Een instantie van ara::diag::GenericDataIdentifier wordt expliciet geïnstantieerd via haar constructor [SWS_DM_00634]. Daarbij bindt de aanroeper het object aan een ara::core::InstanceSpecifier, die verwijst naar een PortPrototype van een gemodelleerde DiagnosticDataIdentifierGenericInterface. Via het argument concurrencyType (van het type DataIdentifierConcurrencyType) wordt vastgelegd of verzoeken gelijktijdig (kConcurrent) dan wel sequentieel (kNotConcurrent) aan de handler worden overgedragen [SWS_DM_00634].
Met betrekking tot eigendom en levensduur is GenericDataIdentifier gemodelleerd als een singuliere, niet-kopieerbare en niet-verplaatsbare instantie:
Na instantiëring bevindt het object zich in de inactieve toestand; Diagnostic Management leidt nog geen verzoeken door. Pas door de aanroep van Offer()[SWS_DM_00638] wordt het doorsturen geactiveerd. Om het doorsturen van diagnoseverzoeken weer te deactiveren, roept de applicatie StopOffer()[SWS_DM_00639] aan. De vernietiging van het object geschiedt via de virtuele destructor [SWS_DM_00635].
Wat betreft concurrency is de constructor thread-safe (thread-safe) [SWS_DM_00634]. Daarentegen zijn de administratieve methoden Offer()[SWS_DM_00638] en StopOffer()[SWS_DM_00639] evenals de destructor [SWS_DM_00635] als niet-thread-safe gespecificeerd. De thread-safety van de methoden Read en Write hangt voorwaardelijk af van de gekozen concurrencyType[SWS_DM_00636], [SWS_DM_00637].
Een typische end-to-end flow voor de afhandeling van diagnoseverzoeken is onderverdeeld in de volgende stappen:
Initialisatie: De applicatie instantieert haar afgeleide handler-klasse onder vermelding van de InstanceSpecifier en de concurrency-configuratie [SWS_DM_00634]. Interpretatie: In de praktijk zal dit doorgaans tijdens de initialisatiefase van het applicatieproces plaatsvinden. Vraag Q-32596fba68253958 (open)
Dienstbeschikbaarstelling: De applicatie roept Offer() aan [SWS_DM_00638]. Diagnostic Management activeert het doorsturen van binnenkomende DID-verzoeken.
Verzoekverwerking:
Komt er een leesopdracht binnen, dan roept DM de methode Read(dataIdentifier, metaInfo, cancellationHandler) aan [SWS_DM_00636]. De applicatie controleert de overgedragen 16-bits identifier en levert asynchroon een ara::core::Future<OperationOutput> op.
Arriveert er een schrijftaak, dan roept DM Write(dataIdentifier, requestData, metaInfo, cancellationHandler) aan [SWS_DM_00637]. De payload in requestData blijft geldig totdat de bijbehorende promise is vervuld of de verwerking wordt afgebroken.
Afbreekcontrole: Tijdens langdurige operaties kan de handler via cancellationHandler.IsCanceled() controleren of de conversatie is afgebroken, of via cancellationHandler.SetNotifier een notificatiefunctie registreren [SWS_DM_00636], [SWS_DM_00637].
Dienstafmelding: Voor het beëindigen van de handler roept de applicatie StopOffer() aan [SWS_DM_00639], waardoor DM het doorsturen staakt.
Sequentiediagram: samenspel tussen externe tester, Diagnostic Management en GenericDataIdentifier bij een UDS-leesverzoek. Bronnen: [SWS_DM_00638], [SWS_DM_00636]
Foutscenario's
Fouten kunnen in verschillende fasen van de interactie optreden:
Configuratie- en mappingschendingen: als de InstanceSpecifier in het model niet kan worden herleid of niet naar een PortPrototype verwijst, is er sprake van een InstanceSpecifierMappingIntegrityViolation[SWS_DM_00634]. Ontbreekt de toewijzing aan een DiagnosticDataPortMapping, dan treedt er een PortInterfaceMappingViolation op [SWS_DM_00634]. Een ontbrekende procesmapping genereert een ProcessMappingViolation en een reeds gebruikte InstanceSpecifier leidt tot een InstanceSpecifierAlreadyInUseViolation[SWS_DM_00634].
Meervoudig aanbieden: als Offer() wordt aangeroepen terwijl de service al actief wordt aangeboden, retourneert de methode een ara::core::Result met de foutcode DiagOfferErrc::kAlreadyOffered[SWS_DM_00638].
Functionele diagnosefouten: kan een lees- of schrijfverzoek functioneel niet worden afgehandeld, dan retourneert de applicatie in de Future geen successtatus, maar een gestandaardiseerde UDS-NRC (Negative Response Code) via DiagUdsNrcErrc conform ISO 14229-1 [SWS_DM_00636], [SWS_DM_00637].
Deze handleiding is gebaseerd op de AUTOSAR-specificatie R25-11 en is geautomatiseerd gegenereerd.
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 DiagnosticDataIdentifierGenericInterface 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
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDataIdentifierGenericInterface.
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: 860e6bd15d7fHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik: De synchrone methode Offer van de klasse ara::diag::GenericDataIdentifier ([SWS_DM_00638]) dient voor de registratie van een generieke data-identifier-handler bij Diagnostic Management (DM). Door deze aanroep wordt het DM geautoriseerd om inkomende diagnoseverzoeken (request messages) voor de desbetreffende data-identifier door te sturen naar deze handler ([SWS_DM_00638]). De functie accepteert geen overdrachtsparameters en levert synchroon een ara::core::Result<void> terug ([SWS_DM_00638]), die uitsluitsel geeft over succes of fout.
Foutafhandeling: De methode is gedeclareerd met noexcept en garandeert volledige uitzonderingsveiligheid (exception safe) ([SWS_DM_00638]). Mogelijke fouten worden via de ara::core::Result gemeld. Werd de handler al eerder beschikbaar gesteld, dan retourneert de functie de foutcode DiagOfferErrc::kAlreadyOffered met rollback-semantiek ([SWS_DM_00638]). Deze komt overeen met de algemene foutenumeratie DiagErrc::kAlreadyOffered ([SWS_DM_00514]).
Concurrency en beperkingen: De functie is gespecificeerd als niet-thread-safe (not thread-safe) ([SWS_DM_00638]). Bijgevolg moeten aanroepen op dezelfde instantie worden beschermd tegen gelijktijdige toegang. Aangezien er voor GenericDataIdentifier geen afzonderlijke de-registratiemethode is gespecificeerd, is het dienstaanbod vermoedelijk gekoppeld aan de levensduur van de handler-instantie (interpretatie). Vraag Q-7c64a5bd308464a8 (open)
Samenspel: De procedure volgt het uniforme patroon voor beschikbaarstelling van Diagnostic Management. Analoge interfaces zijn te vinden voor typespecifieke data-identifiers ([SWS_DM_00599]), generieke routines ([SWS_DM_00557]) en generieke UDS-diensten ([SWS_DM_00619]).
Deze gebruiksinstructie is gegenereerd door een AI-systeem.
Called for ReadDataByIdentifier request for this DiagnosticDataIdentifier.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7772a86b7791Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De methode Read van de klasse ara::diag::GenericDataIdentifier wordt aangeroepen zodra een diagnoseverzoek voor ReadDataByIdentifier (UDS 0x22) voor de desbetreffende data-identifier binnenkomt [SWS_DM_00636]. Als parameters accepteert de functie de numerieke identificator dataIdentifier, de context metaInfo en een cancellationHandler. Via de cancellationHandler kan de applicatie middels IsCanceled de afbreekstatus opvragen of via SetNotifier een notificatiefunctie voor afgebroken conversaties registreren [SWS_DM_00636]. Het resultaat wordt asynchroon beschikbaar gesteld via een ara::core::Future<OperationOutput>, die in geval van succes de payload (OperationOutput) retourneert [SWS_DM_00636].
Foutafhandeling
In geval van een fout levert de Future een negatieve UDS-retourwaarde (NRC) conform ISO 14229-1 via DiagUdsNrcErrc[SWS_DM_00636]. Indien de interface nog niet of niet meer via offer() wordt aangeboden, antwoordt Diagnostic Management (DM) zelfstandig met NRC 0x94 (ResourceTemporarilyNotAvailable) [SWS_DM_01257]. Wordt de geconfigureerde limiet voor Response Pending-berichten bereikt, dan breekt de server de verwerking af en antwoordt met NRC 0x10 (generalReject) [SWS_DM_00369].
Gelijktijdigheid en wisselwerking
De methode is gedeclareerd als noexcept en uitzonderingsveilig [SWS_DM_00636]. De thread-safety ervan is voorwaardelijk: of de implementatie thread-safe moet zijn, wordt geregeld via de in de constructor doorgegeven ConcurrencyType[SWS_DM_00636]. Staat readWrite op kConcurrent, dan mag het DM lees- en schrijfacties gelijktijdig initiëren; anders (kNotConcurrent) vindt de aanroep sequentieel plaats [SWS_DM_00939]. In tegenstelling tot specifieke interfaces zoals [SWS_DM_00640] dekt GenericDataIdentifier generieke DID-bereiken flexibel af via het doorgegeven ID [SWS_DM_00636].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie.
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
dataIdentifier
the corresponding DataIdentifier
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.
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: bd73a88bfde2HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik en aanroepcontext
De lidfunctie StopOffer van de klasse ara::diag::GenericDataIdentifier dient ertoe het doorsturen van inkomende verzoekberichten vanuit het Diagnostic Management (DM) naar de desbetreffende instantie te deactiveren [SWS_DM_00639]. De aanroep vindt synchroon plaats via de interface uit het headerbestand #include "ara/diag/generic_data_identifier.h"[SWS_DM_00639]. De functie heeft de signatuur void StopOffer() noexcept;, accepteert geen overdrachtparameters en geeft geen retourwaarde terug [SWS_DM_00639].
Foutafhandeling en gelijktijdigheid
De specificatie definieert StopOffer als uitzonderingsveilig (exception safe) en garandeert via de identifier noexcept het uitblijven van excepties [SWS_DM_00639]. Specifieke foutcodes, foutreacties of meldingen aan DET resp. DEM zijn voor deze operatie niet voorzien. Met betrekking tot gelijktijdigheid is de methode geclassificeerd als niet thread-veilig (not thread-safe) [SWS_DM_00639]. Parallelle aanroepen op dezelfde instantie moeten daarom door de aanroeper worden gesynchroniseerd. Interpretatie: reeds gestarte verzoeken in het Diagnostic Management worden vóór de definitieve stop van de doorgifte vermoedelijk nog regulier verwerkt. Vraag Q-94a464dc832c055c (open)
Samenspel in de diagnosemodule
Het patroon voor het intrekken van de servicebeschikbaarstelling wordt in de diagnosemodule gestandaardiseerd en consistent toegepast. Analoge StopOffer-methoden bestaan onder meer voor:
typespecifieke gegevens-identifiers via DataIdentifierInterface::StopOffer[SWS_DM_00600] evenals gegevenselementen [SWS_DM_00617],
generieke routines via GenericRoutine::StopOffer[SWS_DM_00558] en typespecifieke routine-interfaces [SWS_DM_00595],
Called for WriteDataByIdentifier request for this DiagnosticDataIdentifier.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7b195835c98cHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode Write van de klasse ara::diag::GenericDataIdentifier wordt aangeroepen door Diagnostic Management zodra een UDS-verzoek van de dienst WriteDataByIdentifier (0x2E) wordt ontvangen [SWS_DM_00637]. Voorwaarde voor de aanroep is dat de opgevraagde data-identifier wordt ondersteund en dat de desbetreffende diagnosesessie alsook het beveiligingsniveau de uitvoering toestaan [SWS_DM_00186], [SWS_DM_00415], [SWS_DM_00416].
De aanroep vindt plaats met de volgende parameters [SWS_DM_00637]:
dataIdentifier: De 16-bits identificator van de te schrijven data-identifier.
requestData: Een ara::core::Span met de ruwe gegevens van het verzoek zonder DID-prefix. De buffer blijft geldig totdat de bijbehorende Promise is vervuld of de verwerking wordt afgebroken.
metaInfo: Aanvullende metadata over het diagnoseverzoek.
cancellationHandler: Dient voor het monitoren van een vroegtijdig afbreken van de conversatie via IsCanceled en voor het registreren van een afbreeknotificatie via SetNotifier.
De uitvoering vindt asynchroon plaats en retourneert een ara::core::Future<void>[SWS_DM_00637]. Bij een succesvolle verwerking wordt de Promise vervuld met void voor een positief antwoordbericht. Treedt er een fout op, dan moet de Future worden afgesloten met een passende negatieve UDS-retourwaarde (NRC) conform ISO 14229-1 via DiagUdsNrcErrc[SWS_DM_00637]. De methode is gedeclareerd als noexcept en moet uitzonderingsveilig worden geïmplementeerd [SWS_DM_00637].
Wat betreft concurrency is de thread-safety voorwaardelijk: of Write thread-safe moet worden geïmplementeerd, hangt af van de ConcurrencyType die bij de instantiëring in de constructor is doorgegeven [SWS_DM_00637]. Een parallelle uitvoering van lees- en schrijfacties wordt geregeld via de flag readWrite[SWS_DM_00939].
Deze tekst is opgesteld door een AI. Alle gegevens zijn uitsluitend gebaseerd op de specificaties van Release R25-11.
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
dataIdentifier
the corresponding DataIdentifier
requestData
Content of request message (without DataIdentifier). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
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.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel