Позволяет адаптивным приложениям предоставлять идентификацию DoIP-сущности для управления диагностикой.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 73f8b2cf1d2eПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Позволяет адаптивным приложениям предоставлять идентификацию DoIP-сущности для управления диагностикой.
Класс ara::diag::DoIPEntityIdentification позволяет адаптивным приложениям динамически предоставлять идентификацию сущности (EID) для диагностического протокола DoIP [SWS_DM_01361]. После создания экземпляра приложение активирует пересылку с помощью Offer() и отвечает на запросы Diagnostic Management через чисто виртуальный метод GetEntityId() асинхронно с помощью Future [SWS_DM_01366], [SWS_DM_01367]. Если интерфейс при запросе еще не предоставлен, управление диагностикой отправляет в качестве замены стандартизированное значение 0xFF[SWS_DM_01528].
Контекст
Класс ara::diag::DoIPEntityIdentification служит для динамического предоставления идентификации сущности (EID) для протокола DoIP (Diagnostic over IP) [SWS_DM_01361]. В среде AUTOSAR Adaptive он образует функциональный мост между индивидуальным адаптивным приложением и Diagnostic Management (DM) AUTOSAR_AP_SWS_Diagnostics, с. 107. Если в конфигурации DoIpNetworkConfiguration.eidRetrieval установлен режим DoIpEidRetrievalEnum.eidUseApi, Diagnostic Management запрашивает EID через этот программный интерфейс [SWS_DM_01361]. Привязка к архитектуре программного обеспечения осуществляется через ara::core::InstanceSpecifier, который ссылается на PortPrototype компонента DiagnosticDoIPEntityIdentificationInterface[SWS_DM_01364].
Жизненный цикл
Создание выполняется через явный конструктор, которому помимо InstanceSpecifier передается параметр ConcurrencyType (kConcurrent или kNotConcurrent) [SWS_DM_01364]. Последний определяет, должны ли последующие обращения к интерфейсу обрабатываться потокобезопасно [SWS_DM_01364], [SWS_DM_01366]. После конструирования объект изначально остается в неактивном состоянии. Путем вызова Offer() интерфейс активируется для Diagnostic Management и включается пересылка запросов обработчику [SWS_DM_01367]. Перед уничтожением объекта или при завершении работы StopOffer() снова блокирует пересылку [SWS_DM_01368]. Уничтожение в итоге осуществляется через виртуальный деструктор [SWS_DM_01365]. Ни Offer(), ни StopOffer(), ни деструктор не являются потокобезопасными и поэтому требуют скоординированной синхронизации в коде приложения [SWS_DM_01365], [SWS_DM_01367], [SWS_DM_01368].
В типичном сценарии использования адаптивное приложение наследует собственный класс реализации от ara::diag::DoIPEntityIdentification и переопределяет чисто виртуальный метод GetEntityId()[SWS_DM_01366]. После создания экземпляра с действительным идентификатором приложение регистрирует обработчик с помощью Offer()[SWS_DM_01367]. Как только Diagnostic Management требуется ID сущности для формирования DoIP-сообщений, оно вызывает GetEntityId()[SWS_DM_01361], [SWS_DM_01366]. Метод возвращает ara::core::Future<EntityId>, благодаря чему идентификационные данные могут определяться и предоставляться асинхронно [SWS_DM_01366]. По окончании функционирования приложение отзывает предложение через StopOffer()[SWS_DM_01368].
Ошибочные конфигурации модели при конструировании приводят к специфическим нарушениям времени выполнения: если InstanceSpecifier не удается разрешить в модели или он не указывает на PortPrototype, возникает InstanceSpecifierMappingIntegrityViolation[SWS_DM_01364]. Если отображение портов не указывает на DiagnosticDoIPEntityIdentificationInterface, имеет место PortInterfaceMappingViolation, в то время как отсутствие сопоставления процессов вызывает ProcessMappingViolation[SWS_DM_01364]. При многократном использовании одного и того же идентификатора в процессе следует InstanceSpecifierAlreadyInUseViolation[SWS_DM_01364].
Если Offer() вызывается в момент, когда служба уже активно предлагается, метод возвращает ara::core::Result с кодом ошибки DiagOfferErrc::kAlreadyOffered[SWS_DM_01367]. Если Diagnostic Management не удается запросить EID — например, потому что интерфейс на момент запроса еще не был предложен, — вступает в действие определенный резервный механизм протокола: Diagnostic Management отправляет в DoIP-сообщениях в качестве замены 6-байтовое значение EID 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF[SWS_DM_01528].
Данное руководство было сгенерировано ИИ-ассистентом на основе спецификации AUTOSAR Adaptive R25-11.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype.
PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticDoIpEntityIdentificationPortMapping needs to be typed by a DiagnosticDoIPEntityIdentificationInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDoIPEntityIdentificationInterface.
concurrencyType
Specifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent)..
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to forward request messages to this handler.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 60c723a50d6cПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод Offer класса ara::diag::DoIPEntityIdentification включает пересылку входящих запросов DoIP демоном Diagnostic Management Daemon (DM) зарегистрированному обработчику ([SWS_DM_01367]). Сообщения передаются обработчику только после успешного вызова. Интерпретация: вызов, как правило, выполняется на этапе инициализации Adaptive Application до того, как должны приниматься диагностические сообщения. Вопрос Q-4b78d4f80bda63a4 (открытый)
Использование и семантика:
Контекст вызова: операция выполняется синхронно и объявлена как noexcept; она не генерирует исключений ([SWS_DM_01367]).
Возвращаемое значение: она возвращает ara::core::Result<void>, который в случае успеха не содержит значения ([SWS_DM_01367]).
Обработка ошибок:
Если интерфейс для данного экземпляра уже был предложен, вызов завершается сбоем и возвращает код ошибки DiagOfferErrc::kAlreadyOffered с семантикой отката ([SWS_DM_01367]).
Параллелизм и ограничения:
Интерфейс специфицирован как not thread-safe ([SWS_DM_01367]). Одновременные вызовы на одном и том же экземпляре должны синхронизироваться вызывающим приложением.
This StopOffer will disable the forwarding of request messages from DM.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2e0edce0b8e6ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод ara::diag::DoIPEntityIdentification::StopOffer прекращает предоставление службы идентификации сущности DoIP и деактивирует пересылку сообщений-запросов из Diagnostic Management (DM) приложению [SWS_DM_01368]. Интерфейс предоставляется через заголовочный файл ara/diag/doip_entity_identification.h. Он не принимает параметров и не возвращает значения (void) [SWS_DM_01368]. Интерпретация: поскольку сигнатура не предусматривает ни объекта Future, ни уведомления через callback, вызов, вероятно, выполняется синхронно с блокировкой до тех пор, пока пересылка в DM не будет прекращена. Вопрос Q-75f67df3a003b08f (открытый)
Обработка ошибок и безопасность исключений
Операция объявлена со спецификатором noexcept и специфицирована как исключеннобезопасная (exception safe) [SWS_DM_01368]. Специфические коды ошибок не возвращаются, и исключения не генерируются.
Параллелизм и ограничения
Что касается среды выполнения, метод классифицирован как не потокобезопасный (not thread-safe) [SWS_DM_01368]. Если выполняются параллельные вызовы или обращения к одному и тому же экземпляру ara::diag::DoIPEntityIdentification, они должны синхронизироваться на стороне приложения.
Взаимодействие
Поведение вписывается в единый шаблон жизненного цикла AUTOSAR Adaptive Diagnostic Management. Сравнимое отключение пересылки сообщений происходит, например, при идентификации групп через [SWS_DM_00726], а также у диагностических переключателей и мониторов через [SWS_DM_01089]. Как подчеркивается в AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors», наименование Offer и StopOffer ориентируется на шаблоны из ara::com, однако представляет собой самостоятельную реализацию для диагностических интерфейсов.
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал