Служит для приема и возврата полезных данных при положительных ответах обобщенных сервисов рутин.
СОЗДАНО ИИне провереноМодель: 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, который перенаправляется диагностическим уровнем в соответствующий экземпляр GenericRoutineSWS Diagnostics с. 84.
Выполнение: адаптивное приложение выполняет запрошенную рутину и обрабатывает входные параметры.
Формирование результата: после успешного выполнения приложение создает экземпляр OperationOutput и заполняет responseData результирующими байтовыми значениями [SWS_DM_00633].
Передача ответа: структура возвращается в ara::diag в качестве положительного результата операции.
Передача ответа по сети: Diagnostic Management, предположительно, берет на себя автоматическое добавление RoutineIdentifier перед полем responseData при сборке ответа UDS (интерпретация: дополнение заголовка протокола демоном) и отправляет общий пакет клиенту [SWS_DM_00633]. Вопрос Q-ccdd2867b87d00d1 (открытый)
Диаграмма последовательности: типовой процесс предоставления данных через 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.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал