Служит для передачи и управления состоянием линии активации DoIP для Diagnostic Manager.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f91d71d289e3ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит для передачи и управления состоянием линии активации DoIP для Diagnostic Manager.
Класс ara::diag::DoIPActivationLine позволяет приложению предоставлять состояние линии активации DoIP и передавать изменения в Diagnostic Manager [SWS_DM_00830]. После инстанцирования на основе портов служба активируется с помощью Offer(), после чего DM запрашивает статус линии и ID сети и принимает изменения статуса через UpdateActivationLineState()[SWS_DM_00834]. В качестве ключевого граничного условия соответствующий сетевой интерфейс должен быть сконфигурирован в модели как зависимый от линии активации [SWS_DM_00833].
Контекст
Класс ara::diag::DoIPActivationLine представляет интерфейс DiagnosticDoIPActivationLineInterface согласно [SWS_DM_00830]. Он позволяет Adaptive Application (AA) сообщать и предоставлять физическое или логическое состояние линии активации DoIP в Diagnostic Manager (DM). Через эту линию активации приложение косвенно управляет отправкой сообщений объявления транспортного средства DoIP (Vehicle Announcement Messages), как указано в AUTOSAR_AP_SWS_Diagnostics, с. 107, без явного самостоятельного инициирования отправки.
Во взаимодействии в основном участвуют три компонента: реализующее Adaptive Application, экземпляр ara::diag::DoIPActivationLine в качестве сервисного интерфейса, а также Diagnostic Manager базовой системы. Если DM обнаруживает через этот интерфейс изменение состояния линии активации, он уведомляет зависимые сетевые интерфейсы и запускает стандартизированные процедуры DoIP [SWS_DM_00816].
Экземпляр ara::diag::DoIPActivationLine создается через ara::core::InstanceSpecifier, который ссылается на PortPrototype[SWS_DM_00831]. Класс представляет собой уникальный экземпляр: конструкторы копирования и перемещения, а также операторы присваивания с копированием и перемещением удалены (=delete), что исключает перемещение или дублирование ([SWS_DM_01631], [SWS_DM_01632], [SWS_DM_01633], [SWS_DM_01634]).
После инстанцирования объект находится в состоянии «не предлагается». Вызов Offer() активирует предоставление, позволяя DM прослушивать изменения состояния линии активации [SWS_DM_00836]. С помощью StopOffer() это предоставление снова деактивируется [SWS_DM_00837]. Виртуальный деструктор объявлен как стандартный деструктор и освобождает ресурсы [SWS_DM_00832]. Что касается параллелизма, конструктор [SWS_DM_00831], а также запросы только для чтения GetActivationLineState()[SWS_DM_00835] и GetNetworkInterfaceId()[SWS_DM_00833] выполнены потокобезопасными, тогда как Offer()[SWS_DM_00836], StopOffer()[SWS_DM_00837] и UpdateActivationLineState()[SWS_DM_00834] не являются потокобезопасными.
Путь использования
Регулярный процесс включает наследование и регистрацию специфичного для приложения класса, а также непрерывную передачу состояния:
Инстанцирование: Adaptive Application инстанцирует производный класс с указанием подходящего InstanceSpecifier[SWS_DM_00831].
Предложение службы: приложение вызывает Offer(), чтобы открыть интерфейс для DM [SWS_DM_00836].
Опрос сети и начальный опрос: DM определяет соответствующий ID интерфейса через чисто виртуальный метод GetNetworkInterfaceId()[SWS_DM_00833] и запрашивает текущее состояние линии с помощью GetActivationLineState()[SWS_DM_00835]. Оба метода возвращают ara::core::Future.
Обновление состояния: если физическое состояние линии изменяется (например, изменение уровня на аппаратной линии), приложение синхронно информирует DM через UpdateActivationLineState()[SWS_DM_00834]. Это побуждает DM к последующим действиям, таким как отправка сообщений о состоянии сетевым интерфейсам [SWS_DM_00816].
Завершение: перед завершением работы или при деактивации приложение вызывает StopOffer()[SWS_DM_00837].
При использовании ara::diag::DoIPActivationLine могут возникать функциональные ошибки и ошибки конфигурации:
Нарушения модели и портов при создании: конструктор проверяет валидность InstanceSpecifier[SWS_DM_00831]. Если разрешение завершается сбоем, инициируются стандартизированные сообщения о нарушениях: InstanceSpecifierMappingIntegrityViolation (недопустимый элемент модели), PortInterfaceMappingViolation (порт не типизирован с помощью DiagnosticDoIPActivationLineInterface), ProcessMappingViolation (отсутствует привязка к процессу) или InstanceSpecifierAlreadyInUseViolation (Specifier уже занят в рамках процесса).
Повторное предложение: если Offer() вызывается, когда служба уже предлагается, операция завершается ошибкой с кодом ошибки DiagOfferErrc::kAlreadyOffered[SWS_DM_00836].
Несогласованность конфигурации сетевого интерфейса: если приложение сообщает через GetNetworkInterfaceId() ID интерфейса, соответствующий DoIpNetworkConfiguration которого обладает свойством isActivationLineDependent = 'FALSE', то согласно спецификации это явно считается серьезной ошибкой конфигурации [SWS_DM_00833].
Безопасность исключений: в то время как конструктор, геттеры, Offer(), StopOffer() и деструктор специфицированы как безопасные к исключениям (exception safe), UpdateActivationLineState() явно обозначен как небезопасный к исключениям (not exception safe) [SWS_DM_00834]. Поэтому ошибки внутри этого вызова должны тщательно обрабатываться вызывающим приложением.
Данное руководство основано исключительно на требованиях спецификации AUTOSAR AP Release 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 DiagnosticDoIpActivationLinePortMapping needs to be typed by a DiagnosticDoIPActivationLineInterface. 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 DiagnosticDoIPActivationLineInterface
Request a governed re-review of this record. The record is not changed immediately.
network interface id for which this activation line is responsible.
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Hinweise: If the reported DoIpNetworkConfiguration.networkInterfaceId belongs to a DoIpNetworkConfiguration with property isActivationLineDependent = ’FALSE’, this is an error!
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to listen to activation line state changes.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3534ff4305bfПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Синхронный метод Offer класса ara::diag::DoIPActivationLine ([SWS_DM_00836], заголовочный файл #include "ara/diag/doip_activationline.h") переводит Diagnostic Management (DM) в состояние, позволяющее фиксировать изменения статуса линии активации. Операция не имеет входных параметров и сообщает результат через возвращаемый тип ara::core::Result<void>.
Как только интерфейс был предоставлен с помощью Offer, DM отслеживает линию активации. Если DM обнаруживает переход в состояние «active», он инициирует отправку сообщений об объявлении автомобиля (Vehicle Announcement Messages) согласно ISO 13400-2 на соответствующих сетевых интерфейсах ([SWS_DM_00816], AUTOSAR_AP_SWS_Diagnostics §[SWS_DM_00816] с. 106). Интерпретация: вызов Offer, вероятно, обычно происходит на этапе инициализации приложения, чтобы заблаговременно фиксировать изменения состояния. Вопрос Q-254ced2fd3a1e3d2 (открытый)
В случае ошибки соответствующий код ошибки возвращается в Result. Если метод вызывается повторно для того же экземпляра, пока служба уже предлагается, он возвращает код ошибки DiagOfferErrc::kAlreadyOffered с семантикой отката ([SWS_DM_00836]).
С точки зрения параллелизма метод специфицирован как непотокобезопасный (not thread-safe) ([SWS_DM_00836]). Поэтому одновременные вызовы на одном и том же экземпляре должны синхронизироваться на стороне приложения. Благодаря объявлению как noexcept функция является полностью exception-safe ([SWS_DM_00836]).
Данное указание по использованию основано на спецификации AUTOSAR Adaptive Platform Release R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
This StopOffer will disable the provision of activation line state to DM.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 668b8f5f37f2ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод ara::diag::DoIPActivationLine::StopOffer завершает предоставление состояния линии активации DoIP (Activation Line) для Diagnostic Management (DM) согласно [SWS_DM_00837].
Функция имеет сигнатуру void StopOffer() noexcept и выполняется синхронно на экземпляре ara::diag::DoIPActivationLine (AUTOSAR_AP_SWS_Diagnostics §5 «Overview»). Она не принимает параметров и не возвращает значения. Посредством вызова отключается активная передача изменений состояния линии активации в Diagnostic Manager.
В отношении обработки ошибок метод специфицирован как exception safe и гарантирует через noexcept, что исключения не генерируются ([SWS_DM_00837]). Поскольку операция, согласно спецификации, является not thread-safe, вызовы на одном и том же экземпляре не должны выполняться без защиты параллельно из нескольких потоков; параллельные обращения обязательно требуют синхронизации на стороне приложения.
Шаблон проектирования следует номенклатуре предоставления служб, принятой в Adaptive-платформе (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»). В то время как StopOffer в родственных DoIP-классах, таких как ara::diag::DoIPGroupIdentification ([SWS_DM_00726]) или ara::diag::DoIPPowerMode ([SWS_DM_00736]), отключает пересылку входящих DM-запросов, здесь он специфически останавливает передачу состояния линии активации в DM. Интерпретация: для согласованного хода работы, вероятно, предполагается, что перед вызовом StopOffer уже было активно инициировано предоставление через тот же экземпляр. Вопрос Q-c5d38151ef8198e7 (открытый)
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: becd58166c09ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод UpdateActivationLineState класса ara::diag::DoIPActivationLine служит для передачи текущего статуса линии активации DoIP в адаптивное Diagnostic Management [SWS_DM_00834] (AUTOSAR_AP_SWS_Diagnostics §8.32.1.1.3.5). Объявление предоставляется через заголовочный файл ara/diag/doip_activationline.h.
Использование и параметры:
Параметры: булев входной параметр activation_line_state сигнализирует системе, активна ли линия активации (TRUE) или неактивна (FALSE) [SWS_DM_00834].
Возвращаемое значение: операция не имеет возвращаемого значения (void) и работает синхронно.
Параллелизм и ограничения:
Потокобезопасность: функция явно специфицирована как not thread-safe[SWS_DM_00834]. Интерпретация: вызовы к одному и тому же экземпляру DoIPActivationLine должны синхронизироваться вызывающим приложением во избежание конфликтов данных. Вопрос Q-d1c43b8ffc4bdcff (открытый)
Обработка ошибок: метод объявлен как not exception safe[SWS_DM_00834]. Специфические коды ошибок или исключения не определены; вызывающее приложение в штатном случае не сможет перехватить никаких исключений. Вопрос Q-394304b9d771cf69 (открытый)
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал