默认情况下,当您使用数据类型对象时,例如万博1manbetx仿真软件。AliasType
和万博1manbetx仿真软件。公共汽车
以及自定义枚举要指定信号和块参数的数据类型,从模型生成的代码定义了类型(例如,使用typedef.
语句)。为了简化生成的代码与其他现有代码的集成,并对生成的代码进行模块化,您可以通过调整对象的属性和枚举来控制类型定义的文件位置。
要控制生成代码中自定义类型定义的文件位置,请设置datascope.
和HeaderFile
根据表设置数据类型对象的属性。类似地,对于在MATLAB中定义的枚举®的返回参数getDataScope
和getheaderfile.
方法。
自定义数据类型的名称。typename.
是头文件的名称。文件名
是模型的名称。模型
目标 | 指定datascope. 作为 |
指定HeaderFile 作为 |
---|---|---|
将类型定义导出到
|
汽车 |
空 |
从创建的头文件导入类型定义,
|
汽车 或者进口 |
(如有必要,应包括。H 延期) |
将类型定义导出到生成的头文件中,
|
出口 |
或者
|
将类型定义导出到生成的头文件中,
|
出口 |
空 |
导入数据类型定义时(例如,通过设置datascope.
来进口
),生成的模型代码创建一个# include
用于头文件的指令,以代替类型定义。提供包含该定义的头文件。
如果您使用数据类型替换来替换内置的Simulink万博1manbetx®在生成的代码中使用您自己的数据类型的数据类型(参见模型配置参数:代码生成数据类型替换),typedef.
陈述和# include
指令出现在rtwtypes.h
而不是
.模型
_types.h
当一个万博1manbetx仿真软件。AliasType
或者万博1manbetx仿真软件。NumericType
对象参与数据类型替换时,不能设置datascope.
对象的属性出口
.因此,如果您希望代码生成器生成相应的typedef.
语句,则无法控制该语句的文件位置。但是,您可以设置datascope.
来进口
,这意味着您可以配置代码以重用typedef.
外部代码提供的语句。
作为一种变通方法,不使用数据类型对象作为数据类型替换,而是使用对象来设置模型中各个数据项的数据类型。要配置许多数据项,可以使用模型数据编辑器并利用数据类型传播和继承。有关更多信息,请参见基本数据类型的控件名称.
你可以用万博1manbetx仿真软件。AliasType
具有数值复杂数据的对象(我
)。在这种情况下,如果配置生成的代码以导入来自外部代码的类型定义(例如,通过设置datascope.
财产进口
),您的代码必须提供两个补充typedef.
语句。
假设您的外部头文件myAliasTypes.h
定义数据类型IAT_INT32
作为32位整数的别名。该文件必须定义两种类型:IAT_INT32
和cIAT_int32
:
#ifndef myaliastypes_h_ #define myaliastypes_h_ #include“rtwtypes.h”typedef int32_t iat_int32;typedef cint32_t ciat_int32;# endif
您不需要创建两个万博1manbetx仿真软件。AliasType
对象。在此示例中,您创建一个对象,IAT_INT32
.然后,生成的代码通过使用两者创建复杂数据(变量)IAT_INT32
和cIAT_int32
.
当您将一个或多个数据类型定义导出到生成的头文件时,该文件包含表单的文件级宏保护RTW_HEADER_
.文件名
_H
假设你使用几个万博1manbetx仿真软件。AliasType
对象:mySingleAlias
,mydoublealias.
, 和myIntAlias
这些属性:
datascope.
设置为出口
HeaderFile
设置为myTypes.h
生成代码时,保护的文件myTypes.h
包含了typedef.
声明:
#ifndef RTW_HEADER_myTypes_h_ #define RTW_HEADER_myTypes_h_ #include "rtwtypes.h" typedef real_T myDoubleAlias;typedef real32_T mySingleAlias;typedef int16_T myIntAlias;# endif
导出数据类型定义时
,该文件包含表单的宏警察模型
_types.h_DEFINED_TYPEDEF_FOR_
为每一个typename.
_typedef.
声明。假设你使用万博1manbetx仿真软件。AliasType
对象mySingleAlias
这些属性:
datascope.
设置为汽车
HeaderFile
未指定
生成代码时,文件
包含谨慎模型
_types.htypedef.
陈述:
#ifndef _definding_typedef_for_mysinglealias_ #define _definding_typedef_for_mysinglealias_ typedef real32_t mysinglealias;# endif
万博1manbetx仿真软件。AliasType
|万博1manbetx仿真软件。公共汽车
|万博1manbetx仿真软件。NumericType