Включите пользовательские функции и структуры кода С

Эта модель показывает, как 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

Функции: Диаграммы Stateflow вызывают пользовательские функции C-кода с помощью того же синтаксиса, что и графические, таблицы истинности, вызовы функций MATLAB ® и Simulink ®:

result = my_custom_function(in_args);

Структуры: Диаграммы Stateflow могут получить доступ к переменным типа структуры с помощью записи через точку:

result = my_var.my_field;

Вызывающие Коды С из Stateflow

Пользовательский код С++ также может быть интегрирован в Stateflow и Simulink Coder. Для получения дополнительной информации смотрите Генерацию кода С++ и Интегрирование в Stateflow.

Похожие темы