Эта модель показывает, как Stateflow® позволяет вам включать и вызывать свои пользовательски записанные функции кода С.
В этом конкретном примере, функции, определяемой 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, выберите Целевую панель Симуляции и войдите:
Заголовочный файл: Заголовок, который задает функции, структуры и данные, чтобы быть доступным Stateflow.
Включайте директории: Путь к папкам, которые содержат ваш пользовательский код.
Исходные файлы: C-файлы, которые задают функции и данные, доступные Stateflow.
Если вы генерируете код через Simulink Coder, добавьте те же настройки в Генерацию кода> панель Пользовательского кода.
Функции: диаграммы Stateflow вызывают пользовательские функции кода С при помощи того же синтаксиса как графические, таблица истинности, MATLAB® и вызовы функции Simulink®:
result = my_custom_function(in_args);
Структуры: диаграммы Stateflow могут переменные доступа типа структуры при помощи записи через точку:
result = my_var.my_field;
Пользовательский Код С++ может также быть интегрирован в Stateflow и Simulink Coder. Для получения дополнительной информации смотрите Генерацию Кода С++ и Интегрирование в Stateflow.