Определение прототипа функции

В этом примере показано, как создать и настроить вашего прототипа функции.

C построение

double add_function(double u1, double u2)
{ 
   return u1 + u2;
}

Вызов функции при помощи графических функций

1. Открытая модель ex_func_SF в качестве примера. Эта модель в качестве примера содержит два блока Inport и один блок Outport.

Диаграмма Stateflow содержит графическую функцию, которую вы создаете путем нажатия fx кнопки и размещения графической функции в диаграмму Stateflow.

Графическая функция содержит эту подпись:

output = add_function(u1, u2)

В диаграмме Stateflow существует пример простого перехода, который вызывает add_function.

2. Откройте Model Explorer. От дерева Иерархии модели выберите ex_func_SF> График> add_function. На правой панели убедитесь, что Встроенная Опция Функции установлена как Function.

3. От дерева Иерархии модели нажмите Chart. На правой панели убеждаются, что параметр Функций Уровня Графика Экспорта выбран.

4. Чтобы создать модель и сгенерировать код, нажмите Ctrl+B.

ex_func_SF.c содержит сгенерированный код:

/* Function for Chart: '<Root>/Chart' */
void add_function(real_T in1, real_T in2, real_T *output)
{
  *output = in1 + in2;
}

/* Model step function */
void ex_func_SF_step(void)
{
  /* Chart: '<Root>/Chart' incorporates:
   *  Inport: '<Root>/u1'
   *  Inport: '<Root>/u2'
   */
  add_function(u1, u2, &y1);

  /* Outport: '<Root>/y1' */
  rtY.y1_e = y1;
}

Прототип Функции управления Функции model_step

1. Открытая модель ex_control_step_function в качестве примера.

2. Откройте перспективу Кода. В редакторе Отображений Кода выберите вкладку Entry-Point Functions.

3. В строке ступенчатой функции, в соответствии с Функциональным столбцом Предварительного просмотра, кликают по прототипной гиперссылке. Диалоговое окно настройки, используемое для индивидуальной настройки, открывается. Первое поле в диалоговом окне, C прототип функции, автоматически обновляется, чтобы предварительно просмотреть изменения в ступенчатой функции, когда вы делаете их.

4. Поменяйте имя функции. Если вы не задаете имя, генератор кода называет функцию на основе правила именования значения по умолчанию. В данном примере переименуйте функцию установкой C Step Function Name к ex_control_run. Функциональный предварительный просмотр изменяется, чтобы отразить новое имя ступенчатой функции.

5. Сконфигурируйте аргументы ступенчатой функции. Если приложение требует void-void интерфейс, очистите аргументы Configure для прототипа Ступенчатой функции. В данном примере выберите ту опцию.

6. Отобразите текущие настройки по умолчанию для аргументов функции точки входа путем нажатия на значение по умолчанию Get. Появляется обновленная схема.

7. Сконфигурируйте функциональный возвращаемый аргумент возвращаемым аргументом установки C к void или один из перечисленных аргументов выходного порта. В данном примере выберите void. Проверяйте свое изменение в предварительный просмотр.

8. Сконфигурируйте входной параметр функции и выходные аргументы. Для каждого корневого импорта и выходного порта, можно изменить спецификатор типа C и имя аргумента. Для получения дополнительной информации смотрите, Конфигурируют Имя и Аргументы для Отдельных Ступенчатых функций.

Для этого примера:

  • Для u1, установите Спецификатор Типа C на Value и имя идентификатора C к arg_u1.

  • Для u2, установите Спецификатор Типа C на Pointer to const и имя идентификатора C к arg_u2.

  • Для выходного порта, набор C Имя Идентификатора к arg_y1.

Рассмотрите свои изменения в предварительном просмотре.

9. Чтобы подтвердить ваши изменения, нажмите Validate.

10. Примените свои изменения. Нажмите Apply. Затем нажмите ОК.

11. Чтобы создать модель и сгенерировать код, нажмите Ctrl+B.

ex_control_step_function.c содержит сгенерированный код:

void ex_control_run(real_T arg_u1, const real_T *arg_u2, real_T *arg_y1)

Похожие темы