Dient als generieke UDS-interface voor de asynchrone verwerking van inkomende diagnoseverzoeken in de diagnosemanager.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d0d38c589b70Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient als generieke UDS-interface voor de asynchrone verwerking van inkomende diagnoseverzoeken in de diagnosemanager.
De klasse ara::diag::GenericUDSService maakt als generieke UDS-servicehandler de ontvangst en verwerking van willekeurige UDS-diagnoseverzoeken via de AUTOSAR-diagnosemanager mogelijk [SWS_DM_00616]. Na de binding aan een PortPrototype wordt de service via Offer() geactiveerd, verwerkt verzoeken asynchroon in de methode HandleMessage() en wordt met StopOffer() weer afgemeld [SWS_DM_00618], [SWS_DM_00619], [SWS_DM_00620]. De instantie is noch kopieerbaar noch verplaatsbaar en signaleert fouten via NRCs uit DiagUdsNrcErrc[SWS_DM_01657], [SWS_DM_00618].
Context
De klasse ara::diag::GenericUDSService biedt een generieke service-interface voor de diagnosecommunicatie volgens UDS (Unified Diagnostic Services). Ze dient als basisklasse voor applicaties die gebruikersgedefinieerde of niet door specifieke interfaces afgedekte UDS-services willen implementeren en verwerken. De interactie vindt in hoofdzaak plaats tussen de diagnosticerende applicatiecomponent, de AUTOSAR-diagnosemanager (DM) en de onderliggende modelleringscontext. De koppeling met de diagnosemanager en het platformmodel gebeurt bij de instantiëring via een ara::core::InstanceSpecifier die verwijst naar een bijbehorend PortPrototype van een DiagnosticGenericUdsInterface[SWS_DM_00616]. Zodra de registratie via de interface wordt geactiveerd, stuurt de diagnosemanager inkomende UDS-verzoeken door naar de geïmplementeerde instantie [SWS_DM_00619].
Een instantie van ara::diag::GenericUDSService is gebonden aan een vast PortPrototype en ontworpen als uniek exemplaar: copy constructor [SWS_DM_01657], move constructor [SWS_DM_01658] en toewijzingsoperatoren [SWS_DM_01655], [SWS_DM_01656] zijn verwijderd (delete). Het aanmaken gebeurt expliciet via de constructor onder opgave van een InstanceSpecifier en de gelijktijdigheidsconfiguratie ConcurrencyType (kConcurrent of kNotConcurrent) [SWS_DM_00616]. De levenscyclus van de servicegereedheid is onderverdeeld in twee hoofdfasen:
Niet aangeboden (Stopped / Initial): Na de constructie of na de aanroep van StopOffer() stuurt het DM geen verzoeken door naar de instantie [SWS_DM_00620].
Aangeboden (Offered): Na succesvolle aanroep van Offer() is de handler actief en verwerkt deze inkomende diagnoseberichten [SWS_DM_00619].
De vernietiging geschiedt via de virtuele destructor ~GenericUDSService()[SWS_DM_00584]. Wat betreft thread-safety is de constructor gespecificeerd als thread-safe, terwijl Offer(), StopOffer() en de destructor niet thread-safe zijn en externe synchronisatie vereisen [SWS_DM_00616], [SWS_DM_00619], [SWS_DM_00620], [SWS_DM_00584].
Het reguliere verloop omvat de instantiëring van de afgeleide serviceklasse, de vrijgave van de handler, de asynchrone opdrachtverwerking en de latere deactivering:
Instantiëring: De applicatie instantieert de gespecialiseerde serviceklasse met het passende ara::core::InstanceSpecifier en de gewenste ConcurrencyType[SWS_DM_00616].
Service aanbieden: De aanroep van Offer() signaleert aan de diagnosemanager de gereedheid voor berichtontvangst [SWS_DM_00619].
Berichtverwerking: Inkomende UDS-verzoeken leiden tot de aanroep van de zuiver virtuele methode HandleMessage() door het DM. Meegegeven worden service-identifier (sid), payload (requestData), metadata (metaInfo) en een cancellationHandler[SWS_DM_00618]. De methode levert een ara::core::Future<OperationOutput> terug, waarmee het resultaat of een fout asynchroon beschikbaar wordt gesteld [SWS_DM_00618]. De handler kan via cancellationHandler.IsCanceled() controleren of de bewerking is afgebroken, of via cancellationHandler.SetNotifier() een melding registreren [SWS_DM_00618].
Service beëindigen: Middels StopOffer() wordt het doorsturen van verzoeken beëindigd voordat de instantie wordt vernietigd [SWS_DM_00620], [SWS_DM_00584].
Foutsituaties kunnen zich in verschillende fasen voordoen en vereisen een gedifferentieerde behandeling:
Instantiëringsschendingen: Als de toewijzing van het InstanceSpecifier in het model mislukt, meldt het framework gedefinieerde violations: InstanceSpecifierMappingIntegrityViolation (specifier kan niet worden opgelost in het model of verwijst niet naar een PortPrototype), PortInterfaceMappingViolation (poort is niet gerefereerd via een DiagnosticServiceGenericMapping), ProcessMappingViolation (geen passend proces gemodelleerd) of InstanceSpecifierAlreadyInUseViolation (specifier wordt al gebruikt in het proces) [SWS_DM_00616].
Dubbele aanbiedingsaanroep: Als Offer() wordt aangeroepen terwijl de service al actief wordt aangeboden, mislukt de aanroep en wordt de foutcode DiagOfferErrc::kAlreadyOffered geretourneerd (rollback-semantiek) [SWS_DM_00619].
Diagnosegerelateerde uitvoeringsfouten: Kan een UDS-bericht in HandleMessage() functioneel niet positief worden beantwoord, dan moet het resultaat in het Future worden voorzien van een passende Negative Response Code (NRC) conform ISO 14229-1 via DiagUdsNrcErrc[SWS_DM_00618]. Bovendien moet de implementatie reageren op afbreeksignalen van het cancellationHandler als de onderliggende diagnoseconversatie voortijdig is beëindigd [SWS_DM_00618].
Deze klassehandleiding is geautomatiseerd gegenereerd op basis van de AUTOSAR-standaard.
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 DiagnosticGenericUdsInterface needs to be referenced by a DiagnosticServiceGenericMapping. 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 DiagnosticGenericUdsInterface.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 38c6453769b1Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode HandleMessage uit ara::diag::GenericUDSService dient voor de applicatiespecifieke verwerking van inkomende UDS-diagnoseverzoeken [SWS_DM_00618].
Gebruik
Diagnostic Management (DM) roept de methode aan voor elk ontvangen diagnose-request-bericht [SWS_DM_00618]. Aan de hand van de parameters worden de service identifier (sid), de payload (requestData als ara::core::Span<const std::uint8_t>), verbindingsinformatie (metaInfo) en een cancellationHandler doorgegeven. De verwerking vindt asynchroon plaats via het retourneren van een ara::core::Future<OperationOutput>[SWS_DM_00618]. De payload in requestData blijft geldig totdat de bijbehorende Promise is vervuld of de bewerking wordt afgebroken. Via cancellationHandler.IsCanceled() kan de applicatie de afbreekstatus controleren of middels cancellationHandler.SetNotifier() een notificatie voor sessie-afbrekingen registreren [SWS_DM_00618].
Foutafhandeling
Kan een verzoek niet succesvol worden verwerkt, dan signaleert de applicatie de fout via de geretourneerde Future door middel van een passende negatieve responscode (NRC conform ISO 14229-1) via DiagUdsNrcErrc[SWS_DM_00618].
Gelijktijdigheid en randvoorwaarden
Levensduur van metaInfo: De geldigheid van het metaInfo-object is strikt beperkt tot de actieve uitvoeringsduur van de methode-aanroep [SWS_DM_01345]. Opslaan of gebruiken na terugkeer van HandleMessage leidt tot ongedefinieerd gedrag.
Re-entrantie en concurrency: Of aanroepen thread-safe moeten plaatsvinden, wordt bepaald door de in de constructor vastgelegde ara::diag::ConcurrencyTypeSWS Diagnostics §7.3.1.2 “Concurrency of ara::diag interfaces”. Bij kConcurrent mag het DM opvolgende verzoeken parallel aanroepen; bij kNotConcurrent wacht het DM totdat het resultaat van het lopende verzoek beschikbaar is gesteld.
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR Adaptive 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
sid
Diagnostic Request Service Identifier.
requestData
Diagnostic request data (starting after SID). 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.
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: 19027d24302fHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De methode Offer van de klasse ara::diag::GenericUDSService schakelt het doorsturen van diagnoseverzoeken in: deze stelt de Diagnostic Manager (DM) in staat om binnenkomende UDS-verzoekberichten door te sturen naar deze handler [SWS_DM_00619]. De synchrone aanroep heeft geen parameters, blokkeert niet en levert als retourwaarde een ara::core::Result<void> op [SWS_DM_00619]. De uitvoering geschiedt typisch (interpretatie:) tijdens de initialisatie- en startfase van de Adaptive Application, voordat diagnoseberichten via het netwerk moeten worden verwerkt. Vraag Q-c1e385a434fe1e4e (open)
Foutafhandeling en gelijktijdigheid
De functie is gedeclareerd met noexcept en garandeert exceptieveiligheid [SWS_DM_00619]. Werd de dienst al eerder aangeboden, dan mislukt de registratie en retourneert deze de foutcode DiagOfferErrc::kAlreadyOffered met rollback-semantiek [SWS_DM_00619]. Wat betreft de draadveiligheid is de interface gespecificeerd als not thread-safe[SWS_DM_00619]; gelijktijdige aanroepen op dezelfde instantie moeten door de aanroepende applicatie worden gesynchroniseerd.
Samenspel
Het aanbieden via Offer komt overeen met het gestandaardiseerde registratiepatroon in het AUTOSAR Adaptive-diagnosesubsysteem, zoals dat vergelijkbaar is gespecificeerd voor routines ([SWS_DM_00557]) of data-identifiers ([SWS_DM_00638]). Hoewel de nomenclatuur is ontleend aan ara::com, betreft het een diagnosespecifieke methode van de Diagnostic Manager AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.
Deze gebruiksinstructie is gegenereerd door een AI op basis van de AUTOSAR-specificatie R25-11.
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: 5dba8a8b4077HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De methode StopOffer van de klasse ara::diag::GenericUDSService deactiveert het doorsturen van inkomende diagnoseverzoeken van Diagnostic Management (DM) naar de service-instantie [SWS_DM_00620]. De functie wordt beschikbaar gesteld via de header ara/diag/generic_uds_service.h, verwacht geen parameters en heeft het retourtype void[SWS_DM_00620].
Foutafhandeling
De methode is gespecificeerd met noexcept en als uitzonderingsveilig (exception safe) [SWS_DM_00620]. Deze werpt geen uitzonderingen op en retourneert geen foutcodes; het stoppen van het doorsturen verloopt deterministisch.
Gelijktijdigheid en beperkingen
Volgens de specificatie is StopOffer geclassificeerd als niet-thread-safe (not thread-safe) [SWS_DM_00620]. Parallelle aanroepen voor dezelfde instantie moeten aan de applicatiezijde worden beveiligd. Interpretatie: de aanroep van StopOffer zal vermoedelijk typisch plaatsvinden vóór de vernietiging van het instantie-object of bij tijdelijke onbeschikbaarheid, om openstaande doorsturingen te voorkomen. Vraag Q-408323dd00c313c0 (open)
Samenspel
Het concept van StopOffer volgt een consistent architectuurpatroon binnen ara::diag, zoals dat ook te vinden is bij generieke routines [SWS_DM_00558], generieke Data Identifiers [SWS_DM_00639], Security Access [SWS_DM_00767] en monitors [SWS_DM_01089]. Hoewel de aanduidingen gebaseerd zijn op ara::com, betreft het een zelfstandige implementatie van Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.
Deze gebruiksinstructie is gegenereerd door een AI en is uitsluitend gebaseerd op de specificaties van AUTOSAR-release R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel