DEENESPTFRRUARHIKOZHNL

classe ara::diag::DownloadService

[SWS_DM_00784] Upstream: RS_Diag_04033

class DownloadService {...};

Download service interface.

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

Guide utilisateurGÉNÉRÉ PAR IA

Sert d'interface pour le traitement des sessions de téléchargement UDS avec transfert de données et vérification finale.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 80e540367c50 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert d'interface pour le traitement des sessions de téléchargement UDS avec transfert de données et vérification finale.

La classe abstraite ara::diag::DownloadService sert d'interface fonctionnelle pour le traitement des opérations de téléchargement UDS sur l'AUTOSAR Adaptive Platform ([SWS_DM_00787]). Après son activation via Offer(), le Diagnostic Management relaie les requêtes de diagnostic pour l'initialisation, le transfert de données par blocs et la vérification finale à l'implémentation spécifique à l'application ([SWS_DM_00792]). L'instance n'est ni copiable ni déplaçable et requiert, lors de sa création, une affectation de port univoque ainsi que la définition du comportement de concurrence. Toutes les routines de transfert renvoient des futures asynchrones, les erreurs étant signalées par des Negative Response Codes.

Contexte

La classe abstraite ara::diag::DownloadService définit l'interface C++ fonctionnelle pour la réalisation de services de téléchargement de diagnostic dans l'AUTOSAR Adaptive Platform ([SWS_DM_00787]). Elle fait office de gestionnaire de service standardisé vers lequel le Diagnostic Management (DM) relaie les requêtes UDS entrantes selon l'ISO 14229-1 ([SWS_DM_00792]). La liaison à l'architecture logicielle s'effectue via un PortPrototype modélisé d'un DiagnosticDownloadInterface, qui est résolu à l'exécution par le biais d'un ara::core::InstanceSpecifier ([SWS_DM_00787]). Un composant de diagnostic spécifique à l'application hérite de cette interface et implémente la logique de déroulement concrète pour l'initiation, le transfert de données par blocs ainsi que la clôture ordonnée des séquences de téléchargement dans le calculateur ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]).

Cycle de vie

L'instanciation s'effectue via le constructeur en indiquant un ara::core::InstanceSpecifier et un ConcurrencyType ([SWS_DM_00787]). La plateforme valide alors l'intégrité du modèle ; des affectations de ports erronées ou la réutilisation du même identifiant au sein du processus entraînent des erreurs à l'exécution ([SWS_DM_00787]). Afin de garantir un mappage univoque sur le port de diagnostic, ara::diag::DownloadService est conçue sous forme d'instance unique : le constructeur de copie ([SWS_DM_01649]) et l'opérateur d'assignation par copie ([SWS_DM_01647]) ainsi que le constructeur de déplacement ([SWS_DM_01650]) et l'assignation par déplacement ([SWS_DM_01648]) sont supprimés (delete).

Après sa création, l'instance se trouve à l'état inactif. Ce n'est qu'avec l'appel de Offer() que le relayage des requêtes de diagnostic par le DM est activé ([SWS_DM_00792]). À l'aide de StopOffer(), ce relayage peut à nouveau être désactivé ([SWS_DM_00793]). Après la désactivation, un nouvel appel de Offer() devrait vraisemblablement être autorisé (interprétation) si le service doit être réactivé dans le déroulement applicatif. Question Q-475cd8b8a6a86754 (ouverte) Le destructeur virtuel ~DownloadService() met fin au cycle de vie du gestionnaire ([SWS_DM_00788]).

En ce qui concerne la sécurité des threads, le constructeur est thread-safe, tandis que Offer(), StopOffer() et le destructeur ne sont pas thread-safe ([SWS_DM_00787], [SWS_DM_00788], [SWS_DM_00792], [SWS_DM_00793]). La nécessité de traiter les méthodes de service dérivées de manière concurrente dépend du ConcurrencyType (kConcurrent ou kNotConcurrent) choisi lors de l'appel du constructeur ([SWS_DM_00787], [SWS_DM_00789]).

DownloadServiceLifecycle NichtInit Non initialisé Instanziiert Instancié (non offert) NichtInit->Instanziiert DownloadService() Instanziiert->NichtInit ~DownloadService() Angeboten Angeboten (Weiterleitung aktiv) Instanziiert->Angeboten Offer() Angeboten->Instanziiert StopOffer()

Diagramme d'états : cycle de vie d'une instance DownloadService, de sa création à sa destruction en passant par l'état d'offre. Sources : [SWS_DM_00787], [SWS_DM_00792], [SWS_DM_00793], [SWS_DM_00788]

Parcours d'utilisation

Un processus de téléchargement régulier suit une séquence en trois étapes composée d'une initialisation, d'un transfert de données et d'une vérification finale :

  • Initialisation du téléchargement : après l'offre du service via Offer() ([SWS_DM_00792]), le DM reçoit une requête UDS d'initialisation de téléchargement et appelle RequestDownload() ([SWS_DM_00789]). L'application vérifie des paramètres tels que dataFormatIdentifier, addressAndLengthFormatIdentifier ainsi que l'adresse cible et la taille de la mémoire dans memoryAddressAndSize ([SWS_DM_00789]). Après une vérification réussie, le ara::core::Future<void> renvoyé est résolu positivement ([SWS_DM_00789]).
  • Transfert de données : pour les messages TransferData ultérieurs, le DM appelle périodiquement DownloadData() ([SWS_DM_00790]). Le segment transferRequestParameterRecord contient les données utiles et reste valide jusqu'à ce que la promesse associée soit tenue ou que le traitement soit annulé ([SWS_DM_00790]). Le ara::core::Future<OperationOutput> renvoyé fournit des données de réponse positive, qui sont placées derrière le compteur de blocs dans la réponse UDS ([SWS_DM_00790]).
  • Clôture du transfert : une fois le transfert de données entièrement réalisé, le DM appelle RequestDownloadExit() ([SWS_DM_00791]). L'application traite les paramètres spécifiques au constructeur issus de transferRequestParameterRecord (par ex. sommes de contrôle finales) et acquitte la requête de manière asynchrone via un ara::core::Future<OperationOutput> ([SWS_DM_00791]).

Le traitement des blocs de données utiles devrait typiquement se dérouler dans des threads d'arrière-plan asynchrones de l'application (interprétation), puisque l'interface fonctionne avec ara::core::Future et qu'un cancellationHandler est transmis à chaque appel pour vérifier l'annulation ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]). Question Q-ba0fca00446cb679 (ouverte) Une fois toutes les opérations terminées, l'application désenregistre le service via StopOffer() ([SWS_DM_00793]).

Déroulement typique d’une session de téléchargement UDSDMDownloadServiceUse Case: DienstregistrierungOffer()Result<void> (Erfolg)Use Case: Download-InitialisierungRequestDownload(dataFormatIdentifier, addressAndLengthFormatIdentifier, memoryAddressAndSize, metaInfo, cancellationHandler)Future<void> (succès ou NRC)Use Case: Transmission de donnéesloopPour chaque bloc de données (TransferData)DownloadData(transferRequestParameterRecord, metaInfo, cancellationHandler)Future<OperationOutput> (succès ou NRC)Use Case: Fin du transfertRequestDownloadExit(transferRequestParameterRecord, metaInfo, cancellationHandler)Future<OperationOutput> (succès ou NRC)Use Case: DienstabmeldungStopOffer()

Diagramme de séquence : déroulement typique d'une session de téléchargement UDS entre le Diagnostic Management (DM) et DownloadService. Sources : [SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791], [SWS_DM_00792], [SWS_DM_00793]

Scénarios d'erreur

