DEENESPTFRRUARHIKOZHNL

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

[SWS_DM_00551] Upstream: RS_Diag_04169, RS_Diag_04224

struct OperationOutput {...};

Response data of positive respose message.

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

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

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

Служит для приема и возврата полезных данных при положительных ответах обобщенных сервисов рутин.

Структура ara::diag::GenericRoutine::OperationOutput служит структурой возврата для сообщений положительного ответа обобщенных сервисов рутин в AUTOSAR Adaptive [SWS_DM_00633]. После успешного выполнения рутины приложение создает экземпляр структуры и заполняет член responseData полезными данными результата SWS Diagnostics с. 80. Существенным граничным условием является то, что вектор responseData должен содержать исключительно чистые данные результата, а RoutineIdentifier явно не должен в нем присутствовать [SWS_DM_00633].

Контекст

Структура ara::diag::GenericRoutine::OperationOutput служит в диагностическом модуле AUTOSAR Adaptive выделенным контейнером данных для сообщений положительного ответа обобщенных сервисов рутин [SWS_DM_00633]. Она доступна через заголовочный файл ara/diag/generic_routine.h [SWS_DM_00633] и инкапсулирует полезные данные, которые адаптивное диагностическое приложение возвращает в Diagnostic Management (ara::diag) после успешной отработки рутины. Во взаимодействии в первую очередь участвуют три сущности: внешний диагностический тестер как отправитель запросов рутин, платформенный фреймворк ara::diag для обработки протокола и зависящая от приложения реализация GenericRoutine, которая выполняет прикладную логику и предоставляет результат SWS Diagnostics с. 80. Основная задача OperationOutput заключается в структурированном предоставлении исключительно выходных данных рутины, при этом RoutineIdentifier явно не является частью этой структуры данных [SWS_DM_00633].

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

Являясь легковесной структурой данных (struct), OperationOutput обладает простым жизненным циклом значений. Инстанцирование выполняется по мере необходимости адаптивным диагностическим приложением, как только направленная к рутине команда (например, запуск, остановка или запрос результата) была успешно завершена. Единственным элементом данных является responseData типа ara::core::Vector<std::uint8_t> [SWS_DM_00633]. Приложение выделяет память под вектор, заполняет его специфичными для приложения возвращаемыми данными и передает готовую структуру в диагностическую подсистему. Возврат в диагностический фреймворк, вероятно, обычно происходит асинхронно через типы Result или Future из ara::core (интерпретация: конвенция асинхронных интерфейсов Adaptive Platform). Вопрос Q-e672dfb8b9ff416a (открытый) После передачи ответственность за сериализацию переходит к ara::diag. Как только данные переданы или скопированы во внутренние буферы, структура уничтожается при выходе из соответствующей области видимости. В отношении параллелизма следует учитывать, что OperationOutput создается для контекста отдельного выполнения операции; совместный незащищенный доступ из нескольких потоков в штатном режиме не происходит.

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

Стандартный порядок использования OperationOutput включает несколько последовательных фаз:

  • Прием запроса: диагностический клиент отправляет запрос UDS RoutineControl, который перенаправляется диагностическим уровнем в соответствующий экземпляр GenericRoutine SWS Diagnostics с. 84.
  • Выполнение: адаптивное приложение выполняет запрошенную рутину и обрабатывает входные параметры.
  • Формирование результата: после успешного выполнения приложение создает экземпляр OperationOutput и заполняет responseData результирующими байтовыми значениями [SWS_DM_00633].
  • Передача ответа: структура возвращается в ara::diag в качестве положительного результата операции.
  • Передача ответа по сети: Diagnostic Management, предположительно, берет на себя автоматическое добавление RoutineIdentifier перед полем responseData при сборке ответа UDS (интерпретация: дополнение заголовка протокола демоном) и отправляет общий пакет клиенту [SWS_DM_00633]. Вопрос Q-ccdd2867b87d00d1 (открытый)
Предоставление положительных данных ответа через OperationOutputДиагностический клиентara::diagGenericRoutineRoutineControl RequestВыполнить рутинуOperationOutput instanziierenЗаполнить responseDataВернуть OperationOutputPositive Response (с responseData)

Диаграмма последовательности: типовой процесс предоставления данных через OperationOutput при успешном выполнении рутины. Источники: [SWS_DM_00633], SWS Diagnostics с. 80.

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

Если во время отработки рутины возникает ошибка или переданные входные данные недействительны, сценарий использования OperationOutput прерывается. В случае ошибки приложение, вероятно, передает в Diagnostic Management код ошибки вместо OperationOutput, что инициирует отрицательный ответ UDS (интерпретация: путь обработки ошибок через Result/домен ошибок). Вопрос (открытый) Таким образом, существенным предусловием для использования OperationOutput является полное и безошибочное завершение операции рутины. В качестве постусловия приложение гарантирует, что responseData содержит исключительно полезные данные сообщения положительного ответа и не содержит префиксов протокола, таких как RoutineIdentifier [SWS_DM_00633]. Если рутина завершилась успешно, но не сформировала дополнительных возвращаемых данных, вектор responseData остается пустым SWS Diagnostics с. 70.

Настоящее руководство основано на спецификации AUTOSAR Adaptive для модуля Diagnostics (R25-11). Пояснения опираются на выдержку из спецификации и действуют в рамках задокументированных допущений.

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

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

G nara__diag__GenericRoutine__OperationOutput174 «struct» OperationOutput + responseData

Константы

responseData переменная

Content of positive respose message (without RoutineIdentifier)

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

переменная responseData [SWS_DM_00633] Upstream: RS_AP_00137, RS_Diag_04169, RS_Diag_04224

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

Content of positive respose message (without RoutineIdentifier)

Header-Datei#include "ara/diag/generic_routine.h"
Scopestruct ara::diag::GenericRoutine::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_00633
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00633@rel:R25-11#d78d989e
Content hash
d78d989e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00633
Status: valid/unmigrated Version: rel:R25-11#05a25446 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_00633@rel:R25-11#05a25446
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#85d41a6a2026-09-30
  • R20-11rel:R20-11#bfdc6f692026-10-14
  • R21-11rel:R21-11#bfdc6f692026-10-14
  • R22-11rel:R22-11#816f129b2026-10-14
  • R23-11rel:R23-11#4c6a51d42026-10-14
  • R24-11rel:R24-11#4c6a51d42026-10-14
  • R25-11rel:R25-11#05a254462026-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