产生金宝appC或c++代码定义的自定义数据类型的表示
解析C或C ++头文件(importInfo
= 金宝appSimulink.importExternalCTypes (头文件
).h
或. hpp
确认的)头文件
为类型定义
,结构体
,枚举
类型定义,并生成Simulink金宝app®类型的表示。输出,importInfo
,标识成功导入和未导入的类型。
你可以使用Simulink表示:金宝app
通过模拟重复使用现有的算法C代码,并通过模拟测试其与Simulink控制算法的交互。金宝app有关显示如何使用遗留代码工具的示例,请参阅集成C函数,其参数是指向结构体的指针.
生成代码(金宝app仿真软件编码器™)来重用现有代码定义的类型和数据。然后,您可以将生成的和现有的代码集成并编译到单个应用程序中。例如,请参见在生成的代码和外部代码之间交换结构化和枚举数据(嵌入式编码器).
通过使用组织在C代码中定义的标准数据类型,创建和组织模型中的数据(信号、参数和状态)。
要在Simulink中创建信号的结构,请使用非virtual总线。金宝app看到将信号线组合成虚拟总线.
使用MATLAB创建参数结构®结构和金宝app仿真软件。参数
对象。看到在结构中组织相关块参数定义.
要创建枚举数据,请参见在Simulink模型中使用枚举数据金宝app.
匹配一个原语类型定义
声明,使用a金宝appsimulink.aliaStype.
对象在模型中设置参数和信号数据类型。
默认情况下,函数:
通过生成从中源自枚举类的脚本文件来导入枚举类型金宝app仿真软件。在tEnumType
,如定义模型的枚举金宝app.如果有必要,您可以编辑类定义来自定义它(例如,通过实现addClassNameToEnumNames
方法)。
类型导入结构类型金宝app仿真软件。公共汽车
对象在基本工作区中。
进口原语类型定义
语句通过生成金宝appsimulink.aliaStype.
对象在基本工作区中。
解释泛型C数据类型,例如int
或短的
,根据您的主机的字长。例如,对于大多数现代机器来说,int
具有32位字长度,所以该函数表示一个int
结构字段作为使用Simulink数据类型的总线元素金宝appint32
.
要覆盖此默认行为,请使用HardwareImplementation
对参数。
有关默认行为的其他信息,请参见提示.
通过分析您识别的模型金宝app来生成自定义C数据类型的Simulink表示importInfo
= 金宝appSimulink.importExternalCTypes (modelName
)modelName
.当你使用模拟目标配置参数在模型中识别用于包含在模拟期间的标题文件,使用此语法导入类型,以便在主计算机上模拟模型。该函数根据主计算机的单词长度来解释通用C数据类型。
在使用此语法时,不要使用pair参数,例如HardwareImplementation
,这可能与目标模型的配置参数冲突。当您使用这种语法的pair参数时,函数会生成一个警告。
使用一个或多个名称-值对参数指定其他选项。你可以使用这个语法:importInfo
= 金宝appSimulink.importExternalCTypes (___、名称、值)
属性指定要导入的类型的名称的名字
对参数。
控制Simulink存储导入类型的方式,例金宝app如,通过在Simulink数据字典中生成类型。使用Matfile.
和DataDictionary
对参数。
控制函数解释泛型C数据类型的方式。使用HardwareImplementation
对参数。
通过尝试再次导入更新后的C-code定义来保持C-code定义和Simulink表示之间的同步。金宝app您可以选择是否覆盖现有的Simulink表示。金宝app使用覆盖
和详细的
对参数。
该函数不支持:金宝app
与Simulink支持的类型不对应的C数据类型。金宝app金宝app例如,Simulink不能金宝app识别为长双
.有关Simulink支持的数据类型的信息,请参见金宝app金宝appSimulink支持的金宝app数据类型金宝app.
64位整数类型。
指针类型,例如定义该字段的结构,其值是指针或一个字段类型定义
声明,其基本类型是指针类型。
定义其值具有多个维度的字段的结构。
如果字段值是1-D数组,则该函数创建一个表示向量而不是矩阵的总线元素。
工会。
如果结构字段表示定点数据,或者类型定义
语句映射到固定点基本类型,该函数设置相应总线元素的数据类型或金宝appsimulink.aliaStype.
对象转换为相关的Simulink整数类型(例如金宝appint16
).导入器无法通过解析C代码来确定定点缩放。函数使用后,必须手动指定总线元素的数据类型或金宝appsimulink.aliaStype.
对象的Fixdt.
函数。
如果一个MATLAB函数块或州流®图表使用导入的枚举或结构类型,将模型配置参数配置为包括(# include
)从外部头文件的类型定义。看到控制导入总线和枚举类型定义(MATLAB函数块),访问状态流图中的自定义代码变量和函数(Stateflow)和在状态流图中集成自定义结构(Stateflow)(图表)。
默认情况下:
对于导入的枚举,因为Simulink枚举类来自金宝app金宝app仿真软件。在tEnumType
,当您模拟或从模型生成代码时,枚举使用目标硬件自带的整数大小。您可以使用模型配置参数来指定目标硬件的特征,例如生产设备供应商和类型和生产硬件中的本地字大小.
对于导入的结构类型:
只有当一个结构字段使用了一个对应的值时,该函数才会导入一个具有数值复杂性的结构字段金宝appSimulink编码器结构类型作为数据类型。例如,如果外部代码中的结构字段使用该数据类型cint8_T
,该函数将该字段导入为总线元素(金宝appsimulink.busement.
对象),其数据类型为INT8.
和谁的复杂性
属性设置为“复杂”
.
对于嵌套结构,该函数为每个唯一结构类型生成总线对象。
对于导入的结构类型或枚举,如果您的外部代码使用类型定义
语句来命名类型,则生成的总线对象或Simulink枚举类的名称与金宝app类型定义
的名字。如果您的代码没有使用类型定义
语句时,对象或类的名称为struct_
或类型
enum_
在哪里类型
类型
类型的标记名。如果没有指定标记名或应用类型定义
,则Simu金宝applink会为对象或类生成一个任意的名称。
该函数将生成的SIMULINK表示作为仿真和代码生成的目的配置为导入。金宝app例如,对于总线对象,该函数设置DataScope
财产'进口'
和HeaderFile
属性设置为外部头文件的名称。要从使用这些Simulink表示形式之一的模型中模拟或生成代码,您必须使您的头文件对模型可用。金宝app
当您指定文件金宝appSimulink.importExternalCTypes
使用或生成,例如通过使用DataDictionary
对论点:
如果要使用的现有文件在您当前的文件夹中或在MATLAB路径上,则无需指定文件路径。您可以自己指定文件名。
要控制生成文件的文件夹位置,可以指定路径以及文件名。你也可以使用outputdir.
对参数。
枚举
|金宝appsimulink.aliaStype.
|金宝app仿真软件。公共汽车