Графики Stateflow® в моделях Simulink® имеют свойство языка действия, которое задает синтаксис для действий перехода и состояния. Значок в нижнем левом углу холста графика указывает на язык действия для графика.
MATLAB® как язык действия.
C как язык действия.
Можно изменить язык действия графика в поле Action Language диалогового окна Свойств диаграммы. Для получения дополнительной информации смотрите Различия Между MATLAB и C как Синтаксис языка Действия.
MATLAB является синтаксисом языка действия по умолчанию для новых диаграмм Stateflow. Создавать график, который использует C в качестве языка действия, введите:
sfnew -c
Чтобы изменить язык действия по умолчанию новых графиков, используйте эти команды.
Команда | Результат |
---|---|
sfpref('ActionLanguage','MATLAB') | Все новые созданные графики имеют MATLAB как язык действия, если в противном случае не задано в sfnew . |
sfpref('ActionLanguage','C') | Все новые созданные графики имеют C как язык действия, если в противном случае не задано в sfnew . |
Для получения дополнительной информации смотрите sfnew
.
Диаграммы Stateflow, которые используют MATLAB в качестве языка действия автоматически, корректируют общие построения C к синтаксису MATLAB:
Постепенно увеличьте и постепенно уменьшите операции, такие как a++
и a--
. Например, a++
изменяется на a = a+1
.
Операции присвоения, такие как a += b
, a –= b
, a *= b
, и a /= b
. Например, a += b
изменяется на a = a+b
.
Операции оценки, такие как a != b
и !a
. Например, a != b
изменяется на a ~= b
.
Прокомментируйте маркеры //
и /* */
изменяются на %
.
Для непустых графиков, после того, как вы измените свойство языка действия от C до MATLAB, уведомление появляется наверху графика. Уведомление предоставляет возможность преобразовывать часть Синтаксиса C к синтаксису MATLAB. В уведомлении щелкните по ссылке, чтобы иметь Stateflow, преобразуют синтаксис в графике. Построения синтаксиса C, которые преобразованы, включают:
Основанная на нуле индексация.
Постепенно увеличьте и постепенно уменьшите операции, такие как a++
и a--
. Например, a++
изменяется на a = a+1
.
Операции присвоения, такие как a += b
, a –= b
, a *= b
, и a /= b
. Например, a += b
изменяется на a = a+b
.
Бинарные операции, такие как a %% b
, a >> b
, и a << b
. Например, a %% b
изменяется на rem(a,b)
.
Битовые операции, такие как a ^ b
A, B
, и a | b
. Например, если свойство диаграммы Enable C-bit operations выбрано, то a ^ b
изменяется на bitxor(a,b)
.
C разрабатывают маркеры комментария. Например, //
и /* */
изменяются на %
.
Если график содержит построения C, которые не могут быть преобразованы в MATLAB, Stateflow показывает сообщение в диалоговом окне. Нажмите на ссылку предупреждений, чтобы вывести предупреждения в Диагностическом Средстве просмотра. Выберите, продолжить ли преобразование поддерживаемого синтаксиса. C построения, не преобразованные в MATLAB, включайте:
Явный тип бросает с cast
и type
Операторы, такие как &
, *
и :=
Пользовательские данные
Доступ к переменным рабочей области с помощью ml
оператор
Функции, не поддерживаемые в генерации кода
Обозначение шестнадцатеричной и одинарной точности
Контекстно-зависимые константы
Используйте уникальные имена для данных в графике
Используйте уникальные имена для функций в графике
Включайте префикс типа для идентификаторов перечисляемых значений
Используйте формат MATLAB для комментариев
Используйте индексацию на основе одну для векторов и матриц
Используйте круглые скобки вместо скобок, чтобы индексировать в векторы и матрицы
Не используйте логику потока управления в действиях условия и действиях перехода
Не используйте действия перехода в графических функциях
Заключите действия перехода с фигурными скобками
Не объявляйте глобальные или персистентные переменные в состояниях активности
Чтобы сгенерировать код из вашей модели, используйте функции языка MATLAB, поддерживавшие для генерации кода