Инкапсулирует элемент диагностического содержимого SOVD вместе с идентификатором ключа для операций чтения и записи.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 816c129f74baПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Инкапсулирует элемент диагностического содержимого SOVD вместе с идентификатором ключа для операций чтения и записи.
Класс служит для инкапсуляции элемента диагностического содержимого SOVD вместе с уникальным идентификатором ключа [SWS_DM_02375]. Он заполняется Diagnostic Management при операциях записи согласно ASAM SOVD и передается далее в GenericDiagnosticSovdContent::Write[SWS_DM_02166]. Все функции-члены специфицированы как потокобезопасные и исключебно-безопасные, при этом ошибочные присваивания сообщаются через ara::core::Result с DiagErrc::kInvalidArgument[SWS_DM_02381].
Контекст
Класс ara::diag::DiagnosticSovdContentElementDataWithKey служит в рамках Adaptive Platform капсулой данных для отдельного элемента диагностического содержимого в контексте ASAM SOVD (Service-Oriented Vehicle Diagnostics) и сопоставляет объекту полезных данных уникальный идентификатор ключа [SWS_DM_02375]. Данные SOVD структурируются через элемент модели DiagnosticSovdContent, состоящий как минимум из одного DiagnosticSovdContentElementAUTOSAR_AP_SWS_Diagnostics §7.3.3.3.2 «SOVD Data – Conversion». В то время как запросы на чтение обрабатываются через GenericDiagnosticSovdContent::Read[SWS_DM_01432], класс взаимодействует преимущественно с Diagnostic Management (DM) и сервисным интерфейсом GenericDiagnosticSovdContent::Write для выполнения структурированного доступа на запись к ресурсам данных [SWS_DM_01431], [SWS_DM_02166].
Жизненный цикл
Инстанцирование и уничтожение ara::diag::DiagnosticSovdContentElementDataWithKey осуществляются с соблюдением принципа RAII. Деструктор, а также соответствующие операции копирования и перемещения (конструкторы перемещения/копирования и операторы присваивания) явно объявлены как noexcept[SWS_DM_02376]. Что касается отношений владения, класс принимает полезное содержимое по значению в SetContent[SWS_DM_02381], тогда как имя ключа передается как ara::core::StringView[SWS_DM_02378]. Diagnostic Management, предположительно, внутренне гарантирует, что базовая строка остается действительной во время доступа или копируется во внутреннюю память. Вопрос Q-f00f62f43629a773 (открытый) Все функции-члены класса, согласно спецификации, спроектированы как потокобезопасные и исключебно-безопасные [SWS_DM_02376], [SWS_DM_02377], [SWS_DM_02378], [SWS_DM_02379], [SWS_DM_02380], [SWS_DM_02381].
Путь использования
Типичный сценарий использования возникает при получении запроса на запись SOVD для ресурса данных сущности [SWS_DM_01431]. Diagnostic Management создает или использует экземпляр и сначала с помощью SetName задает shortName соответствующего DiagnosticSovdContentElement[SWS_DM_02166], [SWS_DM_02378]. Затем входящее значение преобразуется на основе правил конвертации AUTOSAR_AP_SWS_Diagnostics §7.3.3.3.2 «SOVD Data – Conversion» и присваивается через SetContent[SWS_DM_02166], [SWS_DM_02381]. Агрегированные таким образом данные затем передаются в GenericDiagnosticSovdContent::Write[SWS_DM_02166]. Потребители могут запросить имя ключа через GetName[SWS_DM_02377] и проверить либо изменить содержимое данных через константную или неконстантную перегрузку GetContent[SWS_DM_02379], [SWS_DM_02380].
В случае ошибки класс отказывается от исключений C++ и сообщает о сбоях через возвращаемый тип ara::core::Result<void> метода SetContent[SWS_DM_02381]. Если установка содержимого не удалась — например, если переданный тип содержимого не соответствует целевой структуре или является недействительным, — возвращается код ошибки DiagErrc::kInvalidArgument[SWS_DM_02381]. Вызывающая сторона должна проверить возвращенный результат перед передачей объекта в GenericDiagnosticSovdContent::Write[SWS_DM_02166].
Настоящее руководство по классу основано на спецификации AUTOSAR AP выпуска R25-11. Все утверждения подтверждены требованиями SWS и разделами документации интерфейса ara::diag.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал