DEENESPTFRRUARHIKOZHNL

класс 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

Руководство пользователяСОЗДАНО ИИ

Служит интерфейсом для обработки сеансов UDS-загрузки с передачей данных и проверкой завершения.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 80e540367c50 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Служит интерфейсом для обработки сеансов UDS-загрузки с передачей данных и проверкой завершения.

Абстрактный класс ara::diag::DownloadService служит функциональным интерфейсом для выполнения операций UDS-загрузки на AUTOSAR Adaptive Platform ([SWS_DM_00787]). После активации с помощью Offer() Diagnostic Management перенаправляет диагностические запросы на инициализацию, поблочную передачу данных и проверку завершения в реализацию на уровне приложения ([SWS_DM_00792]). Экземпляр не поддерживает копирование и перемещение и при создании требует однозначной привязки к порту, а также определения поведения в отношении параллелизма. Все процедуры передачи возвращают асинхронные фьючерсы, при этом ошибки сигнализируются кодами отрицательного ответа (Negative Response Codes).

Контекст

Абстрактный класс ara::diag::DownloadService определяет функциональный интерфейс C++ для реализации служб диагностической загрузки в AUTOSAR Adaptive Platform ([SWS_DM_00787]). Он функционирует как стандартизированный обработчик службы, которому Diagnostic Management (DM) передает входящие UDS-запросы согласно ISO 14229-1 ([SWS_DM_00792]). Привязка к архитектуре программного обеспечения осуществляется через смоделированный PortPrototype сущности DiagnosticDownloadInterface, разрешаемый во время выполнения через ara::core::InstanceSpecifier ([SWS_DM_00787]). Компонент диагностики на уровне приложения наследует этот интерфейс и реализует конкретную логику выполнения для запуска, поблочной передачи данных, а также корректного завершения последовательностей загрузки в блоке управления ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]).

Жизненный цикл

Инстанцирование выполняется через конструктор с указанием ara::core::InstanceSpecifier и ConcurrencyType ([SWS_DM_00787]). При этом платформа проверяет целостность модели; некорректная привязка к портам или многократное использование одного и того же идентификатора в процессе приводят к ошибкам времени выполнения ([SWS_DM_00787]). Чтобы обеспечить однозначное сопоставление с диагностическим портом, ara::diag::DownloadService спроектирован как единственный экземпляр: как конструктор копирования ([SWS_DM_01649]) и оператор присваивания с копированием ([SWS_DM_01647]), так и конструктор перемещения ([SWS_DM_01650]) и перемещающее присваивание ([SWS_DM_01648]) удалены (delete).

После создания экземпляр находится в неактивном состоянии. Пересылка диагностических запросов через DM активируется только вызовом Offer() ([SWS_DM_00792]). С помощью StopOffer() эту пересылку можно снова отключить ([SWS_DM_00793]). После отключения повторный вызов Offer(), вероятно, допустим (интерпретация), если требуется повторно активировать службу в ходе работы приложения. Вопрос Q-475cd8b8a6a86754 (открытый) Виртуальный деструктор ~DownloadService() завершает жизненный цикл обработчика ([SWS_DM_00788]).

Что касается потокобезопасности, конструктор потокобезопасен, тогда как Offer(), StopOffer() и деструктор не являются потокобезопасными ([SWS_DM_00787], [SWS_DM_00788], [SWS_DM_00792], [SWS_DM_00793]). Требуется ли параллельная обработка производных методов службы, зависит от ConcurrencyType (kConcurrent или kNotConcurrent), выбранного при вызове конструктора ([SWS_DM_00787], [SWS_DM_00789]).

DownloadServiceLifecycle NichtInit Не инициализирован Instanziiert Инстанцирован (не предложен) NichtInit->Instanziiert DownloadService() Instanziiert->NichtInit ~DownloadService() Angeboten Angeboten (Weiterleitung aktiv) Instanziiert->Angeboten Offer() Angeboten->Instanziiert StopOffer()

