Вы можете интегрировать пользовательский код, написанный на C или C++ с Stateflow® графики в Simulink® модели. Путем обмена данными и функциями между вашим пользовательским кодом и диаграммой Stateflow, можно расширить возможности Stateflow и использовать программное обеспечение, чтобы использовать преимущества вашего ранее существующего кода.
Диаграммы Stateflow вызывают пользовательские функции кода с помощью того же синтаксиса, что и другие переиспользуемые функции:
return_val = function_name(arg1,arg2,...)
Примечание
Не делитесь данными с фиксированной точкой между пользовательским кодом и диаграммой Stateflow.
Чтобы выбрать правильную процедуру симуляции, щелкните подсвеченный блок, который лучше всего описывает вашу цель.

В этом примере показано, как использовать пользовательский код С для определения констант, которые применяются ко всем графикам в вашей модели.
Модель содержит график Stateflow ® с входом, который можно задать равным 0 или 1, переключив ручной переключатель в модели во время симуляции.

График содержит два состояния A и B. В этом примере вы задаете две константы с именем TRUE и FALSE для защиты переходов между состояниями на графике вместо использования значений 1 и 0. Эти пользовательские определения улучшают читаемость действий на графике. TRUE и FALSE не являются объектами данных Stateflow.

Чтобы ввести пользовательский код, который задает две константы:
Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters).
Выберите панель Цель симуляцию (Simulation Target).
В подпанели файл введите #define и #include операторы. Например, в этом примере вы задаете глобальные константы с этим кодом:
#define TRUE 1 #define FALSE 0
Поскольку два пользовательских определения появляются в верхней части сгенерированного файла заголовка машины sf_custom_code_global_constants_sfun.h, можно использовать TRUE и FALSE во всех графиках, которые относятся к этой модели.

В этом примере показано, как использовать пользовательский код С для определения констант, переменных и функций, которые применяются ко всем графикам в вашей модели.
Модель содержит диаграмму Stateflow с входным сигналом от блока Sine Wave.

График содержит два состояния A и B, и три объекта данных: input_data, local_data, и out_data. График обращается к пользовательской переменной с именем my_global и вызывает пользовательскую функцию с именем my_function.

Чтобы сконфигурировать модель для доступа к пользовательскому коду:
Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters).
Выберите панель Цель симуляцию (Simulation Target).
В подпанели файл введите #define и #include операторы. Когда вы включаете пользовательский файл заголовка, необходимо заключить имя файла в двойные кавычки.
В подпанели Include directories введите имя папки, содержащей ваши файлы пользовательского кода. Для доступа к файлам пользовательского кода в подпапке папки модели используйте относительное имя пути формы .\subfolder_name.
В подпанели Исходные файлы введите имя исходного файла, который содержит ваш пользовательский код. Для доступа к исходному файлу, который находится в подпапке папки модели, используйте относительное имя пути формы .\subfolder_name\source_file.c.
В этом примере пользовательский код задает три константы, переменную и функцию при помощи этих строений:
Файл заголовка подпанели содержит следующий оператора: #include "sf_custom_code_constants_vars_fcns_hdr.h"
Подпанель Include directories содержит одну точку (.), чтобы указать, что все пользовательские файлы кода находятся в той же папке, что и модель.
Исходный файл подпанели содержит это имя файла: sf_custom_code_constants_vars_fcns_src.c

Пользовательский файл заголовка sf_custom_code_constants_vars_fcns_hdr.h содержит определения трех констант:
#define TRUE 1 #define FALSE 0 #define MAYBE 2
Заголовочный файл также содержит объявления для переменной my_global и функции my_function:
extern int myglobal; extern int my_function(int var1, double var2);
Пользовательский исходный файл sf_custom_code_constants_vars_fcns_src.c скомпилирован в сочетании с сгенерированным Stateflow кодом в один файл MEX S-функции.
Поскольку пользовательские определения появляются в верхней части сгенерированного файла заголовка машины sf_custom_code_constants_vars_fcns_sfun.h, вы можете получить доступ к ним во всех графиках, которые относятся к этой модели.