自定义生成ASAP2文件
请注意
在未来的版本中,将不支持基于TLC的定制。要自定义ASAP2文件,请参见自定义生成ASAP2文件(嵌入式编码).
关于ASAP2文件定制
嵌入式编码器®product提供了许多目标语言编译器(TLC)文件,使您能够自定义从Simulink生成的ASAP2文件金宝app®模型。
的ASAP2文件结构MATLAB路径
ASAP2相关文件被组织在以下文件夹中:
用于生成ASAP2文件的TLC文件
的
(开放)文件夹包含生成ASAP2文件的TLC文件,matlabroot
/ rtw / c / tlc /兆瓦asamlib.tlc
,asap2lib.tlc
,asap2main.tlc
,asap2grouplib.tlc
.这些文件是由模型配置参数的设置所包含的系统目标文件.(见支持ASAP2的系统目标文件金宝app.)ASAP2目标文件
的
(开放)文件夹包含ASAP2系统目标文件和其他控制文件。matlabroot
/ / asap2 / asap2工具箱/ rtw /目标可定制的TLC文件
的
(开放)文件夹中包含您可以修改以自定义ASAP2文件内容的文件。matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 /用户ASAP2模板
的
(开放)文件夹包含定义每种类型的模板matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /模板特征
在ASAP2文件中。
定制ASAP2文件的内容
ASAP2相关的TLC文件使您能够自定义从Simulink模型生成的ASAP2文件的外观。金宝app类中包含的文件进行修改或添加
(开放)文件夹中。本节将此文件夹称为matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 /用户asap2 /用户
文件夹中。
提供的用户自定义文件分为两组:
的静态文件定义ASAP2文件中与使用生成代码的环境相关的部分。它们描述特定于用户或项目的信息。静态文件不依赖于模型。
的动态文件定义了ASAP2文件中基于源模型结构生成的部分。
ASAP2文件的定制流程如下:
复制一份
asap2 /用户
文件夹,然后进行修改。移除旧的
asap2 /用户
来自MATLAB的文件夹®路径,或添加新的asap2 /用户
文件夹到MATLAB路径上面的旧文件夹。MATLAB会话使用ASAP2设置文件,asap2setup.tlc
,在新文件夹中。asap2setup.tlc
指定ASAP2文件生成过程中要包含在TLC路径中的文件夹和文件。修改asap2setup.tlc
来控制包含在TLC路径中的文件夹和文件夹。修改ASAP2文件的静态部分。这些包括
中指定的项目和头符号
asap2setup.tlc
文件的静态部分,比如文件头和文件尾,
A2ML
,MOD_COMMON
,等等asap2userlib.tlc
.通过修改现有ASAP2模板或定义新的ASAP2模板,指定ASAP2文件动态内容的外观。ASAP2文件受影响的部分包括
RECORD_LAYOUT
:修改ASAP2模板文件的部分内容。特征
:修改ASAP2模板文件的部分内容。的外观的详细信息特征
记录,请参阅ASAP2模板.测量
:在asap2userlib.tlc
.COMPU_METHOD
:在asap2userlib.tlc
.
ASAP2模板
的出现特征
ASAP2文件中的记录是使用不同的模板控制每种类型的特征
.的asap2 /用户
文件夹包含标量的模板定义文件,一维查找表块和二维查找表块。您可以修改这些模板定义文件,也可以根据需要创建其他模板。
新建ASAP2模板的操作步骤如下:
创建模板定义文件。看到创建模板定义文件.
在TLC路径中包含模板定义文件。该路径在ASAP2安装文件中指定,
asap2setup.tlc
.
创建模板定义文件
本节描述组成ASAP2模板定义文件的组件。此描述以代码示例的形式从asap2lookup1d.tlc
的模板定义文件Lookup1D
模板。该模板对应于Lookup1D
参数组。
请注意
创建新模板时,使用相应的参数组名代替Lookup1D
在显示的代码中。
模板注册功能
input参数是与该模板关联的参数组的名称:
% < LibASAP2RegisterTemplate (Lookup1D) >
函数
可以为每种数据类型任意指定记录布局名称(别名)。此函数由该文件的其他组件使用。
function ASAP2UserFcnRecordLayoutAlias_Lookup1D(dtId) void %switch dtId %case tSS_UINT8 %return "Lookup1D_UBYTE"…% endswitch % endfunction
函数来写入RECORD_LAYOUT定义
这个函数写RECORD_LAYOUT
与此模板关联的定义。该函数由ASAP2文件生成过程中涉及的内置函数调用。函数名必须定义为如下所示,模板名在下划线后:
%function ASAP2UserFcnWriteRecordLayout_Lookup1D() Output /begin RECORD_LAYOUT %…/end RECORD_LAYOUT %结束函数
函数写特征
此函数写入特征
与该模板关联。该函数由ASAP2文件生成过程中涉及的内置函数调用。函数名必须定义为如下所示,模板名在下划线之后。
此函数的输入参数是指向参数组记录的指针。所示的示例是aLookup1D
有两个成员的参数组。对象的引用x
而且y
数据记录从参数组记录中获取,如图所示。
该函数调用许多内置函数来获取所需的信息。例如,LibASAP2GetSymbol
返回指定数据记录的符号(名称):
function ASAP2UserFcnWriteCharacteristic_Lookup1D(paramGroup) Output %assign xParam = paramGroup. member [0]. member参考%assign yParam = paramGroup.Member[1]。Reference %assign dtId = LibASAP2GetDataTypeId(xParam) /begin CHARACTERISTIC /* Name */ %/*长标识符*/ "% "…结束函数
自定义计算方法名称
在生成的ASAP2文件中,计算方法将电子控制单元(ECU)测量和校准量的内部表示转换为面向物理模型的表示。金宝app仿真软件编码器™软件提供了自定义计算方法名称的能力。您可以提供更直观的名称,增强ASAP2文件的可读性,或者满足组织要求的名称。
要自定义计算方法名称,请使用MATLAB函数getCompuMethodName
,定义为
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m
的getCompuMethodName
函数构造一个计算方法名称。函数原型为
cmName= getCompuMethodName (dataTypeName,cmUnits)
在哪里
与计算方法关联的数据类型的名称,dataTypeName
单位是否如cmUnits
单位
的属性金宝app仿真软件。参数
或金宝app仿真软件。信号
对象(例如,rpm
或米/秒
),
返回构造的计算方法名称。cmName
函数返回的默认构造名称具有以下格式
<数据类型> < localPrefix > _ < cmUnits >
在哪里
< local_Prefix >
是本地前缀,CM_
,定义为
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m<数据类型>
而且< cmUnits >
参数是否指定给getCompuMethodName
函数。
此外,在生成的ASAP2文件中,构造的名称前缀为< ASAP2CompuMethodName_Prefix >
中定义的模型前缀
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /asap2setup.tlc
例如,如果调用getCompuMethodName
函数与
论点dataTypeName
“int16”
和
论点cmUnits
“米/秒”
,并为模型生成ASAP2文件myModel
,计算方法名称将出现在生成的文件中,如下所示:
/begin COMPU_METHOD /* CompuMethod名称*/myModel_CM_int16_m_s/*单位*/ "m/s"…/结束COMPU_METHOD
抑制FIX_AXIS的计算方法
ASAP2规范的1.51及以后版本声明,对于查找表轴描述(整数数据类型和无文档单位)的某些情况,不需要计算方法,并且必须将Conversion method参数设置为该值NO_COMPU_METHOD
.可以使用目标语言编译器(TLC)选项控制是否在不需要时抑制计算方法ASAP2GenNoCompuMethod
.默认情况下禁用此TLC选项。如果启用该选项,ASAP2文件生成在不需要时不会生成查找表轴描述的计算方法,而是生成该值NO_COMPU_METHOD
.例如:
/begin CHARACTERISTIC /* Name */ lu1d_fix_axisTable_data…/begin AXIS_DESCR…/*转换方法*/NO_COMPU_METHOD.../结束特点
的ASAP2GenNoCompuMethod
选项定义在
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /asap2setup.tlc