Диаграмма состояний: жизненный цикл экземпляра DownloadService от создания через статус предложения до уничтожения. Источники: [SWS_DM_00787], [SWS_DM_00792], [SWS_DM_00793], [SWS_DM_00788]

Путь использования

Штатный процесс загрузки следует трехэтапной последовательности из инициализации, передачи данных и проверки завершения:

  • Инициализация загрузки: после предложения службы через Offer() ([SWS_DM_00792]) DM принимает UDS-запрос на инициализацию загрузки и вызывает RequestDownload() ([SWS_DM_00789]). Приложение проверяет такие параметры, как dataFormatIdentifier, addressAndLengthFormatIdentifier, а также адрес назначения и размер памяти в memoryAddressAndSize ([SWS_DM_00789]). После успешной проверки возвращенный ara::core::Future<void> успешно разрешается ([SWS_DM_00789]).
  • Передача данных: для последующих сообщений TransferData DM циклически вызывает DownloadData() ([SWS_DM_00790]). Сегмент transferRequestParameterRecord содержит полезные данные и остается валидным до тех пор, пока соответствующий промис не будет выполнен или обработка не будет отменена ([SWS_DM_00790]). Возвращенный ara::core::Future<OperationOutput> предоставляет данные положительного ответа, которые размещаются за счетчиком блоков в UDS-ответе ([SWS_DM_00790]).
  • Завершение передачи: после полной передачи данных DM вызывает RequestDownloadExit() ([SWS_DM_00791]). Приложение обрабатывает специфичные для производителя параметры из transferRequestParameterRecord (например, итоговые контрольные суммы) и асинхронно подтверждает запрос через ara::core::Future<OperationOutput> ([SWS_DM_00791]).

Обработка блоков полезных данных, как правило, происходит в асинхронных фоновых потоках приложения (интерпретация), поскольку интерфейс работает с ara::core::Future, и при каждом вызове передается cancellationHandler для проверки отмены ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]). Вопрос Q-ba0fca00446cb679 (открытый) После завершения всех операций приложение отменяет регистрацию службы через StopOffer() ([SWS_DM_00793]).

Типичная последовательность сеанса загрузки UDSDMDownloadServiceUse Case: DienstregistrierungOffer()Result<void> (Erfolg)Use Case: Download-InitialisierungRequestDownload(dataFormatIdentifier, addressAndLengthFormatIdentifier, memoryAddressAndSize, metaInfo, cancellationHandler)Future<void> (успех или NRC)Use Case: Передача данныхloopДля каждого блока данных (TransferData)DownloadData(transferRequestParameterRecord, metaInfo, cancellationHandler)Future<OperationOutput> (успех или NRC)Use Case: Завершение передачиRequestDownloadExit(transferRequestParameterRecord, metaInfo, cancellationHandler)Future<OperationOutput> (успех или NRC)Use Case: DienstabmeldungStopOffer()

Диаграмма последовательности: типичный ход сеанса UDS-загрузки между Diagnostic Management (DM) и DownloadService. Источники: [SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791], [SWS_DM_00792], [SWS_DM_00793]

Сценарии ошибок

Ошибки могут возникать при конфигурации, при регистрации службы, а также в процессе выполнения протокола:

  • Нарушения конфигурации: если InstanceSpecifier не удается разрешить в модели или он не указывает на PortPrototype, генерируется InstanceSpecifierMappingIntegrityViolation ([SWS_DM_00787]). Отсутствие типизации через DiagnosticServiceGenericMapping приводит к PortInterfaceMappingViolation ([SWS_DM_00787]). Кроме того, отсутствие сопоставления с процессами (ProcessMappingViolation) или повторное использование уже занятого идентификатора (InstanceSpecifierAlreadyInUseViolation) приводят к ошибкам инстанцирования ([SWS_DM_00787]).
  • Ошибки предложения: если Offer() вызывается, когда служба уже активно предлагается, вызов возвращает код ошибки DiagOfferErrc::kAlreadyOffered в ara::core::Result ([SWS_DM_00792]).
  • Диагностические отрицательные ответы: в случае сбоя обработки в RequestDownload(), DownloadData() или RequestDownloadExit() (например, из-за недопустимых диапазонов адресов или ошибок блоков) приложение завершает соответствующий ara::core::Future с кодом ошибки из DiagUdsNrcErrc согласно ISO 14229-1 ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]). Затем DM формирует соответствующее отрицательное ответное сообщение.
  • Аннулирование и отмена: через объект cancellationHandler приложение может с помощью IsCanceled() проверить, был ли прерван текущий диагностический сеанс, или через SetNotifier() задать обратный вызов для отмены ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]). В случае отмены срок действия переданных буферных данных истекает досрочно ([SWS_DM_00789], [SWS_DM_00790], [SWS_DM_00791]).

Настоящее руководство сгенерировано ИИ на основе спецификации AUTOSAR Adaptive Platform R25-11.

Карта членов

Конструкторы и деструктор

2

Операторы

1

Вложенные типы

1

Диаграмма классов

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

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

Подробный вид

Выберите элемент в оглавлении.

Конструкторы и деструктор

DownloadService функция 3

Class for an DownloadService.

Перегрузки 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
~DownloadService функция

Destructor of class DownloadService.

virtual ~DownloadService () noexcept;

Методы

DownloadData функция

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 функция

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

ara::core::Result< void > Offer () noexcept;
RequestDownload функция

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;
RequestDownloadExit функция

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 функция

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

void StopOffer () noexcept;

Операторы

operator= функция 2

DownloadService shall be a single not assignable instance.

Перегрузки = 2

Вложенные типы

OperationOutput класс

Документация методов

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: bbbd97ebad00 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Метод [SWS_DM_00790] вызывается для обработки данных для UDS-службы TransferData (0x36) после предварительно инициированного запроса на загрузку (AUTOSAR_AP_SWS_Diagnostics §8.14.1.1.3.1 «DownloadData»). Выполнение происходит асинхронно через ara::core::Future<OperationOutput>.

В качестве входных данных передаются ara::core::Span<const std::uint8_t> с передаваемыми данными (transferRequestParameterRecord), контекстные данные через MetaInfo, а также CancellationHandler. Полезные данные остаются действительными до тех пор, пока Promise не будет выполнено или операция не будет отменена. При успешном завершении данные ответа сохраняются в OperationOutput.responseData и помещаются после счетчика последовательности блоков в положительном сообщении ответа [SWS_DM_00786].

Обработка ошибок

Если во время обработки возникает ошибка, Promise завершается с подходящим ErrorCode из DiagUdsNrcErrc (NRC согласно ISO 14229-1) в качестве отрицательного UDS-ответа [SWS_DM_00790].

Параллелизм и ограничения

Функция объявлена как noexcept. Должна ли реализация выполняться потокобезопасно, определяется условно переданным в конструкторе ConcurrencyType [SWS_DM_00790]. Через CancellationHandler можно опрашивать статус отмены (IsCanceled) или зарегистрировать callback уведомления через SetNotifier.

Взаимодействие

Операция реализует обработку TransferData [SWS_DM_00137] после того, как сеанс загрузки был предварительно запущен с помощью RequestDownload (0x34) [SWS_DM_00869]. Предположительно, передача блоков данных происходит последовательно в соответствии с порядком сеанса UDS. Вопрос Q-fe18230bf7fcdf47 (открытый)

Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность 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#48c39557
Content hash
48c39557
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

функция 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#0cefc647
Content hash
0cefc647
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

функция 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#f8fb8f06
Content hash
f8fb8f06
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

