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