Stelt applicaties in staat UDS-RoutineControl-diensten generiek te verwerken met asynchrone gegevensoverdracht.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ed3ab770d945HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt applicaties in staat UDS-RoutineControl-diensten generiek te verwerken met asynchrone gegevensoverdracht.
De klasse biedt een generieke handler voor UDS-RoutineControl-diensten en stuurt verzoeken voor verschillende routine-identifiers door naar adaptieve applicaties [SWS_DM_00552]. Ontwikkelaars implementeren de vereiste routine-acties via asynchrone methoden zoals Start en activeren het doorsturen van berichten door Offer[SWS_DM_00557]. Aangezien instanties noch kopieerbaar noch verplaatsbaar zijn, moeten de levenscyclus en gelijktijdigheid exact worden beheerst via de constructor en de interfaceconfiguratie. Lopende operaties ondersteunen coöperatieve annuleringen en gestandaardiseerde UDS-foutcodes.
Context
De klasse ara::diag::GenericRoutine biedt de generieke interface voor de verwerking van diagnoseroutines conform ISO 14229-1 (UDS RoutineControl, service 0x31) in het AUTOSAR Adaptive Platform. Deze fungeert als schakel tussen het centrale Diagnostic Management (DM) en de adaptieve applicatie. Een instantie van deze klasse wordt gebonden aan een gemodelleerd poortprototype van het type DiagnosticRoutineGenericInterface, die via een DiagnosticServiceGenericMapping in het model gerefereerd moet zijn [SWS_DM_00552]. In tegenstelling tot typespecifieke routine-interfaces draagt GenericRoutine de ruwe gegevens van het diagnoseverzoek als ara::core::Span<const std::uint8_t> samen met de concrete routine-identifier (routineId) over aan de applicatie [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. Hierdoor kan één enkele handler meerdere routines flexibel bedienen.
Levenscyclus
Instanties van GenericRoutine zijn gebonden aan hun specifieke poort en mogen noch gekopieerd noch verplaatst worden; kopieer- en verplaatsingsconstructor alsmede toewijzingsoperatoren zijn expliciet verwijderd [SWS_DM_01637], [SWS_DM_01638], [SWS_DM_01635], [SWS_DM_01636]. De initialisatie vindt plaats via de constructor onder opgave van ara::core::InstanceSpecifier en het gelijktijdigheidsgedrag (ConcurrencyType: kConcurrent of kNotConcurrent) [SWS_DM_00552]. Deze parameter bepaalt of de virtuele uitvoeringsmethoden thread-safe geïmplementeerd moeten zijn.
Na de creatie stuurt de DM aanvankelijk geen berichten door naar de handler. Pas door het aanroepen van Offer() wordt het doorsturen geactiveerd [SWS_DM_00557]. Via StopOffer() kan het doorsturen weer worden gedeactiveerd [SWS_DM_00558], voordat de instantie door de virtuele destructor ~GenericRoutine() wordt vrijgegeven [SWS_DM_00553]. Terwijl de constructor thread-safe is, zijn Offer(), StopOffer() en de destructor niet thread-safe en vereisen zij externe synchronisatie [SWS_DM_00552], [SWS_DM_00557], [SWS_DM_00558], [SWS_DM_00553].
Voor het aanbieden van een generieke routine leidt een applicatie af van GenericRoutine en overschrijft de benodigde virtuele methoden. De methode Start (UDS-subfunctie 0x01) is puur virtueel (pure virtual) en moet dwingend worden geïmplementeerd [SWS_DM_00554]. De methoden Stop (subfunctie 0x02) [SWS_DM_00555] en RequestResults (subfunctie 0x03) [SWS_DM_00556] zijn virtuele methoden; interpretatie: aangezien zij niet puur virtueel zijn, hoeven zij vermoedelijk alleen dan te worden overschreven wanneer de betreffende routine het stoppen of het afzonderlijk opvragen van resultaten functioneel ondersteunt. Vraag (open)
Het reguliere verloop omvat de volgende fasen:
Instantiëring: Creëren van de afgeleide handler met poortreferentie en concurrency-modus [SWS_DM_00552].
Activering: Aanroepen van Offer() voor vrijgave voor de DM [SWS_DM_00557].
Uitvoering: Bij binnenkomende UDS-verzoeken roept de DM Start, Stop of RequestResults aan. De applicatie ontvangt routineId, requestData, metaInfo alsmede een CancellationHandler en levert een ara::core::Future<OperationOutput> op [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. De geldigheid van requestData is gegarandeerd totdat de bijbehorende promise is vervuld of de operatie wordt afgebroken [SWS_DM_00554].
Annuleringsafhandeling: De applicatie kan via cancellationHandler.IsCanceled() de annuleringsstatus controleren of via cancellationHandler.SetNotifier() een callback registreren [SWS_DM_00554]. Interpretatie: In geval van een annulering zal de applicatie lopende achtergrondactiviteiten vermoedelijk voortijdig beëindigen en de promise tijdig vervullen. Vraag (open)
Deactivering: Beëindigen van het doorsturen via StopOffer()[SWS_DM_00558] vóór de vernietiging van het object.
Fouten kunnen zowel bij de configuratie als tijdens de runtime en uitvoering optreden:
Model- en toewijzingsschendingen: als het oplossen van de InstanceSpecifier in het model mislukt, deze niet als PortPrototype wordt geïdentificeerd of er geen passende DiagnosticServiceGenericMapping bestaat, meldt het framework schendingen zoals InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation of InstanceSpecifierAlreadyInUseViolation[SWS_DM_00552].
Aanbiedingsfouten: als Offer() wordt aangeroepen terwijl de service al wordt aangeboden, mislukt de aanroep en retourneert deze de foutcode DiagOfferErrc::kAlreadyOffered[SWS_DM_00557].
Diagnostische foutcodes (NRC): kan een routinebewerking niet succesvol worden voltooid of bevat het verzoek ongeldige parameters, dan vervult de applicatie de geretourneerde future niet met OperationOutput, maar met een passende UDS Negative Response Code (NRC) uit DiagUdsNrcErrc conform ISO 14229-1 [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556].
Deze klassenhandleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform 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 DiagnosticRoutineGenericInterface 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 DiagnosticRoutineGenericInterface.
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: 36b2772d0811HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De functie Offer van de klasse ara::diag::GenericRoutine stelt Diagnostic Management (DM) in staat om binnenkomende diagnoseverzoekberichten voor een routine door te sturen naar de geregistreerde handler [SWS_DM_00557]. De aanroep geschiedt synchroon, accepteert geen parameters en levert een ara::core::Result<void> op [SWS_DM_00557]. Aangezien de methode met de specificatie noexcept is gedeclareerd, geldt deze als uitzonderingsveilig (exception safe) [SWS_DM_00557].
Foutafhandeling
Mislukt het aanbieden, dan levert de methode een negatief resultaat op. Werd de routine voor de desbetreffende instantie al eerder aangeboden, dan retourneert de methode de specifieke foutcode DiagOfferErrc::kAlreadyOffered[SWS_DM_00557]. Voor dit foutgeval is een rollback-semantiek gedefinieerd, zodat de toestand ongewijzigd blijft [SWS_DM_00557]. De foutidentificator kAlreadyOffered is bovendien verankerd in de interne foutdomeinen voor diagnose-aanroepen [SWS_DM_00514].
Gelijktijdigheid en beperkingen
De interface is uitdrukkelijk als niet-draadveilig (not thread-safe) gespecificeerd [SWS_DM_00557]. Benaderen meerdere threads van een applicatie dezelfde handler, dan moet de aanroep worden gesynchroniseerd. Interpretatie: de aanroep vindt vermoedelijk typisch plaats tijdens de initialisatie, aangezien vóór de uitvoering van Offer geen verzoeken kunnen worden ontvangen. Vraag Q-0c42f415bcb0de20 (open)
Samenspel
Het aanbieden van functionaliteiten via Offer is een centraal patroon in het AUTOSAR Adaptive-diagnosecluster; het wordt analoog ook gebruikt voor typespecifieke routine-interfaces [SWS_DM_00594], generieke UDS-diensten [SWS_DM_00619] en data-identifiers [SWS_DM_00638]. Ondanks de naamsgelijkheid met ara::com vormt dit een specifieke implementatie van Diagnostic Management SWS Diagnostics §7.3.4.1.2 “Monitors”.
Deze gebruiksinstructie is samengesteld door een AI en baseert uitsluitend op de AUTOSAR-specificatie R25-11.
Called for RoutineControl with SubFunction RequestResults (0x03) request for this Diagnostic RoutineIdentifier.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: f4080ca4c8cdHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode RequestResults van de klasse ara::diag::GenericRoutine wordt aangeroepen door de Diagnostic Server-instantie om UDS RoutineControl-verzoeken van dienst 0x31 met de subfunctie requestRoutineResults (0x03) voor de geparametriseerde diagnose-routine-identificator generiek te verwerken ([SWS_DM_00575], [SWS_DM_00556]).
Bij de aanroep worden de routine-identificator routineId, de verzoekspecifieke metagegevens metaInfo en de ingangsgegevens requestData doorgegeven ([SWS_DM_00556]). De geldigheid van de span requestData is strikt daartoe beperkt totdat de corresponderende Promise is vervuld of de uitvoering wordt geannuleerd ([SWS_DM_00556]). Een doorgegeven cancellationHandler maakt het opvragen van de annuleringsstatus via IsCanceled en de registratie van een meldingsfunctie via SetNotifier mogelijk ([SWS_DM_00556]).
Het resultaat wordt asynchroon als ara::core::Future<OperationOutput> geretourneerd ([SWS_DM_00556]). Interpretatie: het verstrekken van de uitvoergegevens gebeurt typisch asynchroon via een applicatiezijdige ara::core::Promise. Vraag Q-f50c8509d7515e3f (open) In het geval van succes stelt de future een OperationOutput beschikbaar, terwijl in het geval van een fout een passende UDS-NRC conform ISO 14229-1 via DiagUdsNrcErrc wordt verzonden ([SWS_DM_00556]). De functie is gedeclareerd als noexcept en geldt als exception-safe ([SWS_DM_00556]).
Wat betreft gelijktijdigheid is de thread-safety voorwaardelijk (conditional): of de methode thread-safe moet worden geïmplementeerd, wordt dwingend gestuurd via de aan de constructor doorgegeven ConcurrencyType ([SWS_DM_00556]).
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
routineId
the corresponding RoutineIdentifier
requestData
Content of request message (without RoutineIdentifier), 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.
Called for RoutineControl with SubFunction Start (0x01) request for this DiagnosticRoutine Identifier.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9e819a027940Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode Start van de klasse ara::diag::GenericRoutine wordt aangeroepen zodra een diagnoseverzoek voor RoutineControl met de subfunctie Start (0x01) voor de gespecificeerde routineId binnenkomt [SWS_DM_00554]. In tegenstelling tot de getypeerde routine-interface conform [SWS_DM_00591] accepteert deze generieke interface de ruwe gegevens van het verzoekbericht als een byte-span.
Voor de implementatie gelden de volgende vereisten en interface-eigenschappen:
Aanroepcontext en parameters: Naast de routineId en de metadata (metaInfo) wordt de parameter requestData meegegeven. De levensduur van de verzoekgegevens blijft geldig totdat de promise is vervuld of de verwerking door de cancellationHandler wordt afgebroken [SWS_DM_00554].
Afbreekafhandeling: De routine kan via cancellationHandler.IsCanceled() de actuele afbreekstatus opvragen of via cancellationHandler.SetNotifier() een notifier-functie registreren die wordt aangeroepen bij het afbreken van de conversatie [SWS_DM_00554].
Asynchrone semantiek: De verwerking verloopt niet-blokkerend via ara::core::Future<OperationOutput>. Bij succesvolle uitvoering stelt OperationOutput de payload voor het positieve antwoord beschikbaar [SWS_DM_00554].
Foutafhandeling: Mislukt de uitvoering, dan moet de future worden afgesloten met een passende Negative Response Code (NRC) volgens ISO 14229-1 met gebruikmaking van DiagUdsNrcErrc[SWS_DM_00554].
Gelijktijdigheid: De functie is gedeclareerd als uitzonderingsveilig (noexcept). Of de beschikbaarstelling thread-safe moet plaatsvinden, wordt bepaald door de aan de constructor meegegeven ConcurrencyType[SWS_DM_00554].
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
routineId
the corresponding RoutineIdentifier
requestData
Content of request message (without RoutineIdentifier). 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.
Called for RoutineControl with SubFunction Stop (0x02) request for this DiagnosticRoutine Identifier.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d8c6cb55284bHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode Stop wordt aangeroepen bij een UDS-RoutineControl-verzoek met de subfunctie Stop (0x02) voor de desbetreffende generieke diagnoseroutine [SWS_DM_00555]. Ten opzichte van getypeerde routine-interfaces [SWS_DM_00592] accepteert deze de routine-identifier routineId en de verzoekgegevens als raw-data-span requestData[SWS_DM_00555].
Bij het gebruik moeten de volgende parameter- en verloopregels in acht worden genomen [SWS_DM_00555]:
Levensduur van de ingangsgegevens-span: Het geheugengebied van requestData blijft geldig totdat de bijbehorende Promise is vervuld of de uitvoering via de cancellationHandler is geannuleerd [SWS_DM_00555].
Annuleringsafhandeling: De applicatie kan via cancellationHandler.IsCanceled() controleren of de actuele diagnoseconversatie is geannuleerd, of via cancellationHandler.SetNotifier een notificatiefunctie registreren die bij annulering wordt getriggerd [SWS_DM_00555].
Asynchroniciteit en return: De functie werkt asynchroon en retourneert een ara::core::Future<OperationOutput>, die bij succes de uitvoergegevens voor het positieve UDS-antwoord bevat [SWS_DM_00555].
De foutafhandeling verloopt via negatieve diagnostische retourwaarden: als het stoppen van de routine mislukt, moet de future met een passende UDS-NRC-foutcode conform ISO 14229-1 via DiagUdsNrcErrc worden voltooid [SWS_DM_00555].
Met betrekking tot concurrency is de methode gespecificeerd als noexcept en exception-safe. Of de concrete implementatie thread-safe moet zijn ontworpen, hangt af van de ConcurrencyType die bij de instantiëring in de constructor is meegegeven [SWS_DM_00555].
Deze gebruiksinstructie is uitsluitend gebaseerd op de specificaties van de Adaptive AUTOSAR-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
routineId
the corresponding RoutineIdentifier
requestData
Content of request message (without RoutineIdentifier). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfo
MetaData 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: 73588f5f0b57HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De methode ara::diag::GenericRoutine::StopOffer deactiveert het doorsturen van binnenkomende diagnoseverzoeken van Diagnostic Management (DM) naar de overeenkomstige routine-instantie [SWS_DM_00558]. De functie heeft de signatuur void StopOffer() noexcept;, accepteert geen parameters en levert geen retourwaarde op [SWS_DM_00558]. De aanroep wordt synchroon verwerkt en signaleert aan het DM dat de routine vanaf dat moment geen verzoeken meer aanneemt.
Foutafhandeling
De operatie is als exception safe gespecificeerd en gedeclareerd met noexcept[SWS_DM_00558]. Foutcodes of C++-excepties treden bij de uitvoering niet op. Specifieke meldingen aan ontwikkelings- of foutgeheugeninstanties (DET/DEM) zijn voor deze interface in de diagnosemodule niet voorzien.
Gelijktijdigheid en beperkingen
Wat het threading-gedrag betreft, is de methode aangemerkt als not thread-safe[SWS_DM_00558]. Gelijktijdige aanroepen op dezelfde instantie van ara::diag::GenericRoutine moeten daarom aan de applicatiezijde worden gesynchroniseerd. Interpretatie: een aanroep vindt vermoedelijk vooral plaats wanneer een routine tijdelijk wordt geïnactiveerd of de applicatie gecontroleerd wordt beëindigd, nadat eerder een aanbiedingsaanroep heeft plaatsgevonden. Vraag Q-e110ce01110699e3 (open)
Samenspel
De naamgeving volgt conceptueel de service-offering van ara::com, maar vormt een zelfstandige implementatie binnen ara::diag en mag niet worden verward met communicatie-aanbiedingen (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”). Hetzelfde aanbiedingspatroon voor het deactiveren van het doorsturen van verzoeken wordt modulebreed ook gebruikt door verdere diagnoseklassen zoals ara::diag::GenericUDSService[SWS_DM_00620], ara::diag::GenericDataIdentifier[SWS_DM_00639], routine-interfaces [SWS_DM_00595] en ara::diag::Monitor[SWS_DM_01089].
Deze tekst is gegenereerd door een AI en is uitsluitend gebaseerd op de specificatiedocumenten van AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel