Служит универсальным интерфейсом для чтения и записи диагностических данных SOVD на стороне приложения.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e0fb00ce3377ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит универсальным интерфейсом для чтения и записи диагностических данных SOVD на стороне приложения.
Класс ara::diag::GenericDiagnosticSovdContent предоставляет универсальный интерфейс для адаптивных приложений для подключения ресурсов SOVD в системе AUTOSAR [SWS_DM_02186]. После инстанцирования приложение активирует прием диагностических запросов через Offer(), после чего Diagnostic Management асинхронно перенаправляет входящие обращения на чтение и запись в Read() и Write()[SWS_DM_02193]. Перед завершением работы предоставление сервиса должно быть деактивировано с помощью StopOffer(), в то время как выполняющиеся обращения должны учитывать переданный обработчик отмены.
Контекст
Класс ara::diag::GenericDiagnosticSovdContent предоставляет универсальный программный интерфейс, через который адаптивные приложения предлагают и обрабатывают ресурсы данных для сервис-ориентированной диагностики транспортных средств (SOVD) согласно ASAM SOVD [SWS_DM_02186]. В типичном сценарии диагностики участвуют три основных компонента: внешний клиент SOVD, Diagnostic Management (DM) и специализированный обработчик адаптивного приложения.
Данные SOVD структурируются через DiagnosticSovdContent, который состоит из одного или нескольких элементов типа DiagnosticSovdContentElementSWS Diagnostics §7.3.3.3 «Definition of SOVD data». DM обращается к интерфейсу ara::diag::GenericDiagnosticSovdContent для выполнения запросов на чтение или запись всего содержимого, применяя при этом заданные правила преобразования данных SWS Diagnostics §7.3.3.3 «Definition of SOVD data».
Диаграмма контекста: встраивание GenericDiagnosticSovdContent между внешним клиентом SOVD, Diagnostic Management и специализированным обработчиком приложения. Источники: [SWS_DM_01431], [SWS_DM_01432], [SWS_DM_02186].
Жизненный цикл
Инстанцирование выполняется через конструктор с указанием ara::core::InstanceSpecifier, ссылающегося на PortPrototype сущности DiagnosticDataIdentifierGenericInterface, а также режима параллелизма типа SovdContentConcurrencyType[SWS_DM_02187]. Класс спроектирован потокобезопасным и безопасным относительно исключений [SWS_DM_02187].
Конструктор перемещения и оператор присваивания с перемещением определены с защищенной видимостью (protected) [SWS_DM_02189], [SWS_DM_02190]. Интерпретация: защищенное объявление указывает на то, что экземпляры реализуются в виде иерархий производных классов, и прямое перемещение извне должно быть предотвращено. Вопрос Q-57d60744ffc54899 (открытый) Для освобождения ресурсов предусмотрен виртуальный деструктор [SWS_DM_02188].
После конструирования экземпляр находится в состоянии непредоставления сервиса. Только при вызове Offer() DM авторизуется для перенаправления поступающих диагностических запросов экземпляру [SWS_DM_02193]. Перед завершением работы или при прекращении службы перенаправление отзывается с помощью StopOffer()[SWS_DM_02194].
Путь использования
Штатная последовательность включает активацию сервиса, прием асинхронных запросов и заключительную отмену регистрации:
Приложение инстанцирует свою реализацию GenericDiagnosticSovdContent и регистрируется в DM через Offer()[SWS_DM_02193].
Если DM получает от клиента запрос на чтение («Read a data resource from an Entity»), оно вызывает метод Read()[SWS_DM_01432], [SWS_DM_02191]. Метод возвращает ara::core::Future<DiagnosticSovdContentData>, который предоставляет либо абстрактные данные содержимого, либо ошибку SOVD [SWS_DM_02191]. На основе этих данных DM формирует ответ SOVD [SWS_DM_01432], [SWS_DM_02164], [SWS_DM_02165].
Если DM получает запрос на запись («Write a data resource from an Entity»), оно делегирует его обработчику через Write()[SWS_DM_01431], [SWS_DM_02166], [SWS_DM_02192]. Данные остаются действительными до тех пор, пока не будет выполнено соответствующее обещание (promise) или операция не будет отменена [SWS_DM_02192].
Для завершения обработки приложение вызывает StopOffer()[SWS_DM_02194].
Диаграмма последовательности: процесс регистрации сервиса, асинхронной выборки данных при чтении и завершения сервиса. Источники: [SWS_DM_01432], [SWS_DM_02191], [SWS_DM_02193], [SWS_DM_02194].
Сценарии ошибок
Если Offer() вызывается, когда сервис уже предлагается, операция завершается с ошибкой с кодом DiagOfferErrc::kAlreadyOffered[SWS_DM_02193].
Если при определении данных в Read() или при записи в Write() возникают специфичные для приложения ошибки, возвращаемый ara::core::Future выполняется с соответствующей ошибкой SOVD [SWS_DM_02191], [SWS_DM_02192], после чего DM передает клиенту отрицательный ответ SOVD.
Кроме того, в оба вызова передается ara::diag::CancellationHandler, сигнализирующий о преждевременной отмене операции [SWS_DM_02191], [SWS_DM_02192]. Этот обработчик не разрешается сохранять или вызывать после истечения времени жизни операции [SWS_DM_02191], [SWS_DM_02192].
Настоящее руководство основано исключительно на данных спецификации AUTOSAR Adaptive Platform Release R25-11.
This Offer will enable the DM to forward request messages to this handler.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5a32b6fc61beПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод ara::diag::GenericDiagnosticSovdContent::Offer активирует Diagnostic Management (DM) для пересылки входящих сообщений запросов (request messages) в экземпляр обработчика [SWS_DM_02193]. Вызов выполняется синхронно, не принимает параметров и сигнализирует о результате через тип возвращаемого значения ara::core::Result<void>[SWS_DM_02193]. Положительный результат подтверждает успешную регистрацию службы в DM [SWS_DM_02193].
Обработка ошибок
Если регистрация завершается неудачно, метод возвращает ara::core::Result с кодом ошибки [SWS_DM_02193]:
DiagOfferErrc::kAlreadyOffered: возникает, если служба уже предлагалась ранее; при этом действует семантика отката [SWS_DM_02193]. Этот код ошибки соответствует общему статусу диагностики kAlreadyOffered в DiagErrc[SWS_DM_00514], а также DiagReportingErrc[SWS_DM_00560].
Параллелизм и ограничения
Функция специфицирована как noexcept и exception safe[SWS_DM_02193]. Кроме того, она явно классифицирована как thread-safe[SWS_DM_02193]. Это существенно отличает GenericDiagnosticSovdContent::Offer от большинства других методов Offer модуля DM, таких как GenericRoutine::Offer[SWS_DM_00557], GenericUDSService::Offer[SWS_DM_00619] или CommunicationControl::Offer[SWS_DM_00809], каждый из которых объявлен как not thread-safe.
Взаимодействие
Предоставление через Offer является необходимым условием для того, чтобы DM мог пересылать запросы в приложение [SWS_DM_02193]. Пока предоставление не выполнено, DM не может обслуживать запросы к интерфейсу, что соответствует общему принципу предоставления в управлении диагностикой AUTOSAR [SWS_DM_01525], [SWS_DM_01527]. Именование следует установившемуся шаблону в DM, который был выбран аналогично службам мониторов AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Данное указание по использованию основано на спецификации AUTOSAR Adaptive Platform Release R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
Called for "Read Single Data Value request" for the specified SOVD Content.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e27f0077c84cПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование и семантика вызова
Чисто виртуальный метод Read класса ara::diag::GenericDiagnosticSovdContent служит для обработки запросов типа «Read Single Data Value» для указанного контента SOVD [SWS_DM_02191]. При вызове диспетчером Diagnostic Manager передаются идентификатор контента sovd_content_name, контекстная диагностическая информация через meta_info, а также cancellation_handler[SWS_DM_02191]. С помощью cancellation_handler приложение может проверить, не был ли отменен текущий запрос; этот экземпляр запрещено сохранять или ссылаться на него за пределами времени жизни операции [SWS_DM_02191]. Предоставление данных выполняется асинхронно через возвращаемое значение ara::core::Future<DiagnosticSovdContentData>, которое в случае успеха инкапсулирует абстрактные данные контента SOVD [SWS_DM_02191].
Обработка ошибок
Метод специфицирован как noexcept и exception safe, так что возникающие ошибки не должны сообщаться через исключения C++ [SWS_DM_02191]. Вместо этого в случае ошибки через ara::core::Future возвращается соответствующий SOVD Error, который преобразуется в сообщение с отрицательным ответом [SWS_DM_02191]. Если интерфейс еще не предоставлен или больше не предоставляется приложением с помощью offer(), Diagnostic Manager отвечает на входящие запросы служб кодом отрицательного ответа NRC 0x94 (ResourceTemporarilyNotAvailable) [SWS_DM_01257].
Параллелизм и взаимодействие
Интерфейсная функция определена как thread-safe[SWS_DM_02191]. Разрешено ли диспетчеру Diagnostic Manager одновременно вызывать операции чтения и записи, определяется конфигурационной переменной readWrite в структуре ara::diag::SovdContentConcurrencyType[SWS_DM_02185]. Только если она установлена в kConcurrent, вызовы Read и Write происходят параллельно, тогда как значение по умолчанию kNotConcurrent исключает одновременные обращения [SWS_DM_02185].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
This StopOffer will disable the forwarding of request messages from DM.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a2e6fc88edb0ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод ara::diag::GenericDiagnosticSovdContent::StopOffer прекращает предоставление диагностического контента модулю Diagnostic Management (DM) и блокирует пересылку входящих сообщений требований с момента вызова [SWS_DM_02194]. Функция требует заголовочный файл ara/diag/generic_diagnostic_sovd_content.h, не ожидает параметров и не возвращает значения [SWS_DM_02194].
В отношении обработки ошибок операция объявлена как noexcept и считается полностью исключительной безопасности (exception safe) [SWS_DM_02194]. Не передаются ни коды ошибок, ни статус возврата; сбой вызова не предусмотрен в дизайне API.
В плане параллелизма метод выделяется тем, что он явно специфицирован как потокобезопасный (thread-safe) [SWS_DM_02194]. Это представляет собой существенную особенность по сравнению со многими другими диагностическими интерфейсами, в которых StopOffer определен как непотокобезопасный, как, например, у GenericUDSService[SWS_DM_00620], GenericRoutine[SWS_DM_00558] или CommunicationControl[SWS_DM_00810].
Схема именования и поведения следует общему шаблону AUTOSAR для механизмов Offer и StopOffer для управления потоком сообщений между DM и обработчиками приложений AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». Интерпретация: вызов, вероятно, типично выполняется перед уничтожением объекта обработчика или при временной недоступности службы SOVD, чтобы надежно предотвратить появление повисших запросов. Вопрос Q-5a2db04b82fed06b (открытый)
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
Called for "Write a Data Value" request for the specified SOVD Content.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 545b938dce05Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод [SWS_DM_02192] класса ara::diag::GenericDiagnosticSovdContent вызывается модулем Diagnostic Management (DM), как только через ASAM SOVD принимается метод «Write a data resource» для диагностического элемента [SWS_DM_02166]. Предоставление этой операции записи является опциональным и предполагает наличие конфигурации DiagnosticSovdData.DiagnosticSovdMethod.put[SWS_DM_01431].
При вызове DM передает следующие параметры [SWS_DM_02192]:
sovd_content_name: имя адресуемого контента SOVD.
sovd_abstract_content_data: абстрактные полезные данные (DiagnosticSovdContentData), составленные из имени элемента и преобразованного значения [SWS_DM_02166]. Эти данные остаются действительными до тех пор, пока Promise не будет выполнен или обработка не будет отменена через обработчик отмены (Cancellation Handler).
meta_info: дополнительная метаинформация о контексте запроса.
cancellation_handler: служит для распознавания отмены текущей операции и не должен сохраняться или использоваться в качестве ссылки за пределами времени жизни функции.
Функция специфицирована как noexcept, считается исключительной безопасности и возвращает ara::core::Future<void>, который в случае успеха передает void или при отрицательном ответе ошибку SOVD [SWS_DM_02192]. Метод объявлен как потокобезопасный [SWS_DM_02192]; разрешено ли DM параллельно выполнять методы чтения и записи, регулирует параметр readWrite в ara::diag::SovdContentConcurrencyType[SWS_DM_02185].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал