exponenta event banner

Рекомендации по использованию перечисляемых данных

Для улучшения читаемости диаграммы Stateflow ® используйте перечисляемые данные. С помощью перечисляемых данных можно:

  • Создайте ограниченный набор значений и обратитесь к ним по имени.

  • Группировать связанные значения по отдельным типам данных.

  • Избегайте определения длинного списка констант.

Перечисляемые данные поддерживаются в диаграммах Stateflow в моделях Simulink ®. Дополнительные сведения см. в разделе Ссылочные значения по имени с использованием перечисляемых данных.

Рекомендации по определению перечислимых типов данных

Использовать уникальное имя для каждого перечисляемого типа

Во избежание конфликтов имен имя перечисляемого типа данных не может совпадать с именем:

  • Другой тип данных

  • Объект данных в диаграмме Stateflow

  • Переменная в базовой рабочей области MATLAB ®

Использовать одно и то же имя для файла перечисляемого типа и определения класса

Чтобы разрешить перечисляемые типы данных для моделей Simulink, имя файла MATLAB, содержащего определение типа, должно совпадать с именем типа данных.

Применить изменения в определении перечисляемого типа

При обновлении определения перечисляемого типа данных для открытой модели изменения вступают в силу не сразу. Чтобы увидеть последствия обновления определения типа данных:

  1. Сохраните и закройте модель.

  2. Удалите все экземпляры типа данных из базовой рабочей области MATLAB. Чтобы найти эти экземпляры, введите whos в командной строке.

  3. Откройте модель и запустите моделирование или создайте код с помощью Simulink Coder™.

Рекомендации по ссылкам на перечисляемые данные

Обеспечение уникального разрешения имен для нефиксированных идентификаторов

Если для ссылки на перечисляемые значения диаграммы используются нефиксированные идентификаторы, убедитесь, что каждое перечисляемое имя принадлежит уникальному перечисляемому типу данных.

Использовать уникальные идентификаторы для перечисляемых значений

Если в перечисляемом значении используется тот же идентификатор, что и в объекте данных или поле шины, диаграмма не позволяет правильно разрешить идентификатор. Например, на этой диаграмме показаны этапы, на которых диаграмма пытается разрешить идентификатор Colors.Red.

Установка начальных значений перечисляемых данных с помощью префиксных идентификаторов

При установке начального значения для перечисляемых данных необходимо использовать префиксный идентификатор в поле «Начальное значение» инспектора свойств. Например, BasicColors.Red является допустимым идентификатором, но Red имеет значение not. Начальное значение должно вычисляться как допустимое выражение MATLAB.

Улучшение читаемости сгенерированного кода с помощью префиксных идентификаторов

При добавлении префиксов к перечисляемым именам в создаваемом коде улучшается удобочитаемость и предотвращаются конфликты имен с глобальными символами. Дополнительные сведения см. в разделе Использование перечисляемых данных в сгенерированном коде (Simulink Coder).

Руководящие принципы и ограничения для перечисляемых данных

Не вводить минимальные или максимальные значения для перечисляемых данных

Для перечисляемых данных оставьте поля «Минимум» и «Максимум» инспектора свойств пустыми. Диаграмма игнорирует любые значения, введенные в эти поля.

Отображение этих полей в инспекторе свойств зависит от того, какой параметр поля «Тип» используется для определения перечисляемых данных.

Параметр поля типаВнешний вид минимального и максимального полей
Enum: <class name>Недоступно
<data type expression> или Inherit from SimulinkДоступный

Не назначать перечисляемые значения постоянным данным

Поскольку перечисляемые значения являются константами, назначение этих значений постоянным данным является избыточным и ненужным. При попытке назначения перечисляемых значений постоянным данным появляется ошибка.

Не использовать ml Оператор пространства имен для доступа к перечисляемым данным

ml оператор не поддерживает перечисляемые данные.

Не определять перечисляемые данные на машинном уровне иерархии

Данные, родительские для компьютера, не поддерживаются для перечисляемых типов.

Связанные темы