使用预定义值组合控制AUTOSAR变量
为了定义AUTOSAR软件组件中控制变化点的值,组件使用以下AUTOSAR元素:
SwSystemconst
—定义一个系统常量,作为控制可变点的输入。SwSystemconstantValueSet
—指定一组应用于AUTOSAR软件组件的系统常量值。PredefinedVariant
-描述应用于AUTOSAR软件组件的系统常量值的组合,以及可能存在的多个有效组合。
例如,在ARXML代码中,您可以定义SwSystemconst
S表示汽车的特征,比如传输
,头灯
,天窗
,涡轮增压
.然后一个PredefinedVariant
可以将特征组合映射到汽车型号变体,如基本
,经济
,高级
,闹着玩的
,初级
.
假设您有一个AUTOSAR软件组件的ARXML规范。如果ARXML文件也定义了PredefinedVariant
或SwSystemconstantValueSet
S用于控制构件中的变异点,您可以在模型创建时解析变异点。指定一个PredefinedVariant
或SwSystemconstantValueSet
S,导入程序可以用它初始化SwSystemconst
数据。
典型的步骤包括:
得到一个列表
PredefinedVariant
年代或SwSystemconstantValueSet
在ARXML文件中定义。>> obj = arxml.importer('mySWC.arxml');> >找(obj,‘/’,‘PredefinedVariant’,‘PathType’,‘FullyQualified’);ans = '/pkg/body/ variables /Basic' '/pkg/body/ variables /Economy' '/pkg/body/ variables /Senior' '/pkg/body/ variables /Sportive' '/pkg/body/ variables /Junior'
>> obj = arxml.importer('mySWC.arxml');>> find(obj,'/',' systemconsttvalueset ','PathType',' fulllyqualified ') ans = '/pkg/body/SystemConstantValues/A' '/pkg/body/SystemConstantValues/B' '/pkg/body/SystemConstantValues/C' '/pkg/body/SystemConstantValues/D'
从ARXML文件创建一个模型,并指定一个
PredefinedVariant
或者一个或多个SwSystemconstantValueSet
年代。本例中指定
PredefinedVariant
的值的组合传输
,头灯
,天窗
,涡轮增压
.> > createComponentAsModel (obj compname{1},‘ModelPeriodicRunnablesAs’,‘AtomicSubsystem’,……“PredefinedVariant”、“/ pkg /身体/变量/高级”);
本例中指定
SwSystemconstantValueSet
A和B,它们一起为SwSystemconst
在AUTOSAR软件组件中。> > createComponentAsModel (obj compname{1},‘ModelPeriodicRunnablesAs’,‘AtomicSubsystem’,……SystemConstValueSets, {' / pkg /身体/ SystemConstantValues / ', ' / pkg /身体/ SystemConstantValues / B "});
在模型创建过程中,ARXML导入器创建
AUTOSAR。参数
数据对象,存储类设置为SystemConstant
.导入器根据指定的值初始化系统常量数据PredefinedVariant
或SwSystemconstantValueSet
年代。
在创建模型之后,您可以运行模拟并基于您指定的变量点输入值的组合生成代码。
在仿真软件®,您可以重新定义SwSystemconst
在不重新创建模型的情况下控制可变点的数据。调用AUTOSAR属性函数createSystemConstants
,并指定一个不同的导入PredefinedVariant
或者一个不同的单元格数组SwSystemconstantValueSet
s.该函数创建一组与原始对象同名的系统常量数据对象。您可以运行模拟并基于修改后的变量点输入值组合生成代码。
本示例创建一组系统常量数据对象,其名称和值基于导入PredefinedVariant
“/ pkg /身体/变量/经济”
.
arProps = autosar.api.getAUTOSARProperties (hModel);createSystemConstants (arProps“/ pkg /身体/变量/经济”);
构建模型导出以前导入的模型PredefinedVariant
年代和SwSystemconstantValueSet
s到ARXML代码。