структура <DataElement-Namespace>::<DataElementInterface>::<DataElement>ReadOutput
struct <DataElement>ReadOutput {...};
Structure wrapping the out arguments for a ReadOutput
| Header-Datei | #include "<DataElementDirectoryPath>/{<data-element-shortname-lower> }.h" |
|---|---|
| Forwarding-Header | #include "<DataElementDirectoryPath>/{<data-element-shortname-lower> }/<DataElementShortname>_fwd.h" |
| Scope | class <DataElement-Namespace>::<DataElementInterface> |
Руководство пользователяСОЗДАНО ИИ
Инкапсулирует выходные аргументы операции чтения для элемента диагностических данных.
Инкапсулирует выходные аргументы операции чтения для элемента диагностических данных.
В адаптивном модуле диагностики структура <DataElement>ReadOutput служит транспортным контейнером для инкапсуляции всех выходных аргументов операции чтения элемента данных. При поступлении запроса на чтение поставщик службы инстанцирует её, заполняет полученными значениями и возвращает вызывающей стороне. Экземпляры обладают чисто семантикой значений без собственного управления состоянием и, по всей видимости, уничтожаются сразу после обработки. Вопрос (открытый) Возможные ошибки во время запроса обрабатываются (в порядке интерпретации) через механизмы возврата вышестоящей платформенной функции, а не через саму структуру.
Контекст
Структура <DataElement>ReadOutput входит в состав определения интерфейса модуля диагностики (diag) в рамках AUTOSAR Adaptive Platform в релизе R25-11. Её основная роль заключается в том, чтобы служить структурой-обёрткой (wrapper), объединяющей выходные аргументы (out arguments) операции чтения (ReadOutput) для определённого элемента диагностических данных внутри соответствующего <DataElementInterface>. В архитектуре AUTOSAR Adaptive функциональные программные компоненты взаимодействуют с платформенным менеджером диагностики через четко определённые сервисные интерфейсы. При этом <DataElement>ReadOutput выступает в качестве чистого контейнера передачи данных, агрегирующего полезные данные запроса на чтение. Предположительно, эта структура данных служит типом возвращаемого значения асинхронной операции чтения (такой как Read()) внутри диагностического интерфейса <DataElementInterface> для предоставления выходных параметров в сгруппированном виде. Вопрос Q-e3c1110153021b2a (открытый) Благодаря такой инкапсуляции создаётся единый типизированный интерфейс, не требующий передачи указателей или раздельных выходных параметров.
Жизненный цикл
С точки зрения жизненного цикла структура <DataElement>ReadOutput демонстрирует свойства элементарного типа значений. Она не обладает долговременной идентичностью и не проходит через сложные внутренние состояния. Создание выполняется динамически или на стеке тем компонентом, который реализует доступ на чтение к элементу данных и формирует выходные данные. Экземпляры структуры, как правило, передаются по значению (by-value) или через семантику перемещения (move-семантику) и уничтожаются/утилизируются вызывающим диагностическим компонентом либо платформенным фреймворком после завершения операции чтения. Вопрос Q-f7af8c361e9352b0 (открытый) При этом передача владения происходит непосредственно получателю результата чтения. Как только обрабатывающая рутина считывает необходимые данные, структура автоматически освобождается при выходе из области видимости. В отношении параллелизма <DataElement>ReadOutput не предоставляет внутренней синхронизации. Поскольку в штатном потоке вызовов экземпляры передаются исключительно соответствующему вызывающему коду, совместное использование между потоками в стандартном режиме работы не предусмотрено.
Путь использования
Типичный сценарий использования охватывает путь от инициации запроса на чтение до обработки предоставленных выходных параметров. Типичная последовательность выглядит следующим образом:
- Запрос: диагностический клиент или адаптивный фреймворк запрашивает чтение элемента данных через метод интерфейса
<DataElementInterface>. - Инстанцирование и заполнение: предоставляющий программный компонент считывает текущие диагностические данные, создает экземпляр
<DataElement>ReadOutputи заполняет его поля данных полученными значениями. - Возврат: заполненная структура передаётся запрашивающему фреймворку в качестве результата операции.
- Потребление: фреймворк или вызывающий компонент обращается к содержащимся выходным аргументам, форматирует диагностический ответ и завершает обработку запроса.
После успешной передачи и извлечения полей данных экземпляр теряет свою валидность и отбрасывается без дальнейших шагов взаимодействия.
Сценарии ошибок
Интерпретация: сбой операции чтения, как ожидается, отображается не через саму структуру, а через объемлющий механизм результатов или ошибок платформы (например, ara::core::Result или ara::core::Future). Вопрос Q-7d16241843f2d5e6 (открытый) Будучи чистой структурой данных, <DataElement>ReadOutput не объявляет собственных методов, предусловий или кодов ошибок. Если доступ на чтение к элементу данных завершается ошибкой (например, из-за недостаточных прав, недопустимых состояний системы или проблем со связью с нижележащими датчиками), реализующий интерфейс сигнализирует об этой ошибке через вышестоящий платформенный канал ошибок. В таком случае ошибки валидный экземпляр <DataElement>ReadOutput для обработки не предоставляется, что позволяет избежать неверной интерпретации неполных полезных данных на стороне вызывающего кода.
Данное руководство основано на данных спецификации релиза AUTOSAR R25-11 для Adaptive Platform.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал