Чтобы сгенерировать перечислимый тип данных, задайте класс перечисления в файле MATLAB. Затем используйте класс перечисления в качестве типа данных сигналов, параметров блоков и состояний в вашей модели.
typedef enum { Choice1 = 0, Choice2 } myEnumType;
В вашей текущей папке создайте файл MATLAB ex_myEnumType.m
. Файл задает класс перечисления ex_myEnumType
.
classdef ex_myEnumType < Simulink.IntEnumType enumeration Choice1(0) Choice2(1) end %enumeration methods (Static) function retVal = getHeaderFile() retVal = 'myEnumHdr.h'; end %function function retVal = getDataScope() retVal = 'Exported'; end %function end %methods end %classdef
1. Откройте модель ex_pattern_enum
это имеет блок Enumerated Constant и Многопортовый блок switch.
2. В Model Data Editor выберите вкладку Parameters.
3. В модели кликните по блоку Enumerated Constant.
4. В Model Data Editor используйте Столбец значений, чтобы установить постоянное значение к myChoice
. Рядом с myChoice
, кликните по кнопке действий (с тремя вертикальными точками) и выберите Create.
5. В диалоговом окне Create New Data, установленном Значении к Simulink.Parameter(ex_myEnumType.Choice1)
и нажмите Create. Simulink.Parameter
возразите названному myChoice
появляется в базовом рабочем пространстве. Объектно-ориентированная память перечисляемое значение Choice1
из типа ex_myEnumType
.
6. В диалоговом окне свойства для myChoice
, установите Класс памяти на ExportedGlobal
. С этой установкой объект появляется в сгенерированном коде как глобальная переменная.
7. В Model Data Editor выберите вкладку Signals.
8. В модели выберите выходной сигнал блока Enumerated Constant.
9. В Model Data Editor используйте столбец Типа данных, чтобы установить тип данных сигнала на Enum: ex_myEnumType
.
10. Выберите Многопортовый блок switch.
11. В Property Inspector, наборе:
Порядок порта данных к Specify indices
.
Индексы порта данных к enumeration('ex_myEnumType')
. Это выражение возвращает все члены перечисления ex_myEnumType
.
12. Установите Файл параметра конфигурации модели упаковочный формат на Modular
. С этой установкой, в сгенерированном коде, определении ex_myEnumType
может появиться в заданном заголовочном файле, myEnumHdr.h
.
13. Чтобы создать модель и сгенерировать код, нажмите Ctrl+B.
Просмотрите сгенерированный заголовочный файл myEnumHdr.h
. Файл задает перечислимый тип данных.
typedef enum { Choice1 = 0, /* Default value */ Choice2 } ex_myEnumType;
Просмотрите исходный файл ex_pattern_enum.c
. Файл задает переменную myChoice
. Алгоритм в step
функционируйте использует myChoice
направить один из входных сигналов к выходному сигналу.
ex_myEnumType myChoice = Choice1; /* Variable: myChoice /* Model step function */ void ex_pattern_enum_step(void) { /* MultiPortSwitch: '<Root>/Multiport Switch' incorporates: * Constant: '<S1>/Constant' */ if (myChoice == Choice1) { /* Outport: '<Root>/Data Out' incorporates: * Inport: '<Root>/Data In 1' */ rtY.DataOut = rtU.DataIn1; } else { /* Outport: '<Root>/Data Out' incorporates: * Inport: '<Root>/Data In 2' */ rtY.DataOut = rtU.DataIn2; } /* End of MultiPortSwitch: '<Root>/Multiport Switch' */ }