exponenta event banner

Управление вариантами AUTOSAR с предварительно определенными комбинациями значений

Для определения значений, управляющих точками изменения в программном компоненте AUTOSAR, компоненты используют следующие элементы AUTOSAR:

  • SwSystemconst - определяет системную константу, которая служит входом для управления точкой изменения.

  • SwSystemconstantValueSet - задает набор значений системных констант для применения к программному компоненту AUTOSAR.

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

Например, в коде ARXML можно определить SwSystemconsts для функций автомобиля, таких как Transmission, Headlight, Sunroof, и Turbocharge. Тогда а PredefinedVariant может сопоставлять комбинации элементов с вариантами модели автомобиля, такими как Basic, Economy, Senior, Sportive, и Junior.

Предположим, что имеется спецификация ARXML программного компонента AUTOSAR. Если файлы ARXML также определяют PredefinedVariant или SwSystemconstantValueSets для управления точками вариации в компоненте можно разрешить точки вариации во время создания модели. Укажите PredefinedVariant или SwSystemconstantValueSets, с помощью которых импортер может инициализировать SwSystemconst данные.

Типичные шаги включают в себя:

  1. Получить список PredefinedVariants или SwSystemconstantValueSets, определенные в файле ARXML.

    >> obj = arxml.importer('mySWC.arxml');
    >> find(obj,'/','PredefinedVariant','PathType','FullyQualified');
    ans = 
       '/pkg/body/Variants/Basic'
       '/pkg/body/Variants/Economy'
       '/pkg/body/Variants/Senior'
       '/pkg/body/Variants/Sportive'
       '/pkg/body/Variants/Junior'
    >> obj = arxml.importer('mySWC.arxml');
    >> find(obj,'/','SystemConstValueSet','PathType','FullyQualified')
    ans = 
       '/pkg/body/SystemConstantValues/A'
       '/pkg/body/SystemConstantValues/B'
       '/pkg/body/SystemConstantValues/C'
       '/pkg/body/SystemConstantValues/D'
  2. Создайте модель из файла ARXML и укажите PredefinedVariant или один или несколько SwSystemconstantValueSets.

    В этом примере указывается PredefinedVariant Старший, который описывает комбинацию значений для Transmission, Headlight, Sunroof, и Turbocharge.

    >> createComponentAsModel(obj,compNames{1},'ModelPeriodicRunnablesAs','AtomicSubsystem',...
       'PredefinedVariant','/pkg/body/Variants/Senior');

    В этом примере указывается SwSystemconstantValueSets A и B, которые вместе обеспечивают значения для SwSystemconsts в программном компоненте AUTOSAR.

    >> createComponentAsModel(obj,compNames{1},'ModelPeriodicRunnablesAs','AtomicSubsystem',...
       'SystemConstValueSets',{'/pkg/body/SystemConstantValues/A','/pkg/body/SystemConstantValues/B'});
  3. Во время создания модели импортер ARXML создает AUTOSAR.Parameter объекты данных, класс Storage имеет значение SystemConstant. Импортер инициализирует системные постоянные данные значениями, основанными на указанных PredefinedVariant или SwSystemconstantValueSets.

После создания модели можно выполнить моделирование и создать код на основе указанной комбинации входных значений точек изменения.

В Simulink ® можно переопределить SwSystemconst данные, управляющие точками изменения без повторного создания модели. Вызов функции свойства AUTOSAR createSystemConstantsи укажите другой импортированный PredefinedVariant или другой массив ячеек SwSystemconstantValueSetс. Функция создает набор объектов системных постоянных данных с теми же именами, что и исходные объекты. Можно выполнять моделирование и генерировать код на основе пересмотренной комбинации входных значений точек изменения.

В этом примере создается набор объектов системных постоянных данных с именами и значениями на основе импортированных PredefinedVariant '/pkg/body/Variants/Economy'.

arProps = autosar.api.getAUTOSARProperties(hModel);
createSystemConstants(arProps,'/pkg/body/Variants/Economy');

Построение экспорта модели, ранее импортированного PredefinedVariants и SwSystemconstantValueSets в код ARXML.

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

Подробнее