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