Чтобы определить значения, которые управляют точками изменения в программном компоненте AUTOSAR, компоненты используют следующие элементы AUTOSAR:
SwSystemconst - задает системную константу, которая служит входом для управления точкой изменения.
SwSystemconstantValueSet - задает набор значений системных констант, применяемых к программному компоненту AUTOSAR.
PredefinedVariant - описывает комбинацию значений системных констант, среди потенциально нескольких допустимых комбинаций, для применения к программному компоненту AUTOSAR.
Для примера в коде ARXML можно задать SwSystemconsts для автомобильных функций, таких как Transmission, Headlight, Sunroof, и Turbocharge. Затем A PredefinedVariant может сопоставить комбинации функций с вариантами модели автомобиля, такими как Basic, Economy, Senior, Sportive, и Junior.
Предположим, что у вас есть спецификация ARXML для программного компонента AUTOSAR. Если файлами также определяют PredefinedVariant или SwSystemconstantValueSets для управления точками изменения в компоненте, можно разрешить точки изменения во время создания модели. Задайте PredefinedVariant или SwSystemconstantValueSets, с помощью которого импортер может инициализировать SwSystemconst данные.
Типичные шаги включают:
Получите список 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'Создайте модель из файла ARXML и задайте PredefinedVariant или один или несколько SwSystemconstantValueSetс.
Этот пример задает 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'});Во время создания модели импортер ARXML создает AUTOSAR.Parameter объекты данных с Storage class установленным значением SystemConstant. Импортер инициализирует данные системной константы со значениями на основе заданных PredefinedVariant или SwSystemconstantValueSetс.
После создания модели можно запустить симуляции и сгенерировать код на основе комбинации заданных вами входных значений точек изменения.
В Simulink®, можно переопределить SwSystemconst данные, который управляет точками изменения, не воссоздавая модель. Вызовите функцию свойства AUTOSAR createSystemConstants, и укажите другую импортированную PredefinedVariant или другой массив ячеек SwSystemconstantValueSets. Функция создает набор объектов данных системной константы с теми же именами, что и исходные объекты. Можно запустить симуляции и сгенерировать код на основе пересмотренной комбинации входных значений точек изменения.
Этот пример создает набор объектов данных системных констант с именами и значениями на основе импортированных PredefinedVariant
'/pkg/body/Variants/Economy'.
arProps = autosar.api.getAUTOSARProperties(hModel); createSystemConstants(arProps,'/pkg/body/Variants/Economy');
Построение моделей экспортирует ранее импортированные PredefinedVariants и SwSystemconstantValueSetс по код ARXML.