Эта модель показывает, как Stateflow ® позволяет включать и вызывать пользовательские функции кода C.
В этом конкретном примере функция C, определенная в my_function.c и структура, которая определена в my_header.h включены в диаграмму. MY_FUNCTION умножает его входной сигнал на два. Структура в my_header.h определяется следующим образом:
typedef struct { real_T a; int8_T b[10]; } MyStruct;
Модель обращается к элементу структуры с помощью точечной нотации MyStruct.a а также с использованием указателя gMyStructPointerVar ->b[1].

Пользовательские написанные C-файлы можно легко интегрировать в модели Stateflow. Пользовательский код может использоваться для расширения возможностей диаграммы Stateflow и использования преимуществ устаревшего кода.
Чтобы добавить пользовательские C-файлы, откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters), выберите панель Цель моделирования (Simulation Target) и введите:
Файл заголовка: заголовок, определяющий функции, структуры и данные, которые будут доступны для Stateflow.
Включить каталоги: Путь к папкам, содержащим пользовательский код.
Исходные файлы: C-файлы, определяющие функции и данные, доступные Stateflow.
При создании кода с помощью Simulink Coder добавьте те же параметры на панель «Создание кода» > «Пользовательский код».
Функции: Диаграммы Stateflow вызывают пользовательские функции C-кода, используя тот же синтаксис, что и графические, таблицы истинности, вызовы функций MATLAB ® и Simulink ®:
result = my_custom_function(in_args);
Структуры: Диаграммы Stateflow могут обращаться к переменным структурного типа с помощью точечной нотации:
result = my_var.my_field;
Пользовательский код C++ также может быть интегрирован в Stateflow и Simulink Coder. Дополнительные сведения см. в разделе Генерация и интеграция кода C++ в Stateflow.