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

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

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

result = my_custom_function(in_args);

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

result = my_var.my_field;

Вызов кода С из Stateflow

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте