В этом примере показано, как использовать перечисления в блоке MATLAB Function. Пример показывает, как блоки MATLAB Function обмениваются перечисленными данными с другими блоками Simulink®.
emldemo_led_switch
модель использует перечисления, чтобы представлять режимы устройства, которое управляет цветами светодиодного дисплея. Блок MATLAB Function получает перечислимый входной сигнал, который представляет режим. Перечислимый выходной сигнал представляет цвет что светодиодные дисплеи.
Открыть модель, в командной строке, введите:
emldemo_led_switch
Модель содержит блоки, перечисленные в этой таблице.
Блок Simulink | Описание |
---|---|
Step | Обеспечивает источник сигнала включения - выключения. Выводит начальное значение 0 (прочь), и в 10 секунд подходит к значению 1 (на). |
Data Type Conversion от | Преобразует |
Data Type Conversion от | Преобразует значение типа Параметры блоков Data Type Conversion имеют эти настройки:
|
Блок MATLAB Function | Оценивает перечислимый вход |
Display | Отображает значение |
switchmode
перечисление представляет позволенные режимы для входа к checkstate
блок.
classdef switchmode < Simulink.IntEnumType enumeration OFF(0) ON(1) end end
led
перечисление представляет цвета что checkstate
блок может вывести.
classdef led < Simulink.IntEnumType enumeration GREEN(1), RED(8) end end
Simulink.IntEnumType
и находитесь на пути MATLAB®.Функциональный checkState
перечисления использования, чтобы активировать светодиодный дисплей, на основе состояния устройства. Это освещает зеленый светодиодный дисплей, чтобы указать на состояние ON. Это освещает красный светодиодный дисплей, чтобы указать на состояние OFF.
function ledval = checkState(state) %#codegen if state == switchmode.ON ledval = led.GREEN; else ledval = led.RED; end
Когда вы симулируете модель, блок Display отображает состояние светодиодного дисплея. Если вы симулируете модель меньше 10 секунд, состояние выключено. Блок Display отображает RED
. Если вы симулируете модель больше 10 секунд, состояние включено. Блок Display отображает GREEN
.