В этом примере показано, как функциональные блоки MATLAB обмениваются перечисленными данными с другими блоками Simulink ®. Модель использует перечисления для представления режимов устройства, которое управляет цветами светодиодного дисплея. Функциональный блок MATLAB принимает перечисленный входной сигнал, который представляет режим. Перечисленный выходной сигнал представляет цвет, отображаемый светодиодным индикатором.

В этой модели Step блок обеспечивает источник сигнала включения/выключения. Этот блок выводит начальное значение 0 (выкл.) и через 10 секунд переходит к значению 1 (вкл.). Пара блоков преобразования типа данных преобразует этот сигнал, сначала из типа double напечатать int32, а затем от int32 к числовому типу switchmode. Параметры во втором блоке преобразования типов данных имеют следующие настройки:
Минимальный выходной сигнал: []
Максимальная выходная мощность: []
Тип выходных данных: Enum:switchmode
Функциональный блок MATLAB checkState вычисляет перечисленные входные данные state для определения значения перечисляемых выходных данных ledval. state наследует перечисляемый тип switchmode от входящего сигнала Simulink, в то время как ledval имеет тип Enum:led. Наконец, блок отображения отображает значение ledval.
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 использует перечисления для активации светодиодного дисплея в зависимости от состояния устройства. Он загорается зеленым светодиодным индикатором для индикации состояния ВКЛ. Он загорается красным светодиодным индикатором для индикации состояния OFF.
function ledval = checkState(state) %#codegen if state == switchmode.ON ledval = led.GREEN; else ledval = led.RED; end
При моделировании модели в блоке Дисплей (Display) отображается состояние светодиодного дисплея. При моделировании модели в течение менее 10 секунд отображается состояние. RED. При моделировании модели более 10 секунд состояние включено. Отображается блок «Отображение» GREEN.