DEENESPTFRRUARHIKOZHNL

структура ara::diag::DownloadService::OperationOutput

[SWS_DM_00785] Upstream: RS_Diag_04033

struct OperationOutput {...};

Response data of positive response message.

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

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

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

Служит для возврата полезных данных положительного диагностического ответа без идентификатора сервиса при операциях загрузки.

Структура данных ara::diag::DownloadService::OperationOutput служит транспортным контейнером для полезных данных положительных диагностических ответов при сервисах загрузки ([SWS_DM_00785]). При этом адаптивное приложение заполняет поле responseData результирующими байтами и передает структуру в Diagnostic Management ([SWS_DM_00786]). Существенным граничным условием является то, что responseData обязательно должно содержать полезные данные без идентификатора сервиса, и в зависимости от операции, такой как DownloadData или RequestDownloadExit, ожидается различное содержимое ([SWS_DM_00786]).

Контекст

Структура ara::diag::DownloadService::OperationOutput является специализированным типом данных модуля диагностики в составе AUTOSAR Adaptive Platform и предоставляется через заголовочный файл ara/diag/download.h ([SWS_DM_00785]). Ее основная роль состоит в инкапсуляции полезных данных сообщения положительного диагностического ответа для сервисов загрузки (AUTOSAR_AP_SWS_Diagnostics §8.14.2 «Struct: OperationOutput»). В рамках диагностической архитектуры структура функционирует как контейнер транспортировки данных между конкретной реализацией сервиса в адаптивном приложении и лежащей в основе диагностической средой выполнения (ara::diag), которая, в свою очередь, взаимодействует с внешним диагностическим клиентом (тестером) (AUTOSAR_AP_SWS_Diagnostics §7 «API Specification»).

Единственным содержащимся элементом является открытое поле responseData типа ara::core::Vector<std::uint8_t> ([SWS_DM_00786]). Оно транспортирует чистые полезные байты, которые должны быть отправлены обратно диагностическому тестеру при успешной обработке операции загрузки.

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

Являясь чистой структурой данных (struct), OperationOutput не имеет внутренних конечных автоматов или собственных методов ([SWS_DM_00785]). Ее жизненный цикл кратковременен и напрямую привязан к синхронной или асинхронной обработке отдельного диагностического запроса:

  • Создание: структура инстанцируется приложением, как только операция загрузки успешно завершена и доступны данные ответа. Создание, по-видимому, обычно происходит на стеке либо внутри цепочки обратных вызовов или future. Вопрос (открытый)
  • Заполнение и передача: приложение заполняет вектор responseData вычисленными байтами ([SWS_DM_00786]). С возвратом в Diagnostic Management ответственность за данные переходит к платформе.
  • Уничтожение: как только уровень платформы сериализует данные и отправит UDS-кадр, экземпляр освобождается.

Что касается параллелизма, следует учитывать, что OperationOutput как пассивный объект-значение не является потокобезопасным. Если операции обрабатываются в параллельных рабочих потоках приложения, необходимо обеспечить отсутствие конкурирующего доступа к responseData до того, как объект будет передан в ara::diag.

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

Типичное использование OperationOutput происходит в рамках обработки диагностических запросов на загрузку. Внешний диагностический тестер отправляет запрос автомобилю, который принимается платформой и перенаправляется в подходящий метод интерфейса DownloadService в адаптивном приложении (AUTOSAR_AP_SWS_Diagnostics §7 «API Specification»). После успешной внутренней обработки приложение создает экземпляр OperationOutput и передает данные ответа.

Последовательность предоставления данных ответа через OperationOutputДиагностический клиентara::diag (DCM)DownloadService (Anwendung)Download-Anfrage (UDS)Вызов операции загрузкиVerarbeitet DatenblockErzeugt OperationOutputЗаполняет responseData (без SID)Возврат OperationOutput {responseData}Добавляет SID / заголовокPositive UDS-Antwortnachricht

Диаграмма последовательности: взаимодействие диагностического клиента, среды выполнения платформы и приложения при предоставлении данных положительного ответа через OperationOutput. Источники: [SWS_DM_00785], [SWS_DM_00786], AUTOSAR_AP_SWS_Diagnostics §8.14.2 «Struct: OperationOutput».

При заполнении responseData необходимо учитывать, что полезные данные должны предоставляться без идентификатора сервиса (SID) ([SWS_DM_00786]). Платформа самостоятельно добавляет протокольно-специфичный SID, а также возможную информацию заголовка. Кроме того, точная структура содержимого зависит от вызванной операции: в случае DownloadData или RequestDownloadExit семантические ожидания относительно начала и структуры данных ответа в векторе различаются ([SWS_DM_00786]).

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

Поскольку OperationOutput явно специфицирован для сообщений положительного ответа (AUTOSAR_AP_SWS_Diagnostics §8.14.2 «Struct: OperationOutput»), внутри структуры данных отсутствуют поля для кодов ошибок или отрицательных откликов. Если при выполнении операции загрузки возникает ошибка (например, недопустимые диапазоны адресов, неверный порядок блоков или прерванные передачи), OperationOutput, вероятно, не обрабатывается; вместо этого приложение сигнализирует о сбое через каналы ошибок платформы, после чего генерируется отрицательный код ответа (NRC). Вопрос (открытый)

Ошибка со стороны приложения при использовании OperationOutput возникает в том случае, если идентификатор сервиса ошибочно вставляется в responseData. Это противоречит спецификации [SWS_DM_00786] и, вероятно, приведет к некорректному форматированию кадра. Вопрос (открытый) Аналогично, неверный порядок байтов или неполный объем данных приводят, в зависимости от конкретной операции, к протокольным ошибкам на стороне тестера ([SWS_DM_00786]).

Данное руководство основано на спецификации AUTOSAR Adaptive Platform Release R25-11 и было создано автоматически.

UML-диаграмма классов

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

G nara__diag__DownloadService__OperationOutput45 «struct» OperationOutput + responseData

Константы

responseData переменная

Content of positive response message (without SID) Depending on the operation (e.g.: DownloadData, RequestDownloadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.

Документация констант / переменных

переменная responseData [SWS_DM_00786] Upstream: RS_Diag_04033

ara::core::Vector<std::uint8_t> responseData;

Content of positive response message (without SID) Depending on the operation (e.g.: DownloadData, RequestDownloadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.

Header-Datei#include "ara/diag/download.h"
Scopestruct ara::diag::DownloadService::OperationOutput
SymbolresponseData
Typara::core::Vector< std::uint8_t >

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

Record
AUTOSAR/AP/record/SWS_DM_00786
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00786@rel:R25-11#17be3f85
Content hash
17be3f85
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00786
Status: valid/unmigrated Version: rel:R25-11#9ee381a9 Versionshistorie & Revisions (1 transition, 7 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_00786@rel:R25-11#9ee381a9
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#a830c82b2026-09-30
  • R20-11rel:R20-11#5fbb8d5c2026-10-14
  • R21-11rel:R21-11#bfa9d5ae2026-10-14
  • R22-11rel:R22-11#ef7d58082026-10-14
  • R23-11rel:R23-11#0f456ef02026-10-14
  • R24-11rel:R24-11#0f456ef02026-10-14
  • R25-11rel:R25-11#9ee381a92026-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