Этот пример показывает, как использовать перечисления в блоке MATLAB function. Пример показывает, как блоки MATLAB function обмениваются перечисленными данными с другими блоками Simulink®.
Модель emldemo_led_switch
использует перечисления, чтобы представлять режимы устройства, которое управляет цветами светодиодного дисплея. Блок MATLAB function получает перечислимый входной сигнал, который представляет режим. Перечислимый выходной сигнал представляет цвет что светодиодные дисплеи.
Чтобы открыть модель, в командной строке, войдите:
emldemo_led_switch
Модель содержит блоки, перечисленные в этой таблице.
Блок Simulink | Описание |
---|---|
Шаг | Обеспечивает источник сигнала включения - выключения. Выводит начальное значение 0 (прочь), и в 10 секунд подходит к значению 1 (на). |
Преобразование типа данных от | Преобразовывает сигнал |
Преобразование типа данных от | Преобразовывает значение типа Параметры блока Data Type Conversion имеют эти настройки:
|
Блок MATLAB function | Оценивает перечислимый входной параметр |
Отображение | Отображает значение |
Перечисление 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
.