DEENESPTFRRUARHIKOZHNL

classe ara::diag::GenericRoutine

[SWS_DM_00605] Upstream: RS_Diag_04169, RS_Diag_04224

class GenericRoutine {...};

Generic Routine interface.

Header-Datei#include "ara/diag/generic_routine.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

Guide utilisateurGÉNÉRÉ PAR IA

Permet aux applications le traitement générique des services RoutineControl UDS avec transfert de données asynchrone.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ed3ab770d945 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Permet aux applications le traitement générique des services RoutineControl UDS avec transfert de données asynchrone.

La classe fournit un gestionnaire générique pour les services RoutineControl UDS et transmet les requêtes pour différents identifiants de routine aux applications adaptatives [SWS_DM_00552]. Les développeurs implémentent les actions de routine requises via des méthodes asynchrones telles que Start et activent la transmission des messages par Offer [SWS_DM_00557]. Comme les instances ne sont ni copiables ni déplaçables, le cycle de vie et la concurrence doivent être gérés précisément via le constructeur et la configuration de l'interface. Les opérations en cours prennent en charge les annulations coopératives ainsi que les codes d'erreur UDS standardisés.

Contexte

La classe ara::diag::GenericRoutine fournit l'interface générique pour le traitement des routines de diagnostic conformément à l'ISO 14229-1 (UDS RoutineControl, service 0x31) dans l'AUTOSAR Adaptive Platform. Elle fait office de passerelle entre le Diagnostic Management (DM) central et l'application adaptative. Une instance de cette classe est liée à un prototype de port modélisé de type DiagnosticRoutineGenericInterface, qui doit être référencé via un DiagnosticServiceGenericMapping dans le modèle [SWS_DM_00552]. Contrairement aux interfaces de routines spécifiques à un type, GenericRoutine transmet les données brutes de la requête de diagnostic sous la forme de ara::core::Span<const std::uint8_t> avec l'identifiant de routine concret (routineId) à l'application [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. Ainsi, un seul gestionnaire peut desservir plusieurs routines de manière flexible.

Cycle de vie

Les instances de GenericRoutine sont liées à leur port spécifique et ne doivent être ni copiées ni déplacées ; le constructeur de copie et de déplacement ainsi que les opérateurs d'affectation sont explicitement supprimés [SWS_DM_01637], [SWS_DM_01638], [SWS_DM_01635], [SWS_DM_01636]. L'initialisation s'effectue via le constructeur en indiquant le ara::core::InstanceSpecifier ainsi que le comportement de concurrence (ConcurrencyType : kConcurrent ou kNotConcurrent) [SWS_DM_00552]. Ce paramètre détermine si les méthodes d'exécution virtuelles doivent être implémentées de manière thread-safe.

Après la création, le DM ne transmet initialement aucun message au gestionnaire. Ce n'est que par l'appel de Offer() que la transmission est activée [SWS_DM_00557]. StopOffer() permet de désactiver à nouveau la transmission [SWS_DM_00558] avant que l'instance ne soit libérée par le destructeur virtuel ~GenericRoutine() [SWS_DM_00553]. Alors que le constructeur est thread-safe, Offer(), StopOffer() et le destructeur ne sont pas thread-safe et nécessitent une synchronisation externe [SWS_DM_00552], [SWS_DM_00557], [SWS_DM_00558], [SWS_DM_00553].

generic_routine_lifecycle start instantiated Instancié (Non offert) start->instantiated GenericRoutine(...) offered Angeboten (Weiterleitung aktiv) instantiated->offered Offer() end instantiated->end ~GenericRoutine() offered->instantiated StopOffer() offered->offered Start() / Stop() / RequestResults() offered->end ~GenericRoutine()

Diagramme d'états : cycle de vie et transitions d'état d'une instance GenericRoutine. Sources : [SWS_DM_00552], [SWS_DM_00557], [SWS_DM_00558], [SWS_DM_00553]

Parcours d'utilisation

Pour fournir une routine générique, une application dérive de GenericRoutine et redéfinit les méthodes virtuelles requises. La méthode Start (sous-fonction UDS 0x01) est purement virtuelle (pure virtual) et doit impérativement être implémentée [SWS_DM_00554]. Les méthodes Stop (sous-fonction 0x02) [SWS_DM_00555] et RequestResults (sous-fonction 0x03) [SWS_DM_00556] sont des méthodes virtuelles ; interprétation : comme elles ne sont pas purement virtuelles, elles ne devraient avoir besoin d'être redéfinies que si la routine respective prend fonctionnellement en charge l'arrêt ou la consultation séparée des résultats. Question (ouverte)

Le déroulement standard comprend les phases suivantes :

  • Instanciation : création du gestionnaire dérivé avec la référence de port et le mode de concurrence [SWS_DM_00552].
  • Activation : appel de Offer() pour autoriser la transmission pour le DM [SWS_DM_00557].
  • Exécution : lors de la réception de requêtes UDS, le DM appelle Start, Stop ou RequestResults. L'application reçoit routineId, requestData, metaInfo ainsi qu'un CancellationHandler et renvoie un ara::core::Future<OperationOutput> [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. La validité de requestData est garantie jusqu'à ce que la promesse correspondante soit tenue ou que l'opération soit annulée [SWS_DM_00554].
  • Traitement de l'annulation : l'application peut vérifier l'état d'annulation via cancellationHandler.IsCanceled() ou enregistrer un callback via cancellationHandler.SetNotifier() [SWS_DM_00554]. Interprétation : en cas d'annulation, l'application devrait mettre fin prématurément aux activités en arrière-plan en cours et résoudre la promesse dans les meilleurs délais. Question (ouverte)
  • Désactivation : arrêt de la transmission via StopOffer() [SWS_DM_00558] avant la destruction de l'objet.
Déroulement typique du traitement de routine génériqueDiagnostic Manager (DM)GenericRoutine-HandlerAnwendungs-WorkerOffer()Result<void> (Erfolg)Use Case: Diagnoseanfrage RoutineControl (Start 0x01)Start(routineId, requestData, metaInfo, cancellationHandler)Déclencher l’exécution asynchroneFuture<OperationOutput>altErfolgreicher AbschlussRemplir la promesse (OperationOutput)FehlerfallRemplir la promesse avec un NRC UDS (DiagUdsNrcErrc)Use Case: Dienst deregistrierenStopOffer()

Diagramme de séquence : déroulement typique de l'enregistrement, de l'exécution de routine et de la désinscription. Sources : [SWS_DM_00557], [SWS_DM_00554], [SWS_DM_00558]

Scénarios d'erreur

Des erreurs peuvent survenir aussi bien lors de la configuration que pendant l'exécution et le fonctionnement :

  • Violations de modèle et d'affectation : si la résolution de InstanceSpecifier échoue dans le modèle, qu'il n'est pas identifié comme PortPrototype ou qu'aucun DiagnosticServiceGenericMapping correspondant n'existe, le framework signale des violations telles que InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation ou InstanceSpecifierAlreadyInUseViolation [SWS_DM_00552].
  • Erreur de mise à disposition : si Offer() est appelé alors que le service est déjà proposé, l'appel échoue et renvoie le code d'erreur DiagOfferErrc::kAlreadyOffered [SWS_DM_00557].
  • Codes d'erreur de diagnostic (NRC) : si une opération de routine ne peut pas se terminer avec succès ou si la requête contient des paramètres non valides, l'application ne remplit pas le future renvoyé avec OperationOutput, mais avec un Negative Response Code (NRC) UDS approprié issu de DiagUdsNrcErrc conformément à l'ISO 14229-1 [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556].

Ce guide de classe se base sur la spécification AUTOSAR Adaptive Platform R25-11 et a été généré de manière automatisée.

Carte des membres

Constructeurs et destructeur

2

Opérateurs

1

Types imbriqués

1

Diagramme de classes

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__GenericRoutine818 GenericRoutine + GenericRoutine() + operator=() + ~GenericRoutine() + Offer() + RequestResults() + Start() + Stop() + StopOffer()

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

GenericRoutine fonction 3

Class for an GenericRoutine.

Surcharges GenericRoutine 3
explicit GenericRoutine (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept; SWS_DM_00552
GenericRoutine (GenericRoutine &)=delete; SWS_DM_01637
GenericRoutine (GenericRoutine &&) noexcept=delete; SWS_DM_01638

Destructor of class GenericRoutine .

virtual ~GenericRoutine () noexcept;

Méthodes

Offer fonction

This Offer will enable the DM to forward request messages to this handler.

ara::core::Result< void > Offer () noexcept;

Called for RoutineControl with SubFunction RequestResults (0x03) request for this Diagnostic RoutineIdentifier.

virtual ara::core::Future< OperationOutput > RequestResults (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;
Start fonction

Called for RoutineControl with SubFunction Start (0x01) request for this DiagnosticRoutine Identifier.

virtual ara::core::Future< OperationOutput > Start (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
Stop fonction

Called for RoutineControl with SubFunction Stop (0x02) request for this DiagnosticRoutine Identifier.

virtual ara::core::Future< OperationOutput > Stop (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;
StopOffer fonction

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;

Opérateurs

operator= fonction 2

GenericRoutine shall be a single not assignable instance.

Surcharges = 2

Types imbriqués

Documentation des méthodes

fonction GenericRoutine [SWS_DM_00552] Upstream: RS_AP_00137, RS_Diag_04169, RS_Diag_04224, RS_AP_00170, RS_ AP_00171, RS_AP_00172, RS_AP_00173

explicit GenericRoutine (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Class for an GenericRoutine.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitthread-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 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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticRoutineGenericInterface.
concurrencyTypeSpecifies 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.

Record
AUTOSAR/AP/record/SWS_DM_00552
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00552@rel:R25-11#96155805
Content hash
96155805
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00552
Status: valid/unmigrated Version: rel:R25-11#c9b9a91d Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00552@rel:R25-11#c9b9a91d
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#3b80ef8b2026-09-30
  • R19-11rel:R19-11#51e933df2026-10-14
  • R20-11rel:R20-11#0d85dbb92026-10-14
  • R21-11rel:R21-11#92d6b5382026-10-14
  • R22-11rel:R22-11#8bf360da2026-10-14
  • R23-11rel:R23-11#a1b6139f2026-10-14
  • R24-11rel:R24-11#96d2033b2026-10-14
  • R25-11rel:R25-11#c9b9a91d2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction GenericRoutine [SWS_DM_01637] Upstream: RS_AP_00147

GenericRoutine (GenericRoutine &)=delete;

GenericRoutine shall be a single not copy-able instance.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01637
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01637@rel:R25-11#9a88ce93
Content hash
9a88ce93
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01637
Status: valid/unmigrated Version: rel:R25-11#9a0cb8e2 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01637@rel:R25-11#9a0cb8e2
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#14cfa5d22026-09-30
  • R23-11rel:R23-11#51890adb2026-10-14
  • R24-11rel:R24-11#3254577b2026-10-14
  • R25-11rel:R25-11#9a0cb8e22026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction GenericRoutine [SWS_DM_01638] Upstream: RS_AP_00147

GenericRoutine (GenericRoutine &&) noexcept=delete;

Move constructor of GenericRoutine.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01638
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01638@rel:R25-11#7ebc4270
Content hash
7ebc4270
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01638
Status: valid/unmigrated Version: rel:R25-11#51079bf1 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01638@rel:R25-11#51079bf1
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#773a87742026-09-30
  • R23-11rel:R23-11#39b72a912026-10-14
  • R24-11rel:R24-11#51079bf12026-10-14
  • R25-11rel:R25-11#51079bf12026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction Offer [SWS_DM_00557] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04169, RS_Diag_04224

ara::core::Result< void > Offer () noexcept;

This Offer will enable the DM to forward request messages to this handler.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 36b2772d0811 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction Offer de la classe ara::diag::GenericRoutine permet à Diagnostic Management (DM) de transférer les messages de requête de diagnostic entrants pour une routine vers le gestionnaire enregistré [SWS_DM_00557]. L'appel s'effectue de manière synchrone, ne prend aucun paramètre et renvoie un ara::core::Result<void> [SWS_DM_00557]. La méthode étant déclarée avec la spécification noexcept, elle est considérée comme sûre vis-à-vis des exceptions (exception safe) [SWS_DM_00557].

Gestion des erreurs

Si la mise à disposition échoue, la méthode renvoie un résultat négatif. Si la routine a déjà été proposée auparavant pour l'instance concernée, la méthode renvoie le code d'erreur spécifique DiagOfferErrc::kAlreadyOffered [SWS_DM_00557]. Une sémantique de rollback est définie pour ce cas d'erreur, de sorte que l'état reste inchangé [SWS_DM_00557]. L'identifiant d'erreur kAlreadyOffered est en outre ancré dans les domaines d'erreur internes pour les appels de diagnostic [SWS_DM_00514].

Concurrence et restrictions

L'interface est expressément spécifiée comme non sûre pour les threads (not thread-safe) [SWS_DM_00557]. Si plusieurs threads d'une application accèdent au même gestionnaire, l'appel doit être synchronisé. Interprétation : l'appel devrait typiquement avoir lieu pendant l'initialisation, car aucune requête ne peut être reçue avant l'exécution de Offer. Question Q-0c42f415bcb0de20 (ouverte)

Interaction

La proposition de fonctionnalités via Offer est un modèle central dans le cluster de diagnostic AUTOSAR Adaptive ; elle est utilisée de manière analogue pour les interfaces de routine spécifiques à un type [SWS_DM_00594], les services UDS génériques [SWS_DM_00619] ainsi que les identifiants de données (Data Identifiers) [SWS_DM_00638]. Malgré l'homonymie avec ara::com, il s'agit d'une implémentation spécifique de Diagnostic Management SWS Diagnostics §7.3.4.1.2 « Monitors ».

Cette note d'utilisation a été préparée par une IA et s'appuie exclusivement sur la spécification AUTOSAR R25-11.

Guide de l'implémenteur à venir (complexité I2)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error.

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00557
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00557@rel:R25-11#9162123f
Content hash
9162123f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00557
Status: valid/unmigrated Version: rel:R25-11#842b3bff Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00557@rel:R25-11#842b3bff
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#e128836f2026-09-30
  • R19-11rel:R19-11#2759f9062026-10-14
  • R20-11rel:R20-11#d89302952026-10-14
  • R21-11rel:R21-11#0eadb9e12026-10-14
  • R22-11rel:R22-11#eee8d1382026-10-14
  • R23-11rel:R23-11#292d5a312026-10-14
  • R24-11rel:R24-11#f26055882026-10-14
  • R25-11rel:R25-11#842b3bff2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction RequestResults [SWS_DM_00556] Upstream: RS_AP_00119, RS_Diag_04169, RS_Diag_04170, RS_Diag_04224

virtual ara::core::Future< OperationOutput > RequestResults (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;

Called for RoutineControl with SubFunction RequestResults (0x03) request for this Diagnostic RoutineIdentifier.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f4080ca4c8cd Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode RequestResults de la classe ara::diag::GenericRoutine est appelée par l'instance du serveur de diagnostic afin de traiter de manière générique les requêtes UDS RoutineControl du service 0x31 avec la sous-fonction requestRoutineResults (0x03) pour l'identificateur de routine de diagnostic paramétré ([SWS_DM_00575], [SWS_DM_00556]).

Lors de l'appel, l'identificateur de routine routineId, les métadonnées spécifiques à la requête metaInfo ainsi que les données d'entrée requestData sont transmis ([SWS_DM_00556]). La validité du span requestData est strictement limitée jusqu'à ce que le Promise correspondant soit satisfait ou que l'exécution soit interrompue ([SWS_DM_00556]). Un cancellationHandler transmis permet d'interroger l'état d'annulation via IsCanceled ainsi que d'enregistrer une fonction de notification via SetNotifier ([SWS_DM_00556]).

Le résultat est renvoyé de manière asynchrone sous forme de ara::core::Future<OperationOutput> ([SWS_DM_00556]). Interprétation : la mise à disposition des données de sortie devrait typiquement s'effectuer de manière asynchrone via un ara::core::Promise côté application. Question Q-f50c8509d7515e3f (ouverte) En cas de succès, le future fournit un OperationOutput, tandis qu'en cas d'erreur, un NRC UDS approprié conformément à l'ISO 14229-1 est transmis via DiagUdsNrcErrc ([SWS_DM_00556]). La fonction est déclarée comme noexcept et considérée comme sûre face aux exceptions ([SWS_DM_00556]).

Concernant la concurrence, la sécurité des threads est conditionnelle (conditional) : le fait que la méthode doive être implémentée de manière sûre du point de vue des threads est contrôlé de façon contraignante par le ConcurrencyType transmis au constructeur ([SWS_DM_00556]).

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier), Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis 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.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00556
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00556@rel:R25-11#9b23a97a
Content hash
9b23a97a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00556
Status: valid/unmigrated Version: rel:R25-11#53fd1ae4 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00556@rel:R25-11#53fd1ae4
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#de1ddb392026-09-30
  • R19-11rel:R19-11#20a566642026-10-14
  • R20-11rel:R20-11#d68da6d72026-10-14
  • R21-11rel:R21-11#b76c6ec72026-10-14
  • R22-11rel:R22-11#5b49da632026-10-14
  • R23-11rel:R23-11#be4d5ce62026-10-14
  • R24-11rel:R24-11#307b0f5f2026-10-14
  • R25-11rel:R25-11#53fd1ae42026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction Start [SWS_DM_00554] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04169, RS_Diag_04170, RS_ Diag_04224

virtual ara::core::Future< OperationOutput > Start (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RoutineControl with SubFunction Start (0x01) request for this DiagnosticRoutine Identifier.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9e819a027940 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Start de la classe ara::diag::GenericRoutine est appelée dès qu'une requête de diagnostic pour RoutineControl avec la sous-fonction Start (0x01) arrive pour l'routineId spécifiée [SWS_DM_00554]. Contrairement à l'interface de routine typée selon [SWS_DM_00591], cette interface générique reçoit les données brutes du message de requête sous la forme d'un span d'octets.

Les exigences et propriétés d'interface suivantes s'appliquent à l'implémentation :

  • Contexte d'appel et paramètres : Outre l'routineId et les métadonnées (metaInfo), le paramètre requestData est transmis. La durée de vie des données de requête reste valide jusqu'à ce que la promise soit tenue ou que le traitement soit interrompu par le cancellationHandler [SWS_DM_00554].
  • Gestion de l'annulation : La routine peut interroger l'état d'annulation actuel au moyen de cancellationHandler.IsCanceled() ou enregistrer via cancellationHandler.SetNotifier() une fonction de notification appelée lors de l'interruption de la conversation [SWS_DM_00554].
  • Sémantique asynchrone : Le traitement s'effectue de manière non bloquante via ara::core::Future<OperationOutput>. En cas d'exécution réussie, OperationOutput fournit les données utiles pour la réponse positive [SWS_DM_00554].
  • Gestion des erreurs : Si l'exécution échoue, le future doit être complété avec un Negative Response Code (NRC) approprié selon l'ISO 14229-1 en utilisant DiagUdsNrcErrc [SWS_DM_00554].
  • Concurrence : La fonction est déclarée sûre face aux exceptions (noexcept). La nécessité que la mise à disposition soit thread-safe est déterminée par le ConcurrencyType transmis au constructeur [SWS_DM_00554].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I2)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis 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.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00554
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00554@rel:R25-11#9e5c1dd0
Content hash
9e5c1dd0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00554
Status: valid/unmigrated Version: rel:R25-11#632d4829 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00554@rel:R25-11#632d4829
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#a9ad92122026-09-30
  • R19-11rel:R19-11#f6d47d602026-10-14
  • R20-11rel:R20-11#ba587eba2026-10-14
  • R21-11rel:R21-11#5f3710452026-10-14
  • R22-11rel:R22-11#927f1c032026-10-14
  • R23-11rel:R23-11#362a0cc42026-10-14
  • R24-11rel:R24-11#a07e64292026-10-14
  • R25-11rel:R25-11#632d48292026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction Stop [SWS_DM_00555] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04169, RS_Diag_04170, RS_ Diag_04224

virtual ara::core::Future< OperationOutput > Stop (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;

Called for RoutineControl with SubFunction Stop (0x02) request for this DiagnosticRoutine Identifier.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d8c6cb55284b Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Stop est appelée lors d'une requête RoutineControl UDS avec la sous-fonction Stop (0x02) pour la routine de diagnostic générique respective [SWS_DM_00555]. Contrairement aux interfaces de routines typées [SWS_DM_00592], elle reçoit l'identifiant de routine routineId ainsi que les données de requête sous forme d'un span de données brutes requestData [SWS_DM_00555].

Lors de l'utilisation, il convient de respecter les règles suivantes relatives aux paramètres et au déroulement [SWS_DM_00555] :

  • Durée de vie du span de données d'entrée : la zone mémoire de requestData reste valide jusqu'à ce que le Promise associé soit satisfait ou que l'exécution soit annulée via le cancellationHandler [SWS_DM_00555].
  • Gestion de l'annulation : l'application peut vérifier via cancellationHandler.IsCanceled() si la conversation de diagnostic courante a été annulée, ou enregistrer via cancellationHandler.SetNotifier une fonction de notification qui se déclenche en cas d'annulation [SWS_DM_00555].
  • Asynchronisme et retour : la fonction opère de manière asynchrone et renvoie un ara::core::Future<OperationOutput> qui, en cas de succès, contient les données de sortie pour la réponse positive UDS [SWS_DM_00555].

Le traitement des erreurs s'effectue via des valeurs de retour de diagnostic négatives : si l'arrêt de la routine échoue, le futur doit être complété avec un code d'erreur NRC UDS approprié selon l'ISO 14229-1 via DiagUdsNrcErrc [SWS_DM_00555].

Concernant la concurrence, la méthode est spécifiée comme noexcept et sûre face aux exceptions. La nécessité pour l'implémentation concrète d'être conçue pour être sûre pour les threads dépend du ConcurrencyType transmis lors de l'instanciation dans le constructeur [SWS_DM_00555].

Cette note d'utilisation est exclusivement basée sur les spécifications de la version R25-11 d'Adaptive AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaData of the request.
cancellationHandlerThis 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.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for an negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00555
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00555@rel:R25-11#38019abe
Content hash
38019abe
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00555
Status: valid/unmigrated Version: rel:R25-11#56c0affc Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00555@rel:R25-11#56c0affc
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#04e6a8622026-09-30
  • R19-11rel:R19-11#23fc2c642026-10-14
  • R20-11rel:R20-11#3e55de712026-10-14
  • R21-11rel:R21-11#b34b7e672026-10-14
  • R22-11rel:R22-11#dbc3abf42026-10-14
  • R23-11rel:R23-11#146ebc662026-10-14
  • R24-11rel:R24-11#702a311c2026-10-14
  • R25-11rel:R25-11#56c0affc2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction StopOffer [SWS_DM_00558] Upstream: RS_Diag_04169, RS_Diag_04224

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 73588f5f0b57 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La méthode ara::diag::GenericRoutine::StopOffer désactive le transfert des requêtes de diagnostic entrantes de Diagnostic Management (DM) vers l'instance de routine correspondante [SWS_DM_00558]. La fonction a pour signature void StopOffer() noexcept;, ne prend aucun paramètre et ne renvoie aucune valeur de retour [SWS_DM_00558]. L'appel est traité de manière synchrone et signale au DM que la routine n'accepte plus de requêtes à partir de ce moment.

Gestion des erreurs

L'opération est spécifiée comme exception safe et déclarée avec noexcept [SWS_DM_00558]. Aucun code d'erreur ni aucune exception C++ ne survient lors de l'exécution. Aucun message spécifique destiné à des instances de développement ou de mémoire d'événements (DET/DEM) n'est prévu pour cette interface dans le module de diagnostic.

Concurrence et restrictions

En ce qui concerne le comportement de threading, la méthode est désignée comme not thread-safe [SWS_DM_00558]. Les appels concurrents sur la même instance de ara::diag::GenericRoutine doivent donc être synchronisés du côté de l'application. Interprétation : un appel devrait surtout avoir lieu lorsqu'une routine est temporairement désactivée ou que l'application est arrêtée de manière contrôlée, après qu'un appel de mise à disposition a eu lieu au préalable. Question Q-e110ce01110699e3 (ouverte)

Interaction

La dénomination suit conceptuellement la proposition de service (service offering) de ara::com, mais constitue une implémentation distincte au sein de ara::diag et ne doit pas être confondue avec les offres de communication (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »). Le même modèle de mise à disposition pour la désactivation du transfert de requêtes est également utilisé à l'échelle du module par d'autres classes de diagnostic telles que ara::diag::GenericUDSService [SWS_DM_00620], ara::diag::GenericDataIdentifier [SWS_DM_00639], des interfaces de routine [SWS_DM_00595] ainsi que ara::diag::Monitor [SWS_DM_01089].

Ce texte a été généré par une IA et repose exclusivement sur les documents de spécification d'AUTOSAR R25-11.

Guide de l'implémenteur à venir (complexité I2)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00558
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00558@rel:R25-11#af2b15ce
Content hash
af2b15ce
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00558
Status: valid/unmigrated Version: rel:R25-11#39feb507 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00558@rel:R25-11#39feb507
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f2c61aa62026-09-30
  • R19-11rel:R19-11#33f222af2026-10-14
  • R20-11rel:R20-11#ec8bc9632026-10-14
  • R21-11rel:R21-11#c0037e202026-10-14
  • R22-11rel:R22-11#b08db6972026-10-14
  • R23-11rel:R23-11#3cfad6d22026-10-14
  • R24-11rel:R24-11#ec651f742026-10-14
  • R25-11rel:R25-11#39feb5072026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction operator= [SWS_DM_01635] Upstream: RS_AP_00147

GenericRoutine & operator= (GenericRoutine &)=delete;

GenericRoutine shall be a single not assignable instance.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01635
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01635@rel:R25-11#0262af6f
Content hash
0262af6f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01635
Status: valid/unmigrated Version: rel:R25-11#3028b007 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01635@rel:R25-11#3028b007
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#fea4feed2026-09-30
  • R23-11rel:R23-11#98987c072026-10-14
  • R24-11rel:R24-11#3028b0072026-10-14
  • R25-11rel:R25-11#3028b0072026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction operator= [SWS_DM_01636] Upstream: RS_AP_00147

GenericRoutine & operator= (GenericRoutine &&)=delete;

Move assignment operator of GenericRoutine.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01636
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01636@rel:R25-11#070c323d
Content hash
070c323d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01636
Status: valid/unmigrated Version: rel:R25-11#881d1dd4 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01636@rel:R25-11#881d1dd4
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#24fc63642026-09-30
  • R23-11rel:R23-11#98cccf9a2026-10-14
  • R24-11rel:R24-11#881d1dd42026-10-14
  • R25-11rel:R25-11#881d1dd42026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction ~GenericRoutine [SWS_DM_00553] Upstream: RS_AP_00134, RS_Diag_04169, RS_Diag_04224

virtual ~GenericRoutine () noexcept;

Destructor of class GenericRoutine .

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00553
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00553@rel:R25-11#d3eebb07
Content hash
d3eebb07
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00553
Status: valid/unmigrated Version: rel:R25-11#a6efdb40 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00553@rel:R25-11#a6efdb40
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#c99137522026-09-30
  • R19-11rel:R19-11#b7ba28462026-10-14
  • R20-11rel:R20-11#dbe0f1bb2026-10-14
  • R21-11rel:R21-11#dbe0f1bb2026-10-14
  • R22-11rel:R22-11#510ac3412026-10-14
  • R23-11rel:R23-11#50b0d8172026-10-14
  • R24-11rel:R24-11#a6efdb402026-10-14
  • R25-11rel:R25-11#a6efdb402026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill