Этот пример показывает, как блоки MATLAB Function обмениваются перечисленными данными с другими блоками Simulink ®. Модель использует перечисления, чтобы представлять режимы устройства, которое управляет цветами светодиодного отображения. Блок MATLAB Function получает перечисленный входной сигнал, который представляет режим. Перечисленный выходной сигнал представляет цвет, отображаемый светодиодом.
В этой модели Step
блок обеспечивает источник сигнала включения/выключения. Этот блок выводит начальное значение 0 (off) и, через 10 секунд, переходит к значению 1 (on). Пара блоков преобразования типа данных преобразует этот сигнал, сначала из типа double
для ввода int32
а затем от int32
к нумерованному типу switchmode
. Параметры во втором блоке Data Type Conversion имеют следующие настройки:
Выходной минимум: []
Выходной максимум: []
Выход данных: Enum:switchmode
Блок MATLAB Function checkState
вычисляет перечисленные входные state
для определения значения перечисляемого выхода ledval
. state
наследует его перечисленный тип switchmode
от входного сигнала Simulink, в то время как ledval
имеет тип Enum:led
. Наконец, блок Display отображает значение ledval
.
The switchmode
перечисление представляет допустимые режимы для входа в checkstate
блок.
classdef switchmode < Simulink.IntEnumType enumeration OFF(0) ON(1) end end
The 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
.