目录
1,将枚举量保存在DD文件中
在m文件中运行下列代码,即可以生成枚举量到DD文件中。
下边代码中,有一个枚举量myColors,它有三个枚举值分别为Orange/Black/Cyan,对应的值为0/1/2。
clear;clc;
myColors = Simulink.data.dictionary.EnumTypeDefinition;
appendEnumeral(myColors,'Orange',0,'');
appendEnumeral(myColors,'Black',1,'');
appendEnumeral(myColors,'Cyan',2,'');
myColors.Description = 'These are my favorite colors.';
myColors.DefaultValue = 'Cyan';
myColors.HeaderFile = 'colorsType.h';
if exist('myNewDictionary.sldd')
myDictionaryObj = Simulink.data.dictionary.open('myNewDictionary.sldd');
else
Simulink.data.dictionary.create('myNewDictionary.sldd');
myDictionaryObj =Simulink.data.dictionary.open('myNewDictionary.sldd');
end
importFromBaseWorkspace(myDictionaryObj,'varList',{'myColors'});
clear;
只需要将代码中的枚举量myColors及对应的枚举值替换成你自己的枚举量名称及枚举值,同样下边行代码中大括号 { }内的枚举量名称也要更改为你自己的枚举量名称。
如果你有多个枚举量,在下边这行代码中的大括号{ } 内添加枚举量名称:
importFromBaseWorkspace(myDictionaryObj,'varList',{'myColors'});
2,保存枚举量到m文件中
此种方法一个m文件只能保存一个枚举量,如下代码是一个枚举量的定义,将其复制到m文件中,保存m文件,注意文件名需要与枚举量名称一样。
注意:因为一个m文件只能保存一个枚举量,因此若有多个枚举量,就有对应数量的m文件保存这些枚举量。
在使用这些枚举量时,需要将这些保存枚举量的m文件添加到路径中。
classdef BasicColors < Simulink.IntEnumType
enumeration
Red(0)
Yellow(1)
Blue(2)
end
end
3,Simulink中使用枚举量
Constant模块使用枚举量中的枚举值,需要使用Simulink模块库中的Enumerated Constant 模块,参数设置如下图:
变量也可以使用枚举量作为数据类型:
a = Simulink.Signal;
a.DataType = 'Enum:BasicColors';