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

Чтобы улучшить удобочитаемость графика Stateflow®, используйте перечисленные данные. С перечислимыми данными вы можете:

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

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

  • Постарайтесь не задавать длинный список констант.

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

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

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

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

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

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

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

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

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

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

Когда вы обновляете перечислимое определение типов для открытой модели, изменения сразу не вступают в силу. Видеть эффекты обновления определения типов:

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

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

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

Инструкции для ссылки на перечислимые данные

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

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

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

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

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

Если вы принимаете решение установить начальное значение для перечислимых данных, необходимо использовать снабженный префиксом идентификатор в поле Initial value Property Inspector. Например, BasicColors.Red допустимый идентификатор, но Red не. Начальное значение должно оценить к допустимому выражению MATLAB.

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

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

Инструкции и ограничения для перечислимых данных

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

Для перечислимых данных оставьте поля Minimum и Maximum Property Inspector пустыми. График игнорирует любые значения, которые вы вводите в эти поля.

Появляются ли эти поля в Property Inspector, зависит, на которой опции поля Type вы используете, чтобы задать перечисленные данные.

Полевая опция TypeВнешний вид Minimum и полей Maximum
Enum: <class name>Не доступный
<data type expression> или Inherit from SimulinkДоступный

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

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

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

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

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

Порожденные машиной данные не поддержаны для перечислимых типов.

Похожие темы