Сконфигурируйте адаптивную сервисную коммуникацию AUTOSAR

Адаптивная Платформа AUTOSAR задает основанную на событии связь для обслуживания широкого круга запросов между адаптивными компонентами программного обеспечения. Каждый адаптивный компонент программного обеспечения обеспечивает и использует сервисы, и соединенные компоненты отправляют и получают сервисные события. Компонент содержит:

  • Алгоритм, который выполняет задачи в ответ на полученные события.

  • Требуемые и обеспеченные порты, через которые события получены и отправлены.

  • Сервисные интерфейсы, которые служат основой для основанной на событии коммуникации.

Чтобы смоделировать адаптивную сервисную коммуникацию в Simulink®, вы можете:

  • Создайте AUTOSAR требуемые и обеспеченные порты, сервисные интерфейсы, сервисные события интерфейса и C++ namepaces.

  • Создайте импорт корневого уровня и выходные порты и сопоставьте их с AUTOSAR требуемые и обеспеченные порты и сервисные события интерфейса.

Если вам лицензируют для Simulink Coder™ и Embedded Coder®, можно сгенерировать Код С++ и описания arxml для сервисной коммуникации AUTOSAR.

Реализовывать адаптивную сервисную коммуникацию в Simulink:

  1. Откройте модель, сконфигурированную для Адаптивной Платформы AUTOSAR. Отображения в этом примере используют модель autosar_LaneGuidance.

  2. Откройте Словарь AUTOSAR и выберите Service Interfaces. Чтобы создать сервисный интерфейс AUTOSAR, нажмите кнопку Add. В диалоговом окне Add Interfaces задайте интерфейсное имя и количество связанных событий.

  3. Расширьте узел Service Interfaces. Расширьтесь новый сервис соединяют интерфейсом и выбирают Events. В представлении событий выберите каждое сервисное событие и сконфигурируйте его атрибуты.

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

  5. В верхнем уровне Словаря AUTOSAR расширьте AdaptiveApplications и расширьте адаптивный компонент программного обеспечения. Используйте RequiredPorts и представления ProvidedPorts, чтобы добавить AUTOSAR требуемые и обеспеченные порты, которые вы хотите сопоставить с новым сервисным интерфейсом. Для каждого нового порта услуг выберите сервис, соединяют интерфейсом с вами созданный.

  6. В образцовой висячей строке, к модели AUTOSAR адаптивные порты услуг, создают импорт корневого уровня и выходные порты.

  7. Редактор Отображений Открытого кода. Используйте 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');

Связанные примеры

Больше о