生成万博1manbetx由C或c++代码定义的自定义数据类型的表示
解析C或C ++头文件(importInfo
= 万博1manbetxSimulink.importExternalCTypes (headerFiles
)。h
或. hpp
)通过鉴定headerFiles
为的typedef
,结构体
,枚举
类型定义,并生成Simulink万博1manbetx®类型的表示。输出,importInfo
,在识别和成功不成功进口类型。
您可以使用Simulink表示:万博1manbetx
重用现有算法的C代码,并通过仿真,测试与Simulink的控制方法及其相互作用。万博1manbetx举一个例子,说明如何使用旧代码的工具,见集成C函数其参数是指向结构。
生成代码(万博1manbetxSimulink的编码器™)一个可重用的类型和数据您现有的代码定义。然后,您可以集成和生成的和现有的代码编译成一个单一的应用程序。对于一个示例,请参见交换结构化和生成外部代码之间枚举数据(嵌入式编码)。
使用组织在C代码中定义的标准数据类型在模型中创建和组织数据(信号、参数和状态)。
要创建的信号结构在Simulink中,使用非虚总线。万博1manbetx看到将信号线分组到虚拟总线中。
要创建的参数结构,使用MATLAB®结构和万博1manbetxSimulink.Parameter
对象。看到在结构中组织相关的块参数定义。
要创建枚举数据,请参见使用枚举数据在Simulink模型万博1manbetx。
匹配一个原语的typedef
声明中,使用万博1manbetxSimulink.AliasType
目的是在一个模型中的一组参数和信号的数据类型。
默认情况下,该功能:
通过生成派生枚举类的脚本文件导入枚举类型万博1manbetxSimulink.IntEnumType
,如在定义Simul万博1manbetxink的枚举。如果需要,您可以编辑类定义来定制它(例如,通过实现addClassNameToEnumNames
方法)。
进口的结构类型通过生成万博1manbetxSimulink.Bus
对象,在基本工作区中。
进口原始的typedef
通过生成声明万博1manbetxSimulink.AliasType
对象,在基本工作区中。
解释通用的C数据类型,如INT
或短
,根据您的主机的字长。例如,对于大多数现代机器来说,INT
有一个32位的字长,所以该函数表示INT
结构字段作为使用Simulink数据类型的总线元素万博1manbetxINT32
。
要覆盖此默认行为,请使用HardwareImplementation
对参数。
有关默认行为的其他信息,请参见提示。
通过分析所标识的模型万博1manbetx,生成自定义C数据类型的Simulink表示importInfo
= 万博1manbetxSimulink.importExternalCTypes (modelName
)modelName
。当您使用模拟目标模型中的配置参数来模拟过程中标识的头文件列入,使用此语法来导入类型主机上模拟模型的目的。该功能根据您的主机的字长解释通用的C数据类型。
在使用此语法时,不要使用成对参数,例如HardwareImplementation
,可以与目标模型的配置参数冲突。当您使用这种自变量对这个语法,函数生成一个警告。
使用一个或多个名称-值对参数指定其他选项。你可以使用这个语法:importInfo
= 万博1manbetxSimulink.importExternalCTypes (___,名称,值)
该功能不支持:万博1manbetx
不对应于一种类型的支撑件的Simulink C数据类型。万博1manbetx万博1manbetx例如,Simulink中不万博1manbetx识别的等价物长双
。有关Simulink支持的数据类型的信息,请参见万博1manbetx万博1manbetxSimulink支持的万博1manbetx数据类型万博1manbetx。
64位整数类型。
指针类型,例如定义值为指针或指针的字段的结构的typedef
基类型为指针类型的语句。
定义值具有多个维度的字段的结构。
如果字段值是1 d阵列,该函数创建表示一个矢量,而不是基体中的总线单元。
工会。
如果结构字段表示不动点数据,或者如果结构字段表示不动点数据的typedef
语句映射到定点基类型,函数设置相应总线元素的数据类型或万博1manbetxSimulink.AliasType
对象相关的Simulink整数类型(如万博1manbetxINT16
)。导入器不能通过解析C代码来确定定点伸缩。使用该函数后,必须手动指定总线元素的数据类型或万博1manbetxSimulink.AliasType
通过使用对象fixdt
函数。
如果一个MATLAB函数块或Stateflow®图表在您的模型中使用导入的枚举或结构类型,配置模型配置参数以包括(# include
)来自外部头文件的类型定义。看到控件导入总线和枚举类型定义(MATLAB函数块),访问自定义代码变量和函数在Stateflow图(状态流)和在状态流图表中集成自定义结构(为了图表)。
默认:
,因为Simulink枚举类派生自万博1manbetx万博1manbetxSimulink.IntEnumType
当您模拟或模型生成代码,枚举使用整数大小是原产于你的目标硬件。通过使用模型的配置参数,如指定目标硬件的特性生产设备供应商及型号和生产硬件中的本机字大小。
用于导入的结构类型:
功能进口结构字段作为数字复合仅当字段使用相应的一个万博1manbetxSimulink的编码器结构类型的数据类型。例如,如果在外部码的结构字段使用的数据类型cint8_T
中,函数导入字段作为一个总线元件(万博1manbetxSimulink.BusElement
对象),其数据类型为int8
和谁的复杂
属性设置为'复杂'
。
对于嵌套的结构,该函数产生用于每个独特结构类型的总线对象。
对于进口结构类型或枚举,如果外部的代码使用的typedef
,则生成的总线对象或Simulink枚举类的名称与万博1manbetx的typedef
的名字。如果你的代码没有使用的typedef
语句中,对象或类的名称为struct_
或类型
enum_
在哪里类型
类型
是该类型的标签名。如果不指定标签名或应用的typedef
, Simu万博1manbetxlink为对象或类生成一个任意名称。
该函数将生成的Simulink表示配置为导入,以便进行模拟和生成代码。万博1manbetx例如,对于总线对象,函数设置DataScope
属性“进口”
和HeaderFile
属性设置为外部头文件的名称。要从使用这些Simulink表示之一的模型模拟或生成代码,您必须使头文件对模型可用。万博1manbetx
指定文件时万博1manbetxSimulink.importExternalCTypes
使用或生成,例如,通过使用数据字典
对论点:
如果要使用的现有文件在当前文件夹中或在MATLAB路径中,则不需要指定文件路径。您可以自行指定文件名。
要控制生成文件的文件夹位置,可以指定路径和文件名。你也可以使用OutputDir
对参数。