Адаптивная Платформа AUTOSAR задает основанную на событии связь для обслуживания широкого круга запросов между адаптивными компонентами программного обеспечения. Каждый адаптивный компонент программного обеспечения обеспечивает и использует сервисы, и соединенные компоненты отправляют и получают сервисные события. Компонент содержит:
Алгоритм, который выполняет задачи в ответ на полученные события.
Требуемые и обеспеченные порты, через которые события получены и отправлены.
Сервисные интерфейсы, которые служат основой для основанной на событии коммуникации.
Чтобы смоделировать адаптивную сервисную коммуникацию в Simulink®, вы можете:
Создайте AUTOSAR требуемые и обеспеченные порты, сервисные интерфейсы, сервисные события интерфейса и C++ namepaces.
Создайте импорт корневого уровня и выходные порты и сопоставьте их с 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 адаптивные порты услуг, создают импорт корневого уровня и выходные порты.
Редактор Отображений Открытого кода. Используйте Inports, и Outports переходит, чтобы сопоставить импорт Simulink и выходные порты к AUTOSAR требуемые и обеспеченные порты. Для каждого импорта или выходного порта, выберите AUTOSAR требуемый или обеспеченный порт и сервисное событие интерфейса.
После проверки адаптивной настройки модели компонента можно моделировать или сгенерировать код для сервисной коммуникации AUTOSAR.
Чтобы программно сконфигурировать адаптивную сервисную коммуникацию AUTOSAR, используйте свойство AUTOSAR и сопоставляющие функции. Например, следующий код MATLAB® добавляет сервисный интерфейс AUTOSAR, событие и требуемый порт к открытой модели. Это затем сопоставляет импорт Simulink в требуемый порт AUTOSAR.
hModel = 'autosar_LaneGuidance'; 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');