функция 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#a9e60571
Content hash
a9e60571
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

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b7aed34fcbd4 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Offer класса ara::diag::DownloadService разрешает пересылку входящих запросов на загрузку через демон Diagnostic Management (DM) специфическому обработчику [SWS_DM_00792]. Вызов выполняется синхронно и без параметров, не вызывая исключений C++ (noexcept) [SWS_DM_00792]. Как правило, предоставление, вероятно, вызывается на этапе инициализации обрабатывающего приложения до поступления внешних диагностических запросов. Вопрос Q-0180c707edea0eec (открытый)

В качестве возвращаемого значения функция возвращает ara::core::Result<void> [SWS_DM_00792]. Если регистрация прошла успешно, результат пуст. Если служба уже предлагалась DM ранее, операция завершается неудачно с кодом ошибки DiagOfferErrc::kAlreadyOffered, при этом гарантируется семантика отката [SWS_DM_00792].

В отношении параллелизма и безопасности действуют следующие условия:

  • Потокобезопасность: Функция классифицирована как непотокобезопасная (not thread-safe) [SWS_DM_00792]; параллельные вызовы одного и того же экземпляра службы должны синхронизироваться со стороны приложения.
  • Исключениебезопасность: Интерфейс специфицирован как исключениебезопасный (exception safe) [SWS_DM_00792].

Шаблон через Offer соответствует единообразному подходу для диагностических служб в AUTOSAR Adaptive, аналогично тому, как он определен и для UploadService [SWS_DM_00802], SecurityAccess [SWS_DM_00766] или обобщенных служб UDS [SWS_DM_00619]. Несмотря на совпадение имен с другими подсистемами, речь идет о специфической реализации диагностики AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность 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#13b65bcd
Content hash
13b65bcd
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

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 833b177db92d Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Метод RequestDownload класса ara::diag::DownloadService вызывается Diagnostic Server instance для обработки UDS-сервиса 0x34 (RequestDownload) согласно [SWS_DM_00128] и [SWS_DM_00867]. Он принимает dataFormatIdentifier, addressAndLengthFormatIdentifier, область памяти memoryAddressAndSize, metaInfo, а также cancellationHandler [SWS_DM_00789]. Обработка выполняется асинхронно и возвращает ara::core::Future<void>; достоверность данных в memoryAddressAndSize сохраняется до тех пор, пока не будет выполнено соответствующее обещание (Promise) или операция не будет отменена [SWS_DM_00789].

Обработка ошибок

В случае успеха Future устанавливается в void, что приводит к положительному ответу, после чего событие безопасности SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL сообщается в IdsM [SWS_DM_02031]. Если запрос завершается неудачно, Future должен быть завершён с подходящим кодом ошибки из DiagUdsNrcErrc согласно ISO 14229-1 [SWS_DM_00789].

Параллелизм и взаимодействие

Метод специфицирован как exception safe, тогда как потокобезопасность является условной и зависит от переданного в конструкторе ConcurrencyType [SWS_DM_00789]. Через cancellationHandler.IsCanceled() или уведомитель, зарегистрированный через cancellationHandler.SetNotifier, может обрабатываться отмена сессии взаимодействия [SWS_DM_00789]. После успешного выполнения RequestDownload обычно следует передача данных через DownloadData [SWS_DM_00790]. Интерпретация: реализующее приложение, вероятно, проверяет валидность адреса и размера памяти до выполнения Future, как это предполагает контекст сервисов UDS, связанных с памятью AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.2 «Common service processing items». Вопрос Q-728d2e5f7d09e605 (открытый)

Это указание по использованию основано на документах спецификации AUTOSAR Adaptive R25-11.

