Адаптивная платформа AUTOSAR определяет сервисно-ориентированную, основанную на событиях связь между адаптивными программными компонентами. Каждый адаптивный программный компонент предоставляет и использует услуги, а взаимосвязанные компоненты отправляют и получают события обслуживания. Компонент содержит:
Алгоритм, который выполняет задачи в ответ на полученные события.
Необходимые и предоставленные порты, через которые принимаются и отправляются события.
Сервисные интерфейсы, которые обеспечивают среду для обмена данными на основе событий.
Чтобы смоделировать адаптивную коммуникацию услуг в Simulink®, можно:
Создайте требуемые и предоставленные порты AUTOSAR, сервисные интерфейсы, события сервисного интерфейса и пространства имен C++.
Создайте входные и выходные порты корневого уровня и сопоставьте их с необходимыми AUTOSAR и предоставленными портами и событиями сервисного интерфейса.
Если у вас есть Simulink Coder™ и Embedded Coder® Вы можете сгенерировать код С++ и описание ARXML для связи с сервисом AUTOSAR.
Для реализации адаптивной сервисной коммуникации в Simulink:
Откройте модель, настроенную для адаптивной платформы AUTOSAR. Отображает в этом примере использование модели autosar_LaneGuidance
.
Откройте словарь AUTOSAR и выберите Service Interfaces. Для создания сервисного интерфейса AUTOSAR нажмите кнопку Add. В диалоговом окне Add Interfaces укажите имя интерфейса и количество связанных событий.
Разверните узел Service Interfaces. Разверните новый интерфейс сервиса и выберите Events. В представлении событий выберите каждое событие сервиса и сконфигурируйте его атрибуты.
Выберите Namespaces. Представление пространств имен позволяет вам задать уникальное пространство имен для каждого служебного интерфейса. Генератор кода использует заданное пространство имен при создании кода С++ для интерфейса. Чтобы изменить или создать спецификацию пространства имен, выберите элемент пространства имен и измените значение имени. Для примера это представление пространств имен задает пространство имен company::chassis::provided
для служебного интерфейса ProvidedInterface
.
На верхнем уровне словаря AUTOSAR разверните AdaptiveApplications и компонент адаптивного программного обеспечения. Используйте представления RequiredPorts и ProvidedPorts для добавления требуемых и предоставленных портов AUTOSAR, которые необходимо связать с новым сервисным интерфейсом. Для каждого нового сервисного порта выберите созданный сервисный интерфейс.
Вы также можете настроить идентификацию адаптивного образца службы для портов AUTOSAR. В RequiredPorts или ProvidedPorts виде выберите порт и просмотрите его Manifest attributes. На основе формы образца службы, выбранной в опциях XML, исследуйте значение для Instance Specifier или Instance Identifier. Можно ввести значение или принять существующее значение. Дополнительные сведения см. в разделе Настройка идентификатора адаптивного Образце AUTOSAR.
Опционально для необходимых портов AUTOSAR можно сконфигурировать обнаружение услуг, что влияет на то, как адаптивные приложения находят динамические сервисы. В представлении RequiredPorts выберите порт и сконфигурируйте его Service Discovery Mode. Выберите OneTime
или DynamicDiscovery
. Дополнительные сведения см. в разделе Настройка режимов обнаружения адаптивных служб AUTOSAR.
Во вдове модели, чтобы смоделировать адаптивные сервисные порты AUTOSAR, создайте входные и выходные порты корневого уровня.
Откройте редактор Отображения. Используйте вкладки Inports и Outports, чтобы сопоставить входные и выходные порты Simulink с требуемыми и предоставленными портами AUTOSAR. Для каждого входного или выходного порта выберите требуемый или обеспечиваемый порт AUTOSAR и событие интерфейса службы AUTOSAR.
Вы также можете настроить выделение памяти для служебных данных, отправленных из портов, предоставленных AUTOSAR. На вкладке Outports выберите порт и используйте атрибут кода AllocateMemory
для настройки выделения памяти. Укажите, отправлять ли данные о событиях по ссылке (по умолчанию) или по ara::com
выделенная память. Отправка данных о событиях по ara::com
выделенная память, выберите значение true
. Чтобы отправить данные о событиях по ссылке, выберите false
. Дополнительные сведения см. в разделе Настройка выделения памяти для адаптивных служебных данных AUTOSAR.
После проверки строения адаптивной модели компонента можно моделировать или сгенерировать код для коммуникации сервиса AUTOSAR.
Для программной настройки адаптивной сервисной коммуникации AUTOSAR используйте свойство AUTOSAR и функции отображения. Для примера, следующий MATLAB® код добавляет интерфейс услуги AUTOSAR, событие и требуемый порт к открытой модели. Затем он преобразует входной порт Simulink в требуемый порт AUTOSAR.
hModel = 'autosar_LaneGuidance'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); % Add AUTOSAR service interface mySvcInterface with event mySvcEvent arProps = autosar.api.getAUTOSARProperties(hModel); addPackageableElement(arProps,'ServiceInterface',... '/LaneGuidance_pkg/LaneGuidance_if','mySvcInterface'); add(arProps,'mySvcInterface','Events','mySvcEvent'); % Add AUTOSAR required port myRPort, associated with mySvcInterface add(arProps,'LaneGuidance','RequiredPorts','myRPort',... 'Interface','mySvcInterface'); % Map Simulink inport to AUTOSAR port/event pair myRPort and mySvcEvent slMap = autosar.api.getSimulinkMapping(hModel); mapInport(slMap,'rightCarInBlindSpot','myRPort','mySvcEvent');