主要内容

Simulink.defineIntEnumType

定义枚举数据类型

说明

Simulink.defineIntEnumType(ClassName,"Members",{{EnumName1,EnumIntValue1},...,{EnumNameN,EnumIntValueN}}) 定义一个名为 ClassName 的枚举,其中每个成员都有名称和数值,分别由 EnumNameEnumIntValue 指定。

示例

Simulink.defineIntEnumType(ClassName,"Members",{{EnumName1,EnumIntValue1,"Description",EnumDescription1},...,{EnumNameN, EnumIntValueN,"Description",EnumDescriptionN}}) 定义一个名为 ClassName 的枚举,其中每个成员都有名称、数值(如上述语法所示),以及(可选地)包含由 EnumDescription 指定的描述。

示例

Simulink.defineIntEnumType(___,Name=Value) 可在前面语法中的输入参量外使用一个或多个名称-值参量来指定选项。例如,要从外部头文件导入数据类型定义,请将 DataScope 设置为 Imported

示例

示例

全部折叠

假定一个外部数据字典包括以下枚举:

TrafficColors.Red(0),TrafficColors.Yellow(1),TrafficColors.Green(2)

将枚举类定义从头文件 mytrafficcolors.h 导入 MATLAB® 工作区中,同时指定生成代码中的枚举值是可调的,并且具有基础整数数据类型 int16

Simulink.defineIntEnumType("TrafficColors", ... 
	"Members",{{"Red",0,"Description","Stop!"}, ...
       {"Yellow",1,"Description","Prepare to stop!"}, ...
       {"Green",2,"Description","Go!"}}, ... 
	Description="Traffic light colors", ...
	DefaultValue="Green", ...
	HeaderFile="mytrafficcolors.h", ...
	DataScope="Imported", ...
	AddClassNameToEnumNames=true, ...
	StorageType="int16", ...
      IsTunableInCode=true);

输入参数

全部折叠

枚举数据类型的名称,指定为字符向量或字符串标量。

示例: BasicColors

数据类型: char | string

枚举成员名称,指定为字符向量或字符串标量。

示例: "Yellow"

数据类型: char | string

数值枚举成员值,指定为数值。对于基于 uint32 的枚举,枚举值必须小于或等于 intmax("int32")

示例: 1

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

自 R2026a 起

枚举成员描述,指定为字符向量或字符串标量。

示例: "Prepare to stop!"

数据类型: char | string

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: Simulink.defineIntEnumType("TrafficColors","Members",{{"Red",0,"Description","Stop!"},{"Yellow",1,"Description","Prepare to stop!"},{"Green",2,"Description", "Go!"}},HeaderFile="mytrafficcolors.h",DataScope="Imported");DataScope 设置为 Imported,并指定代码生成器从外部文件 mytrafficcolors.h 导入枚举类型定义。

枚举数据类型的描述,指定为字符向量或字符串标量。

示例: "Basic colors"

默认枚举值,指定为字符向量或字符串。该值是为 CellOfEnums 指定的值之一。

示例: "Blue"

代码生成期间对数据类型定义采取的操作,指定为以下值之一:

  • "Auto" - 如果没有为 HeaderFile 指定任何值,则将类型定义导出到 model_types.h,其中 model 是模型名称。如果为 HeaderFile 指定了值,则从指定的头文件中导入数据类型定义。

  • "Exported" - 将数据类型定义导出到头文件中。如果没有为 HeaderFile 指定任何值,则头文件名称的默认值为 type.h,其中 type 是数据类型名称。

  • "Imported" - 从头文件中导入数据类型定义。如果没有为 HeaderFile 指定任何值,则头文件名称的默认值为 type.h,其中 type 是数据类型名称。

要避免 MISRA C:2012 和 MISRA C:2023 违规,请将数据作用域所选内容设置为 "已导入""已导出"

包含数据类型定义的外部头文件,指定为字符向量或字符串。默认情况下,生成的 #include 指令使用预处理器分隔符 ",而不是 <>。要生成指令 #include <mytypes.h>,请将 HeaderFile 指定为 '<myTypes.h>'

示例: 'mybasiccolors.h'

代码生成器是否将类名称作为前缀应用于枚举,指定为数值或逻辑值 1 (true) 或 0 (false)。

示例: true

用于在生成的代码中存储枚举的基础整数值的数据类型,指定为字符串。

示例: "int16"

自 R2025a 起

允许在生成代码中启用枚举值的可调性(更改、添加和重新排序)的选项,指定为数值或逻辑值 1 (true) 或 0 (false)。要将此参量设置为 true,您必须将 DataScope 设置为 "Imported"

示例: true

版本历史记录

在 R2010b 中推出

全部展开