Инкапсулирует полезные данные положительного ответа UDS без идентификатора сервиса для передачи в Diagnostic Management.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e0f4adf446cbПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Инкапсулирует полезные данные положительного ответа UDS без идентификатора сервиса для передачи в Diagnostic Management.
Структура ara::diag::GenericUDSService::OperationOutput служит в модуле diag выходной структурой для полезных данных сообщений положительного ответа UDS [SWS_DM_00632]. После успешного выполнения обобщенного UDS-сервиса приложение заполняет байтовую переменную responseData и передает экземпляр в Diagnostic Management. При этом идентификатор сервиса UDS (SID) не должен содержаться в responseData, поскольку он автоматически добавляется платформой [SWS_DM_00632]. Для сценариев сбоев и отрицательных ответов структура не предназначена.
Контекст
Структура данных ara::diag::GenericUDSService::OperationOutput служит в рамках AUTOSAR Adaptive Platform в модуле diag стандартизированным выходным каналом для обобщенных UDS-сервисов [SWS_DM_00632]. Она определена в заголовочном файле #include "ara/diag/generic_uds_service.h" и выступает в качестве инкапсуляции для полезных данных успешного выполнения UDS-сервиса [SWS_DM_00632]. Основными участниками взаимодействия являются зависящая от приложения реализация обобщенного обработчика UDS-сервиса, а также вышестоящее Diagnostic Management платформы AUTOSAR_AP_SWS_Diagnostics с. 80. В то время как Diagnostic Management берет на себя координацию с внешним диагностическим тестером, валидацию протокола и базовую инфраструктуру, OperationOutput предоставляет изолированную полезную нагрузку для сообщения положительного ответа UDS [SWS_DM_00632].
Жизненный цикл
Экземпляры ara::diag::GenericUDSService::OperationOutput имеют узконаправленный и кратковременный жизненный цикл. Структура инстанцируется приложением сервиса в локальном контексте входящего UDS-запроса. Через единственную открытую переменную-член responseData типа ara::core::Vector<std::uint8_t> структура принимает полное владение байтами полезных данных [SWS_DM_00632].
Интерпретация: время жизни OperationOutput кратковременно и привязано к длительности обработки соответствующего запроса; экземпляр, вероятно, после заполнения передается в Diagnostic Management посредством возвращаемого значения или семантики перемещения и уничтожается после сериализации в кадр ответа UDS. Вопрос Q-c736182a9518978a (открытый) Поскольку речь идет о чистом объекте передачи данных (DTO) без внутренней логики состояний, переходы состояний отсутствуют. В плане параллелизма OperationOutput не обеспечивает встроенной потокобезопасности; однако, поскольку инстанцирование и заполнение выполняются изолированно для каждого запроса внутри контекста обработки, при штатном использовании сервиса внешняя синхронизация не требуется.
Путь использования
Стандартный порядок действий при обработке диагностического запроса состоит из следующих шагов:
Прием: Diagnostic Management принимает UDS-запрос от внешнего диагностического тестера и перенаправляет его в соответствующий экземпляр GenericUDSServiceAUTOSAR_AP_SWS_Diagnostics с. 81.
Выполнение сервиса: приложение интерпретирует полученные параметры и выполняет внутреннюю диагностическую функцию.
Предоставление результата: при успешной обработке приложение создает экземпляр объекта типа OperationOutput и присваивает полю responseData полезные данные ответа [SWS_DM_00632]. При этом спецификация строго предписывает, что responseData должно содержать исключительно байты данных без идентификатора сервиса (SID) [SWS_DM_00632].
Передача: приложение передает OperationOutput в Diagnostic Management. Интерпретация: передача обычно происходит как синхронное возвращаемое значение или во встроенном виде в асинхронном будущем значении, таком как ara::core::Future. Вопрос Q-2dcf40060cca29a1 (открытый)
Отправка сообщения: Diagnostic Management автоматически добавляет положительный SID в начало, формирует полную UDS-телеграмму и передает ответ диагностическому тестеру.
При использовании структуры необходимо учитывать важные граничные условия и шаблоны поведения в случае ошибки:
Исключение отрицательных ответов: согласно спецификации OperationOutput явно и исключительно представляет содержимое сообщений положительного ответа [SWS_DM_00632]. Интерпретация: если запрос сервиса не может быть успешно обработан (например, из-за недопустимых параметров или недействительных предусловий), OperationOutput создаваться не должен; вместо этого приложение сообщает код отрицательного ответа (NRC) в Diagnostic Management. Вопрос Q-09abb9092c1dc167 (открытый)
Ошибочное включение SID: если идентификатор сервиса по ошибке помещен в responseData, формируется некорректно оформленная UDS-телеграмма, поскольку Diagnostic Management самостоятельно добавляет SID в начало при положительных ответах [SWS_DM_00632].
Выделение памяти: поскольку responseData объявлен как динамический вектор (ara::core::Vector), при выделении очень больших объемов полезных данных необходимо учитывать потенциальную нехватку памяти [SWS_DM_00632].
Данное руководство основано на спецификации AUTOSAR Adaptive Platform Release R25-11 и было создано автоматически.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал