Адаптивная Платформа 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');