Руководство разработчика реализации в подготовке (сложность 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#9284c518
Content hash
9284c518
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

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5b80145a92c9 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод RequestDownloadExit класса ara::diag::DownloadService вызывается экземпляром Diagnostic Server для обработки UDS-сервиса RequestTransferExit (0x37) в рамках последовательности загрузки ([SWS_DM_00141], [SWS_DM_00871], SWS Diagnostics §7.3.2.8.19 «Service 0x37 – RequestTransferExit»).

При вызове передаются следующие параметры ([SWS_DM_00791]):

  • transferRequestParameterRecord: ara::core::Span<const std::uint8_t> со специфичными для автопроизводителя параметрами для поддержки передачи данных. Достоверность этой памяти сохраняется до тех пор, пока соответствующее обещание (Promise) не будет выполнено или обработка не будет отменена.
  • metaInfo: метаинформация о диагностическом запросе.
  • cancellationHandler: служит для опроса состояния с помощью cancellationHandler.IsCanceled(), а также для регистрации функции уведомления через cancellationHandler.SetNotifier().

Функция работает асинхронно и возвращает ara::core::Future<OperationOutput> ([SWS_DM_00791]). В случае успеха Future выполняется с OperationOutput; данные, содержащиеся в OperationOutput::responseData ([SWS_DM_00786]), встраиваются в положительный ответ после идентификатора сервиса как transferResponseParameterRecord ([SWS_DM_00791]).

При возникновении ошибки Future должен быть завершён с подходящим кодом ошибки из DiagUdsNrcErrc (Negative Response Code согласно ISO 14229-1) ([SWS_DM_00791]). Интерфейс специфицирован как noexcept; его потокобезопасность является условной и определяется через ConcurrencyType при создании объекта ([SWS_DM_00791]).

Этот текст был сгенерирован ИИ и служит для документации.

Руководство разработчика реализации в подготовке (сложность 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#ddd76a88
Content hash
ddd76a88
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

функция StopOffer [SWS_DM_00793] Upstream: RS_Diag_04033

void StopOffer () noexcept;

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 92aeeee277b1 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция StopOffer класса ara::diag::DownloadService (AUTOSAR_AP_SWS_Diagnostics §8.14.1.1.3.5 «StopOffer», [SWS_DM_00793]) служит для деактивации пересылки входящих сообщений с диагностическими запросами от Diagnostic Management (DM) экземпляру сервиса. Синхронный интерфейс имеет сигнатуру void StopOffer () noexcept;, не принимает параметров и не возвращает значения ([SWS_DM_00793]). Вызов выполняется через заголовочный файл #include "ara/diag/download.h" ([SWS_DM_00793]).

Обработка ошибок и параллелизм

Что касается обработки ошибок, метод объявлен безопасным относительно исключений (exception safe) и с noexcept; исключения не выбрасываются, и коды ошибок не генерируются ([SWS_DM_00793]). В отношении параллелизма действует правило, что StopOffer не является потокобезопасным (not thread-safe) ([SWS_DM_00793]). Таким образом, одновременные вызовы одного и того же экземпляра из нескольких потоков должны синхронизироваться на стороне приложения.

Взаимодействие в диагностической системе

Деактивация сервисов через StopOffer следует единому паттерну в рамках AUTOSAR Adaptive: для сервисов выгрузки данных (Upload) существует функциональный аналог ara::diag::UploadService::StopOffer ([SWS_DM_00803]), как и аналогичные методы для CommunicationControl ([SWS_DM_00810]), Authentication ([SWS_DM_01131]) и EcuResetRequest ([SWS_DM_01017]). Именование опирается на соглашения платформы, однако представляет собой самостоятельную реализацию диагностики (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»). Интерпретация: после вызова StopOffer DM, вероятно, прекратит пересылку входящих запросов UDS на загрузку данных (Download) или будет отбрасывать их до тех пор, пока сервис не будет предложен снова. Вопрос Q-a45cc70b6ae09431 (открытый)

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность 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#77f317f1
Content hash
77f317f1
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

функция 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#9585aace
Content hash
9585aace
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

функция 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#90e20db9
Content hash
90e20db9
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

функция ~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#984c77e4
Content hash
984c77e4
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