Позволяет приложениям обрабатывать общие запросы SOVD-операций от Diagnostic Manager и отвечать на них.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 23f008b064deПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Позволяет приложениям обрабатывать общие запросы SOVD-операций от Diagnostic Manager и отвечать на них.
Базовый класс служит для реализации общих обработчиков SOVD-операций для обработки запросов на выполнение в Diagnostic Management [SWS_DM_02203]. После инстанцирования приложение активирует прием через Offer(), после чего Diagnostic Manager пересылает входящие запросы через асинхронный интерфейс StartExecution[SWS_DM_02174][SWS_DM_02210]. Переданные содержательные данные и обработчик отмены строго привязаны к длительности операции [SWS_DM_02210].
Контекст
Класс ara::diag::GenericDiagnosticSovdOperation предоставляет общий интерфейс для выполнения операций в рамках ASAM SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02203]. Он служит связующим звеном между диагностической платформой и специфичной для приложения реализацией диагностических процедур или действий. Когда внешний SOVD-клиент запрашивает выполнение операции, экземпляр Diagnostic Server предоставляет соответствующий метод SOVD AUTOSAR_AP_SWS_Diagnostics §7.3.3.5.5.5 «Operations – Start execution of an operation»[SWS_DM_01396]. Как только авторизация или проверка необходимого Proximity Challenge успешно завершена, Diagnostic Manager (DM) передает вызов методу StartExecution зарегистрированного экземпляра обработчика [SWS_DM_02174].
Жизненный цикл
Создание экземпляра выполняется через конструктор с указанием ara::core::InstanceSpecifier, указывающего на PortPrototype, а также типа параллелизма (ConcurrencyType) [SWS_DM_02204]. Поскольку конструктор перемещения [SWS_DM_02206] и оператор перемещающего присваивания [SWS_DM_02207] объявлены как protected, класс спроектирован как базовый для производных специфичных для приложения обработчиков. После инстанцирования объект находится в неактивном состоянии и не принимает запросы. Через Offer() активируется пересылка запросов со стороны Diagnostic Manager [SWS_DM_02211]. С помощью StopOffer() эту пересылку можно снова отключить [SWS_DM_02212]. При удалении экземпляра виртуальный деструктор обеспечивает корректную очистку [SWS_DM_02205]. Конструктор, деструктор и операции перемещения специфицированы как потокобезопасные, тогда как Offer() и StopOffer() не являются потокобезопасными и, как правило, должны вызываться во время фазы инициализации или завершения работы процесса.
Штатная процедура включает предложение обработчика, прием запросов на операции, а также асинхронное предоставление ответа:
Предложить службу: приложение вызывает Offer(), в результате чего Diagnostic Manager получает право пересылать входящие SOVD-запросы объекту [SWS_DM_02211].
Запуск операции: после поступления метода SOVD и успешного прохождения проверки Proximity Challenge DM вызывает чисто виртуальный метод StartExecution[SWS_DM_02174][SWS_DM_02210]. При этом передаются имя операции SOVD (sovd_operation_name), полезные данные (sovd_content_data), метаинформация (meta_info), а также CancellationHandler[SWS_DM_02210].
Возврат результата: метод возвращает ara::core::Future, содержащий либо синхронный ответ (StartSynchronousExecutionResponse), либо асинхронный ответ (StartAsynchronousExecutionResponse) [SWS_DM_02210]. При синхронной операции DM берет данные из результата для формирования тела ответа SOVD (SOVD-Response-Body) [SWS_DM_02176].
Завершить службу: перед уничтожением объекта приложение прекращает пересылку с помощью StopOffer()[SWS_DM_02212].
При использовании интерфейса могут возникать как административные, так и протокольные ошибки:
Уже предлагается: повторный вызов Offer() для уже предложенного экземпляра завершается ошибкой с кодом DiagOfferErrc::kAlreadyOffered[SWS_DM_02211].
Ошибка SOVD: если выполнение операции завершается сбоем, в ara::core::Future должен быть возвращен соответствующий отрицательный код ответа согласно ISO 17978-3 или ASAM SOVD 1.1 [SWS_DM_02210].
Отмена: через переданный объект cancellation_handler приложение уведомляется, если текущий запрос отменяется. Спецификация прямо запрещает сохранять этот обработчик или обращаться к нему за пределами времени жизни текущей операции [SWS_DM_02210]. Кроме того, переданные входные данные в sovd_content_data остаются действительными только до тех пор, пока не будет выполнено соответствующее promise или не будет отменена обработка [SWS_DM_02210].
Это руководство основано исключительно на спецификации AUTOSAR Adaptive Platform R25-11 (модуль diag) и сформировано автоматически.
This Offer will enable the DM to forward request messages to this handler.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e7a3d094ee66ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод Offer класса ara::diag::GenericDiagnosticSovdOperation открывает пересылку входящих диагностических и сервисных требований из Diagnostic Management (DM) в соответствующий обработчик [SWS_DM_02211]. Функция не принимает параметров, объявляет noexcept и возвращает ara::core::Result<void>[SWS_DM_02211]. Интерпретация: поскольку ara::core::Future не возвращается, активация пересылки, вероятно, завершается синхронно во время вызова метода. Вопрос Q-d9213a2118672440 (открытый)
В отношении обработки ошибок интерфейс гарантирует семантику отката [SWS_DM_02211]. Если служба уже предлагалась ранее для этого экземпляра обработчика, вызов завершается неудачно и возвращает код ошибки DiagOfferErrc::kAlreadyOffered[SWS_DM_02211]. Это состояние ошибки соответствует картине ошибок для многократных регистраций, определенной в доменах диагностических ошибок [SWS_DM_00514].
Для параллелизма и контекста вызова действуют следующие ограничения:
Потокобезопасность: операция специфицирована как not thread-safe, однако exception safe[SWS_DM_02211]. Параллельные вызовы на одном и том же экземпляре обработчика должны синхронизироваться на стороне приложения.
Порядок состояний:Offer должен вызываться до пересылки требований [SWS_DM_02211]. Повторный вызов без промежуточного отзыва приводит к ошибке.
В общей системе Offer следует единому шаблону предоставления Adaptive Diagnostic Management, как это аналогично определено также для обобщенных рутин [SWS_DM_00557], служб UDS [SWS_DM_00619] или систем управления связью [SWS_DM_00809]. Этот принцип рассчитан специально для ara::diag, и его нельзя путать с предоставлением служб в ara::com (SWS Diagnostics §7.3.4.1.2 «Monitors»).
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
sovd_operation_name: имя выполняемой операции SOVD [SWS_DM_02210].
sovd_content_data: входные данные операции, которые остаются действительными до тех пор, пока соответствующий Promise не будет выполнен или обработка не будет отменена через обработчик отмены [SWS_DM_02210].
meta_info: дополнительная метаинформация о диагностическом контексте [SWS_DM_02210].
cancellation_handler: сообщает об отмене текущего запроса; этот объект запрещено сохранять или использовать в качестве ссылки за пределами времени жизни операции [SWS_DM_02210].
В качестве возвращаемого значения функция возвращает ara::core::Future с ara::core::Variant из StartSynchronousExecutionResponse или StartAsynchronousExecutionResponse[SWS_DM_02210]. При синхронном выполнении Diagnostic Management формирует параметры в теле ответа SOVD из данных контента ответа [SWS_DM_02176]. При асинхронной обработке Diagnostic Management присваивает уникальный идентификатор (id) для идентификации текущей операции и устанавливает статус выполнения [SWS_DM_02177].
A future with either StartSynchronousExecutionResponse or StartAsynchronousExecutionResponse(for a positive response message) or a SOVD Error (for an negative response message)
Fehler
Fehlercode
Beschreibung
Please use an applicable SOVD error code, as defined in ISO 17978-3 / ASAM SOVD 1.1.
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ab28d5476140ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод StopOffer класса ara::diag::GenericDiagnosticSovdOperation из заголовочного файла ara/diag/generic_diagnostic_sovd_operation.h служит для деактивации пересылки входящих сообщений требований из Diagnostic Management (DM) в операцию [SWS_DM_02212].
Использование и семантика: функция имеет сигнатуру void StopOffer() noexcept;, не принимает параметров и не возвращает значения [SWS_DM_02212]. Поскольку асинхронные типы возврата, такие как фьючерсы или обратные вызовы, не определены, деактивация, вероятно, вступает в силу синхронно непосредственно во время вызова. Вопрос Q-b0723617991a4e39 (открытый) Она объявлена как исключительной безопасности (exception safe) [SWS_DM_02212].
Параллелизм и обработка ошибок: интерфейс специфицирован как непотокобезопасный (not thread-safe) [SWS_DM_02212]. Поэтому параллельные обращения к одному и тому же экземпляру должны синхронизироваться на уровне пользователя. Не возвращаются коды ошибок и не генерируются специфические сообщения DET или DEM [SWS_DM_02212].
Взаимодействие:StopOffer следует стандартизированному шаблону поставщика услуг AUTOSAR Adaptive Diag. Аналогичные методы существуют для других интерфейсов диагностики, таких как обобщенные рутины [SWS_DM_00558], обобщенные службы UDS [SWS_DM_00620], идентификаторы данных [SWS_DM_00639] или службы загрузки [SWS_DM_00793]. Хотя имя заимствовано из ara::com, речь идет о самостоятельной реализации диагностики AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Этот текст был создан ИИ и служит в качестве справочного руководства на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал