Адаптивная платформа AUTOSAR определяет сервисно-ориентированную, основанную на событиях связь между адаптивными компонентами программного обеспечения. Каждый адаптивный программный компонент обеспечивает и потребляет услуги, а также связанные между собой компоненты отправляют и принимают события услуг. Компонент содержит:
Алгоритм, выполняющий задачи в ответ на принятые события.
Требуемые и предоставляемые порты, через которые принимаются и отправляются события.
Сервисные интерфейсы, обеспечивающие инфраструктуру для связи на основе событий.
Для моделирования адаптивной сервисной связи в Simulink ® можно:
Создайте требуемые и предоставленные порты AUTOSAR, сервисные интерфейсы, события сервисного интерфейса и пространства имен C++.
Создайте входные и выходные порты корневого уровня и сопоставьте их с требуемыми и предоставленными портами AUTOSAR и событиями сервисного интерфейса.
Если у вас есть программное обеспечение Simulink Coder™ и Embedded Coder ®, вы можете создать код C++ и описания ARXML для обмена данными между службами AUTOSAR.
Для реализации адаптивной сервисной связи в Simulink:
Откройте модель, настроенную для адаптивной платформы AUTOSAR. Отображение в этом примере модели использования autosar_LaneGuidance.
Откройте словарь AUTOSAR и выберите Сервисные интерфейсы. Для создания сервисного интерфейса AUTOSAR нажмите кнопку Add.
В диалоговом окне «Добавление интерфейсов» укажите имя интерфейса и количество связанных событий.

Разверните узел Сервисные интерфейсы. Разверните новый интерфейс службы и выберите События. В представлении событий выберите каждое событие службы и настройте его атрибуты.

Выберите Пространства имен. Представление пространств имен позволяет определить уникальное пространство имен для каждого сервисного интерфейса. Генератор кода использует определенное пространство имен при создании кода C++ для интерфейса. Чтобы изменить или создать спецификацию пространства имен, выберите элемент пространства имен и измените значение имени. Например, это представление пространств имен определяет пространство имен company::chassis::provided для сервисного интерфейса ProvidedInterface.

На верхнем уровне словаря AUTOSAR раскройте узел Приложения и компонент адаптивного программного обеспечения. Используйте представления RequiredPorts и RequiredPorts для добавления требуемых и предоставленных портов AUTOSAR, которые необходимо связать с новым интерфейсом службы. Для каждого нового сервисного порта выберите созданный сервисный интерфейс.

Дополнительно можно настроить адаптивную идентификацию экземпляра службы для портов AUTOSAR. В представлении RequiredPorts или RequiredPorts выберите порт и просмотрите его атрибуты манифеста. На основе формы экземпляра службы, выбранной в параметрах XML, проверьте значение параметра «Спецификатор экземпляра» или «Идентификатор экземпляра». Можно ввести или принять существующее значение. Дополнительные сведения см. в разделе Настройка идентификации адаптивного экземпляра службы AUTOSAR.
Дополнительно для требуемых портов AUTOSAR можно настроить обнаружение служб, что влияет на то, как адаптивные приложения находят динамические службы. В представлении RequiredPorts выберите порт и настройте его режим обнаружения службы. Выбрать OneTime или DynamicDiscovery. Дополнительные сведения см. в разделе Настройка режимов адаптивного обнаружения служб AUTOSAR.
В окне модели для моделирования адаптивных портов службы AUTOSAR создайте входные и выходные порты корневого уровня.
Откройте редактор сопоставлений кода. Вкладки Inports и Outports используются для сопоставления входов и выходов Simulink с требуемыми и предоставленными портами AUTOSAR. Для каждого порта ввода или вывода выберите требуемый или предоставленный порт AUTOSAR и событие интерфейса службы AUTOSAR.

Дополнительно можно настроить выделение памяти для служебных данных, отправляемых из портов, предоставляемых AUTOSAR. На вкладке «Выходы» выберите порт и используйте атрибут кода. 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');