Des erreurs peuvent survenir lors de la configuration, lors de l'enregistrement du service ainsi que pendant le déroulement du protocole :

  • Violations de configuration : si le InstanceSpecifier ne peut pas être résolu dans le modèle ou s'il ne référence pas un PortPrototype, une InstanceSpecifierMappingIntegrityViolation est déclenchée ([SWS_DM_00787]). L'absence de typage par un DiagnosticServiceGenericMapping entraîne une PortInterfaceMappingViolation ([SWS_DM_00787]). De plus, des affectations de processus manquantes (ProcessMappingViolation) ou la réutilisation d'un identifiant déjà attribué (InstanceSpecifierAlreadyInUseViolation) aboutissent à des erreurs d'instanciation ([SWS_DM_00787]).
  • Erreurs d'offre : si Offer() est appelé alors que le service est déjà activement proposé, l'appel renvoie le code d'erreur DiagOfferErrc::kAlreadyOffered dans un ara::core::Result ([SWS_DM_00792]).
  • Réponses négatives de diagnostic : si le traitement dans RequestDownload(), DownloadData() ou RequestDownloadExit() échoue (par ex. en raison de plages d'adresses invalides ou d'erreurs de bloc), l'application clôture le ara::core::Future respectif avec un code d'erreur issu de DiagUdsNrcErrc conformément à l'ISO 14229-1 ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]). Le DM génère ensuite le message de réponse négative correspondant.
  • Annulation et interruption : via l'objet cancellationHandler, l'application peut vérifier au moyen de IsCanceled() si la conversation de diagnostic en cours a été interrompue, ou enregistrer via SetNotifier() un rappel pour l'interruption ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]). En cas d'annulation, la validité des données de tampon transmises expire prématurément ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]).

Ce guide a été généré par une IA sur la base de la spécification AUTOSAR Adaptive Platform R25-11.

Carte des membres

Diagramme de classes

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

G nara__diag__DownloadService914 DownloadService + DownloadService() + operator=() + ~DownloadService() + DownloadData() + Offer() + RequestDownload() + RequestDownloadExit() + StopOffer()

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

DownloadService fonction 3

Class for an DownloadService.

Surcharges DownloadService 3
explicit DownloadService (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept; SWS_DM_00787
DownloadService (DownloadService &)=delete; SWS_DM_01649
DownloadService (DownloadService &&) noexcept=delete; SWS_DM_01650

Destructor of class DownloadService.

virtual ~DownloadService () noexcept;

Méthodes

DownloadData fonction

Called for TransferData following a previous RequestDownload.

virtual ara::core::Future< OperationOutput > DownloadData (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
Offer fonction

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

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

Called for RequestDownload.

virtual ara::core::Future< void > RequestDownload (std::uint8_t data FormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const Meta Info &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestTransferExit.

virtual ara::core::Future< OperationOutput > RequestDownloadExit (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
StopOffer fonction

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

void StopOffer () noexcept;

Opérateurs

operator= fonction 2

DownloadService shall be a single not assignable instance.

Surcharges = 2

Types imbriqués

Documentation des méthodes

fonction DownloadData [SWS_DM_00790] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

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

Called for TransferData following a previous RequestDownload.

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

Utilisation

La méthode [SWS_DM_00790] est appelée afin de traiter les données pour le service UDS TransferData (0x36) après une requête de téléchargement préalablement initiée (AUTOSAR_AP_SWS_Diagnostics §8.14.1.1.3.1 « DownloadData »). L'exécution s'effectue de manière asynchrone via ara::core::Future<OperationOutput>.

Sont transmis en entrée un ara::core::Span<const std::uint8_t> avec les données à transférer (transferRequestParameterRecord), des données de contexte via MetaInfo ainsi qu'un CancellationHandler. Les données utiles restent valides jusqu'à ce que la promesse soit tenue ou que l'opération soit interrompue. En cas de fin réussie, les données de réponse sont enregistrées dans OperationOutput.responseData et placées après le compteur de séquence de blocs dans le message de réponse positive [SWS_DM_00786].

Gestion des erreurs

Si une erreur survient pendant le traitement, la promesse se termine avec un ErrorCode approprié issu de DiagUdsNrcErrc (NRC selon l'ISO 14229-1) en tant que réponse négative UDS [SWS_DM_00790].

Concurrence et restrictions

La fonction est déclarée comme noexcept. La nécessité ou non d'exécuter l'implémentation de manière sûre vis-à-vis des threads est déterminée conditionnellement par le ConcurrencyType transmis dans le constructeur [SWS_DM_00790]. Le CancellationHandler permet d'interroger l'état d'annulation (IsCanceled) ou d'enregistrer un rappel de notification via SetNotifier.

Interaction

L'opération met en œuvre le traitement de TransferData [SWS_DM_00137] après que la session de téléchargement a été préalablement démarrée par RequestDownload (0x34) [SWS_DM_00869]. Le transfert des blocs de données s'effectue probablement de manière séquentielle, conformément à l'ordre de la session UDS. Question Q-fe18230bf7fcdf47 (ouverte)

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/download.h"
Scopeclass ara::diag::DownloadService
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
transferRequestParameterRecorddata to be transferred (copied/downloaded to the ECU/server) 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, which either gets readied to OperationOutput (transfer ResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.responseData will be placed after the blockSequenceCounter as transferResponseParameterRecord in the positive response.

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_00790
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00790@rel:R25-11#f34eb832
Content hash
f34eb832
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00790
Status: valid/unmigrated Version: rel:R25-11#a7575344 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_00790@rel:R25-11#a7575344
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#805cae222026-09-30
  • R19-11rel:R19-11#266301b32026-10-14
  • R20-11rel:R20-11#0ebd14d12026-10-14
  • R21-11rel:R21-11#3484339d2026-10-14
  • R22-11rel:R22-11#f928e1d22026-10-14
  • R23-11rel:R23-11#83a2741f2026-10-14
  • R24-11rel:R24-11#0b81b5b92026-10-14
  • R25-11rel:R25-11#a75753442026-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 DownloadService [SWS_DM_00787] Upstream: RS_AP_00137, RS_Diag_04033, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

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

Class for an DownloadService.

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService
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 DiagnosticDownloadInterface needs to be typed 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 DiagnosticDownloadInterface
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_00787
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00787@rel:R25-11#026b8282
Content hash
026b8282
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00787
Status: valid/unmigrated Version: rel:R25-11#8657e8dc 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_00787@rel:R25-11#8657e8dc
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#ffed83902026-09-30
  • R19-11rel:R19-11#798c93552026-10-14
  • R20-11rel:R20-11#8f95734d2026-10-14
  • R21-11rel:R21-11#8f95734d2026-10-14
  • R22-11rel:R22-11#36dbe1792026-10-14
  • R23-11rel:R23-11#94e653a32026-10-14
  • R24-11rel:R24-11#a6fa21eb2026-10-14
  • R25-11rel:R25-11#8657e8dc2026-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 DownloadService [SWS_DM_01649] Upstream: RS_AP_00147

DownloadService (DownloadService &)=delete;

DownloadService shall be a single not copy-able instance.

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService

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

Record
AUTOSAR/AP/record/SWS_DM_01649
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01649@rel:R25-11#0158e99a
Content hash
0158e99a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01649
Status: valid/unmigrated Version: rel:R25-11#fb906636 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_01649@rel:R25-11#fb906636
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#cb7ef79e2026-09-30
  • R23-11rel:R23-11#582c174d2026-10-14
  • R24-11rel:R24-11#808329322026-10-14
  • R25-11rel:R25-11#fb9066362026-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 DownloadService [SWS_DM_01650] Upstream: RS_AP_00147

DownloadService (DownloadService &&) noexcept=delete;

Move constructor of DownloadService.

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService

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

Record
AUTOSAR/AP/record/SWS_DM_01650
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01650@rel:R25-11#2290e004
Content hash
2290e004
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01650
Status: valid/unmigrated Version: rel:R25-11#030ce002 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_01650@rel:R25-11#030ce002
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#88c77ae52026-09-30
  • R23-11rel:R23-11#fc491d3e2026-10-14
  • R24-11rel:R24-11#030ce0022026-10-14
  • R25-11rel:R25-11#030ce0022026-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_00792] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04033

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 : b7aed34fcbd4 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Offer de la classe ara::diag::DownloadService active le transfert des demandes de téléchargement entrant par le démon Diagnostic Management (DM) vers le gestionnaire spécifique [SWS_DM_00792]. L'appel s'effectue de manière synchrone et sans paramètre, sans déclencher d'exceptions C++ (noexcept) [SWS_DM_00792]. Typiquement, la mise à disposition devrait être appelée pendant la phase d'initialisation de l'application de traitement, avant l'arrivée des requêtes de diagnostic externes. Question Q-0180c707edea0eec (ouverte)

Comme valeur de retour, la fonction fournit un ara::core::Result<void> [SWS_DM_00792]. Si l'enregistrement a réussi, le résultat est vide. Si le service a déjà été proposé auparavant au DM, l'opération échoue avec le code d'erreur DiagOfferErrc::kAlreadyOffered, une sémantique de rollback étant garantie [SWS_DM_00792].

Concernant la concurrence et la sécurité, les conditions suivantes s'appliquent :

  • Sécurité des threads : La fonction est classée comme non sécurisée pour les threads (not thread-safe) [SWS_DM_00792] ; les appels parallèles sur la même instance de service doivent être synchronisés côté application.
  • Sécurité des exceptions : L'interface est spécifiée comme sûre vis-à-vis des exceptions (exception safe) [SWS_DM_00792].

Le modèle via Offer correspond à l'approche uniforme pour les services de diagnostic dans AUTOSAR Adaptive, telle qu'elle est également définie de manière analogue pour UploadService [SWS_DM_00802], SecurityAccess [SWS_DM_00766] ou les services UDS génériques [SWS_DM_00619]. Malgré l'homonymie avec d'autres sous-systèmes, il s'agit d'une implémentation de diagnostic spécifique AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors ».

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

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

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService
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_00792
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00792@rel:R25-11#b076e1ec
Content hash
b076e1ec
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00792
Status: valid/unmigrated Version: rel:R25-11#b34b20a3 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_00792@rel:R25-11#b34b20a3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f711ba552026-09-30
  • R19-11rel:R19-11#f492a0482026-10-14
  • R20-11rel:R20-11#887c43c62026-10-14
  • R21-11rel:R21-11#053e9e6c2026-10-14
  • R22-11rel:R22-11#746b90042026-10-14
  • R23-11rel:R23-11#dc45d0452026-10-14
  • R24-11rel:R24-11#15a7b4052026-10-14
  • R25-11rel:R25-11#b34b20a32026-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 RequestDownload [SWS_DM_00789] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

virtual ara::core::Future< void > RequestDownload (std::uint8_t data FormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const Meta Info &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestDownload.

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

Utilisation

La méthode RequestDownload de la classe ara::diag::DownloadService est appelée par la Diagnostic Server instance afin de traiter le service UDS 0x34 (RequestDownload) conformément à [SWS_DM_00128] et [SWS_DM_00867]. Elle reçoit dataFormatIdentifier, addressAndLengthFormatIdentifier, la plage de mémoire memoryAddressAndSize, metaInfo ainsi qu'un cancellationHandler [SWS_DM_00789]. Le traitement s'effectue de manière asynchrone et renvoie un ara::core::Future<void> ; la validité des données dans memoryAddressAndSize est conservée jusqu'à ce que la promesse associée soit tenue ou que l'opération soit annulée [SWS_DM_00789].

Gestion des erreurs

En cas de succès, le future est défini sur void, ce qui conduit à une réponse positive, à la suite de quoi un événement de sécurité SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL est signalé à l'IdsM [SWS_DM_02031]. Si la requête échoue, le future doit être complété avec un code d'erreur approprié issu de DiagUdsNrcErrc conformément à l'ISO 14229-1 [SWS_DM_00789].

Concurrence et interaction

La méthode est spécifiée comme exception safe, tandis que la sécurité des threads est conditionnelle et dépend du ConcurrencyType transmis dans le constructeur [SWS_DM_00789]. Une interruption de la conversation peut être traitée via cancellationHandler.IsCanceled() ou un notificateur enregistré via cancellationHandler.SetNotifier [SWS_DM_00789]. Après l'exécution réussie de RequestDownload, le transfert des données s'enchaîne typiquement via DownloadData [SWS_DM_00790]. Interprétation : L'application qui implémente devrait valider la validité de l'adresse et de la taille de la mémoire avant que le future ne soit résolu, comme le suggère le contexte des services UDS liés à la mémoire AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.2 « Common service processing items ». Question Q-728d2e5f7d09e605 (ouverte)

Cette note d'utilisation est basée sur les documents de spécification d'AUTOSAR Adaptive R25-11.

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

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService
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
dataFormatIdentifierUDS dataFormat Identifier
addressAndLengthFormatIdentifierUDS addressAndLengthFormatIdentifier
memoryAddressAndSizememoryAddress and memorySize part of the request. 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< void >A Future, which either gets readied to void (for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (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_00789
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00789@rel:R25-11#faf401dd
Content hash
faf401dd
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00789
Status: valid/unmigrated Version: rel:R25-11#ffbdbbd3 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_00789@rel:R25-11#ffbdbbd3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#a74a1c182026-09-30
  • R19-11rel:R19-11#f998977a2026-10-14
  • R20-11rel:R20-11#bc61ad7e2026-10-14
  • R21-11rel:R21-11#6fc3d75b2026-10-14
  • R22-11rel:R22-11#21fafce42026-10-14
  • R23-11rel:R23-11#c991e0422026-10-14
  • R24-11rel:R24-11#b09d04162026-10-14
  • R25-11rel:R25-11#ffbdbbd32026-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 RequestDownloadExit [SWS_DM_00791] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

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

Called for RequestTransferExit.

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

La méthode RequestDownloadExit de la classe ara::diag::DownloadService est appelée par l'instance de Diagnostic Server afin de traiter le service UDS RequestTransferExit (0x37) dans le cadre d'une séquence de téléchargement ([SWS_DM_00141], [SWS_DM_00871], SWS Diagnostics §7.3.2.8.19 « Service 0x37 – RequestTransferExit »).

Lors de l'appel, les paramètres suivants sont transmis ([SWS_DM_00791]) :

  • transferRequestParameterRecord : Un ara::core::Span<const std::uint8_t> contenant des paramètres spécifiques au constructeur automobile pour assister le transfert de données. La validité de cette mémoire est maintenue jusqu'à ce que la promesse associée soit tenue ou que le traitement soit interrompu.
  • metaInfo : Métainformations relatives à la requête de diagnostic.
  • cancellationHandler : Sert à interroger l'état au moyen de cancellationHandler.IsCanceled() ainsi qu'à enregistrer une fonction de notification via cancellationHandler.SetNotifier().

La fonction s'exécute de manière asynchrone et renvoie un ara::core::Future<OperationOutput> ([SWS_DM_00791]). En cas de succès, le future est résolu avec OperationOutput ; les données contenues dans OperationOutput::responseData ([SWS_DM_00786]) sont intégrées en tant que transferResponseParameterRecord dans la réponse positive après l'ID de service ([SWS_DM_00791]).

Si une erreur survient, le future doit être complété avec un code d'erreur approprié issu de DiagUdsNrcErrc (Negative Response Code selon l'ISO 14229-1) ([SWS_DM_00791]). L'interface est spécifiée comme noexcept ; sa sécurité des threads est conditionnelle et est déterminée lors de la création de l'objet via le ConcurrencyType ([SWS_DM_00791]).

Ce texte a été généré par une IA et sert à des fins de documentation.

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

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService
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
transferRequestParameterRecordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific. 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, which either gets readied to OperationOutput (transfer ResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.responseData will be placed after SID as transferResponseParameterRecord in the positive response.

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_00791
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00791@rel:R25-11#f89a9b4d
Content hash
f89a9b4d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00791
Status: valid/unmigrated Version: rel:R25-11#21344e94 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_00791@rel:R25-11#21344e94
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#3e342a362026-09-30
  • R19-11rel:R19-11#8e6663042026-10-14
  • R20-11rel:R20-11#54678f6b2026-10-14
  • R21-11rel:R21-11#2a0ccfbc2026-10-14
  • R22-11rel:R22-11#1e8b923b2026-10-14
  • R23-11rel:R23-11#c81ea4142026-10-14
  • R24-11rel:R24-11#6f5df7482026-10-14
  • R25-11rel:R25-11#21344e942026-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_00793] Upstream: RS_Diag_04033

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 : 92aeeee277b1 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et contexte d'appel

La fonction StopOffer de la classe ara::diag::DownloadService (AUTOSAR_AP_SWS_Diagnostics §8.14.1.1.3.5 « StopOffer », [SWS_DM_00793]) sert à désactiver le transfert des messages de requête de diagnostic entrants de Diagnostic Management (DM) vers l'instance de service. L'interface synchrone possède la signature void StopOffer () noexcept;, ne prend aucun paramètre et ne renvoie aucune valeur de retour ([SWS_DM_00793]). L'appel s'effectue via l'en-tête #include "ara/diag/download.h" ([SWS_DM_00793]).

Gestion des erreurs et concurrence

En ce qui concerne le traitement des erreurs, la méthode est déclarée comme sûre vis-à-vis des exceptions (exception safe) et avec noexcept ; aucune exception n'est levée et aucun code d'erreur n'est généré ([SWS_DM_00793]). Pour la concurrence, StopOffer n'est pas sûr pour les threads (not thread-safe) ([SWS_DM_00793]). Les appels simultanés depuis plusieurs threads sur la même instance doivent donc être synchronisés du côté de l'application.

Interaction dans le système de diagnostic

La désactivation de services via StopOffer suit un modèle uniforme au sein d'AUTOSAR Adaptive : pour les services de téléversement (upload), il existe le pendant fonctionnel ara::diag::UploadService::StopOffer ([SWS_DM_00803]), de même que des méthodes analogues pour CommunicationControl ([SWS_DM_00810]), Authentication ([SWS_DM_01131]) et EcuResetRequest ([SWS_DM_01017]). La dénomination s'inspire des conventions de la plateforme, mais constitue une implémentation de diagnostic autonome (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors »). Interprétation : après l'appel de StopOffer, le DM ne devrait plus transférer ou devrait rejeter les requêtes de téléchargement UDS entrantes jusqu'à ce que le service soit à nouveau proposé. Question Q-a45cc70b6ae09431 (ouverte)

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

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

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService
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_00793
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00793@rel:R25-11#df2afb77
Content hash
df2afb77
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00793
Status: valid/unmigrated Version: rel:R25-11#1636e4f0 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_00793@rel:R25-11#1636e4f0
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2738b0bc2026-09-30
  • R19-11rel:R19-11#bc39bfa02026-10-14
  • R20-11rel:R20-11#268f9e722026-10-14
  • R21-11rel:R21-11#ac0a03612026-10-14
  • R22-11rel:R22-11#7903b38f2026-10-14
  • R23-11rel:R23-11#27bfc5a42026-10-14
  • R24-11rel:R24-11#93e117af2026-10-14
  • R25-11rel:R25-11#1636e4f02026-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_01647] Upstream: RS_AP_00147

DownloadService & operator= (DownloadService &)=delete;

DownloadService shall be a single not assignable instance.

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService

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

Record
AUTOSAR/AP/record/SWS_DM_01647
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01647@rel:R25-11#ad5b7eb8
Content hash
ad5b7eb8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01647
Status: valid/unmigrated Version: rel:R25-11#304074df 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_01647@rel:R25-11#304074df
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#2a6e089d2026-09-30
  • R23-11rel:R23-11#e243c4cf2026-10-14
  • R24-11rel:R24-11#ed6b07a12026-10-14
  • R25-11rel:R25-11#304074df2026-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_01648] Upstream: RS_AP_00147

DownloadService & operator= (DownloadService &&)=delete;

Move assignment operator of DownloadService.

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService

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

Record
AUTOSAR/AP/record/SWS_DM_01648
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01648@rel:R25-11#b0d11a6d
Content hash
b0d11a6d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01648
Status: valid/unmigrated Version: rel:R25-11#490d7891 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_01648@rel:R25-11#490d7891
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#8eefcc8a2026-09-30
  • R23-11rel:R23-11#65f181ef2026-10-14
  • R24-11rel:R24-11#490d78912026-10-14
  • R25-11rel:R25-11#490d78912026-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 ~DownloadService [SWS_DM_00788] Upstream: RS_AP_00134, RS_Diag_04033

virtual ~DownloadService () noexcept;

Destructor of class DownloadService.

Header-Datei#include "ara/diag/download.h"
Scopeclass ara::diag::DownloadService
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_00788
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00788@rel:R25-11#c8edbd8d
Content hash
c8edbd8d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00788
Status: valid/unmigrated Version: rel:R25-11#45cce01a 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_00788@rel:R25-11#45cce01a
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b5d610242026-09-30
  • R19-11rel:R19-11#47e107992026-10-14
  • R20-11rel:R20-11#af90c1862026-10-14
  • R21-11rel:R21-11#af90c1862026-10-14
  • R22-11rel:R22-11#987c3d212026-10-14
  • R23-11rel:R23-11#acfe51ff2026-10-14
  • R24-11rel:R24-11#5b94246d2026-10-14
  • R25-11rel:R25-11#45cce01a2026-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