Можно сконфигурировать сервисную идентификацию экземпляра для необходимых и обеспеченных портов в адаптивном компоненте AUTOSAR. Когда вы создаете адаптивную модель компонента программного обеспечения:
Экспортируемые файлы ARXML включают сервисный файл манифеста экземпляра, который описывает отображение экземпляра порта к сервису.
Сгенерированный Код С++ использует сконфигурированную сервисную информацию об экземпляре в ara::com
вызовы функции.
Сконфигурировать сервисную идентификацию экземпляра:
Откройте Словарь AUTOSAR и выберите XML Options. Установите опцию XML Identify Service Instance Using указывать на форму, в которой можно сгенерировать сервисную информацию об экземпляре. Выберите InstanceIdentifier
или InstanceSpecifier
. Форма, которую вы выбираете, используется, чтобы идентифицировать сервисные экземпляры в сгенерированных функциях Прокси и Скелета.
Перейдите к требуемым портам и обеспеченным представлениям портов в словаре. Выберите каждый перечисленный порт, чтобы отобразить его Manifest attributes. Для каждого порта, на основе сервисного экземпляра формируют вас выбранный в опциях XML, исследуют значение на Instance Specifier или Instance Identifier, .You может ввести значение или принять существующее значение.
Создавание модели генерирует сервисный файл манифеста экземпляра
. Файл манифеста описывает сервисное развертывание интерфейса, сервисный экземпляр к отображению порта и сервисные интерфейсы для адаптивного компонента.model
_ServiceInstanceManifest.arxml
В сгенерированном Коде С++, ara::com
вызовы функции используют сконфигурированную сервисную информацию об экземпляре. Например, если вы выбрали InstanceIdentifier
сформируйтесь и установите Instance Identifier на 1 для требуемого порта, сгенерированные вызовы функции используют ту настройку.
// Model initialize function void autosar_LaneGuidanceModelClass::initialize() { { ara::com::ServiceHandleContainer< company::chassis::required::proxy:: RequiredInterfaceProxy::HandleType > handles; handles = company::chassis::required::proxy::RequiredInterfaceProxy:: FindService(ara::com::InstanceIdentifier("1")); ...