主要内容

自定义生成的ASAP2文件

您可以自定义的字段ASAP2文件通过使用代码生成器在这些方面:

自定义计算方法名称

在生成的ASAP2文件,计算方法翻译的电子控制单元(ECU)内部表示测量和校准量成物理面向模型的表示。使用金宝app®编码器™软件,您可以自定义计算方法的名字。您可以提供名字更直观,增强ASAP2文件可读性,或名字满足组织的需求。

自定义计算方法名称,使用MATLAB®函数getCompuMethodName中定义matlabroot/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m

getCompuMethodName构造一个函数计算方法名称。函数原型为:

cmName= getCompuMethodName (dataTypeName,cmUnits)

在哪里

  • dataTypeName是数据类型的名称与计算方法。

  • cmUnits中指定的单位吗单位财产的金宝appSimulink.Parameter金宝appSimulink.Signal对象(例如,rpm米/秒)。

  • cmName返回构造计算方法的名称。

默认构造函数返回的名字格式:

<数据类型> < localPrefix > _ < cmUnits >

在哪里

  • < local_Prefix >是当地的一个前缀,CM_中定义的,matlabroot/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m

  • <数据类型>< cmUnits >是你指定的参数getCompuMethodName函数。

特殊字符在cmUnits不支持ASAP2金宝app计算方法名称的文件。特殊字符转换为这个表所示。

特殊字符 转换
% _percent_
- - - - - - _dash_
/ _per_
* _into_
° _deg_

例如,如果您调用getCompuMethodName函数使用dataTypeName论点“int16”cmUnits论点“米/秒”为一个模型,然后生成一个ASAP2文件命名myModel名字出现在计算方法,生成的文件:

/开始COMPU_METHOD CompuMethod * / / *的名字myModel_CM_int16_m_per_s/ * * /单位“米/秒”…/结束COMPU_METHOD

出口特点和测量对象组

从R2021b,可以组织特征和测量对象在ASAP2文件基于它们的属性。默认情况下,生成的ASAP2文件包含SUB_GROUPS基于子系统模型中。

  1. 打开sldemo_fuelsys模型。

    open_system (“sldemo_fuelsys”)

  2. 使用嵌入式编码器快速启动应用程序通过进入代码的角度模型和点击C代码>快速启动

  3. 构建的模型。

  4. 生成ASAP2文件使用生成校准文件工具或使用这个命令:

    coder.asap2.export (“sldemo_fuelsys”)

    基于该模型的数据元素分组的架构。模型被称为顶部集团和子系统的模型被称为SUB_GROUPS。生成的文件包含这些线:

    /开始组/ *姓名* / sldemo_fuelsys / *长标识符* / " sldemo_fuelsys " / *根* /根/开始SUB_GROUP rtB.es_o sldemo_fuelsys_Dashboard sldemo_fuelsys_Engine_Gas_Dynamics sldemo_fuelsys_Throttle_Command sldemo_fuelsys_To_Controller sldemo_fuelsys_To_Plant sldemo_fuelsys_fuel_rate_control /结束SUB_GROUP /末端

  5. 来组标量成一组命名的对象GROUP_TYPE_SCALAR在ASAP2文件中,使用这个命令:

    coder.asap2.export (“sldemo_fuelsys”CustomizeGroupsBy = {“标量”})

你也可以组织类型的对象数组,查找表地图,曲线,长方体,CUBE_4,CUBE_5基于表的维度。

生成记录布局

  1. 打开sldemo_fuelsys模型。

    open_system (“sldemo_fuelsys”)

  2. 构建的模型。

  3. 通过使用这个命令生成ASAP2文件:

    coder.asap2.export (“sldemo_fuelsys”IncludeAllRecordLayouts = true)

  4. RecordLayouts.a2l文件是根据版本的ASAP2文件生成的。这条线在ASAP2文件,验证:

    /包括“RecordLayouts.a2l”

  5. 生成的RecordLayouts.a2l文件包含记录中的数据类型模型的布局。

    请注意

    RecordLayouts.a2l文件需要在相同的文件夹ASAP2文件。

  6. coder.asap2.export (sldemo_fuelsys IncludeAllRecordLayouts = false)不生成单独的记录布局文件,但包括记录导出的数据对象的数据类型的布局ASAP2文件。

    1 /开始RECORD_LAYOUT Scalar_FLOAT32_IEEE FNC_VALUES FLOAT32_IEEE COLUMN_DIR直接开始/结束RECORD_LAYOUT RECORD_LAYOUT Scalar_FLOAT64_IEEE FNC_VALUES 1 FLOAT64_IEEE COLUMN_DIR直接/ RECORD_LAYOUT结束……

提示

在ASA2P文件中,为了保护一个查找表的形状作为模型参数,确保查找表块在参考模型中。通过查找表对象从模型参数值作为一个实例。

排除结构和64位整数

从R2022a开始,可以排除结构元素和64位整数A2L文件生成。默认情况下,结构和64位整数都包含在A2L文件。

  1. 打开sldemo_fuelsys模型。

    open_system (“sldemo_fuelsys”)

  2. 构建的模型。

  3. 通过使用这个命令生成ASAP2文件:

    coder.asap2.export (“sldemo_fuelsys”Su金宝apppportStructureElements = false,金宝appSupport64bitIntegers = false)

    生成的ASAP2文件没有64位的整数和结构元素。

请注意

从R2022a开始,指针变量不会ASAP2文件中生成的。

生成ASAP2包含违约事件列表

多重速率的模型,从R2022a ASAP2文件包含IF_DATA部分的DEFAULT_EVENT_LIST,使您可以查看相应的栅格数据元素的值的校准工具。

  1. 打开sldemo_fuelsys模型。

    open_system (“sldemo_fuelsys”)

  2. 构建的模型。

  3. 通过使用生成ASAP2文件生成校准文件工具或使用这个命令:

    coder.asap2.export (“sldemo_fuelsys”)

  4. 模型的单一税率0.01。生成的文件定义的测量:

    /测量/ *姓名* /开始rtB.es_o.throttle / *长标识符* /”“/ *数据类型* / FLOAT32_IEEE / *转换方法* / sldemo_fuelsys_CM_single / *分辨率(未使用)* / 0 / *精度(未使用)* / 0 / * * /下限-3.4 e+38 / * * /上限3.4 e+38 ECU_ADDRESS 0 x0000 / * @ECU_Address@rtB.es_o.throttle@ * / /测量结束

  5. 将该模型转换为多重速率的模型通过使用这个命令:

    blockName = [' sldemo_fuelsys ' ' /自我故障开关'];set_param (blockName ' SampleTime ', ' 0.02 ');

  6. 构建的模型。

  7. 通过使用这个命令生成ASAP2文件:

    coder.asap2.export (“sldemo_fuelsys”)

  8. 生成的文件现在测量的定义是:

    /测量/ *姓名* /开始rtB.es_o.throttle / *长标识符* /”“/ *数据类型* / FLOAT32_IEEE / *转换方法* / sldemo_fuelsys_CM_single / *分辨率(未使用)* / 0 / *精度(未使用)* / 0 / * * /下限-3.4 e+38 / * * /上限3.4 e+38 ECU_ADDRESS 0 x0000 / * @ECU_Address@rtB.es_o.throttle@ * / /开始IF_DATA XCP /开始DAQ_EVENT变量/开始DEFAULT_EVENT_LIST事件0 x0001 /结束DEFAULT_EVENT_LIST /端DAQ_EVENT /端IF_DATA /测量结束

  9. 生成ASAP2文件DEFAULT_EVENT_LIST使用命令:

    coder.asap2.export (“sldemo_fuelsys”,IncludeDefaultEventList = false);

指定ECU地址扩展

从R2022a开始,您可以指定额外ASAP2文件中的地址信息通过指定一个整数的值EcuAddressExtension财产。默认情况下,没有提供额外的地址信息。

  1. 打开sldemo_fuelsys模型。

    open_system (“sldemo_fuelsys”)

  2. 构建的模型。

  3. 通过使用这个命令生成ASAP2文件:

    coder.asap2.export (“sldemo_fuelsys”EcuAddressExtension = 4)

    ECU_ADDRESS_EXTENSION关键词的特点,测量,和轴点ASAP2文件,使您能够指定额外的地址信息。

    /测量/ *姓名* / rtB开始。极大极小/ *长标识符* /”“/ *数据类型* / FLOAT64_IEEE / *转换方法* / sldemo_fuelsys_CM_double / *分辨率(未使用)* / 0 / *精度(未使用)* / 0 / * * /下限-1.7 e + 308 / * * /上限1.7 e + 308 ECU_ADDRESS 0 x0000 / * @ECU_Address@rtB。MinMax@ * / ECU_ADDRESS_EXTENSION 4 /测量结束

合并ASAP2文件

从R2023a,可以合并多个A2L文件的数据元素模型模型。金宝app使用coder.asap2.merge函数创建合并后的描述符对象并生成一个包含模型的数据元素A2L文件和A2L合并文件。

车辆网络工具箱™需要合并A2L文件使用coder.asap2.merge函数。

  1. 打开sldemo_fuelsys模型。

    open_system (“sldemo_fuelsys”)

  2. 构建的模型。

  3. 合并的数据元素A2L文件到模型中使用命令:

    mergeObj = coder.asap2.merge (“sldemo_fuelsys”,{“ASAP2File1.a2l”})

    合并多个A2L文件,指定逗号分隔的文件格式。例如:

    mergeObj = coder.asap2.merge (“sldemo_fuelsys”,{“ASAP2File1.a2l”,“ASAP2File2.a2l”})

  4. 生成A2L文件使用mergeObj

    coder.asap2.export (“sldemo_fuelsys”,CustomEcuDescriptions = mergeObj)

生成的A2L文件包含的数据元素sldemo_fuelsys模型和ASAP2File1A2L文件。

请注意

查找表的对象不会被合并。

另请参阅

相关的话题