Сконфигурируйте идентификацию адаптивного Образца AUTOSAR

Идентификацию образца службы можно настроить для необходимых и предоставленных портов в адаптивном компоненте AUTOSAR. Когда вы создаете адаптивную модель компонента:

  • Экспортированные файлы ARXML включают файл манифеста образца службы, который описывает отображение образцов портов и служб.

  • Сгенерированный код С++ использует сконфигурированную информацию об образце службы в ara::com вызовы функций.

Чтобы сконфигурировать идентификацию образца службы:

  1. Откройте словарь AUTOSAR и выберите XML Options. Установите XML- опцию Identify Service Instance Using, чтобы указать форму, в которой можно сгенерировать информацию о образце обслуживания. Выберите InstanceIdentifier или InstanceSpecifier. Выбранная форма используется для идентификации образцов службы в сгенерированных прокси и Skeleton.

  2. Перейдите к необходимым портам и предоставленным представлениям портов в словаре. Выберите каждый порт для отображения его Manifest attributes. Для каждого порта, основываясь на форме образца службы, выбранной в опциях XML, исследуйте значение для Instance Specifier или Instance Identifier .Вы можете ввести значение или принять существующее значение.

Создание модели генерирует файл манифеста образца службы model_ServiceInstanceManifest.arxml. Файл манифеста описывает развертывание интерфейса службы, образец службы в отображение портов и интерфейсы службы для адаптивного компонента.

В сгенерированном коде С++, ara::com вызовы функций используют сконфигурированную информацию об образце службы. Для примера, если вы выбрали InstanceIdentifier форма, и установите Instance Identifier равным 1 для необходимого порта, сгенерированные вызовы функции используют это строение.

// Model initialize function
void autosar_LaneGuidanceModelClass::initialize()
{
  {
    ara::com::ServiceHandleContainer< company::chassis::required::proxy::
      RequiredInterfaceProxy::HandleType > handles;
    handles = company::chassis::required::proxy::RequiredInterfaceProxy::
      FindService(ara::com::InstanceIdentifier("1"));
...

Похожие примеры

Подробнее о