Сгенерируйте предсказуемый функциональный интерфейс, чтобы совпадать с графическим интерфейсом блока

Можно сгенерировать код для Подсистемы одноразового использования, которая имеет предсказуемый функциональный интерфейс. Предсказуемый интерфейс может быть полезен для отладки и тестирования вашего кода и интеграции его с внешними приложениями. Сгенерированный код с predicatable функциональным интерфейсом более читаем.

Когда вы задаете интерфейс Function параметров блоков как Allow arguments (Match graphical interface), сгенерированный функциональный интерфейс совпадает с графическим интерфейсом блока Подсистемы. Например, если Подсистема имеет двух Инпортов и один Выходной порт, функциональный интерфейс генерирует два аргумента для Инпортов и один аргумент функции для Выходного порта. Порядок аргументов определяется индексом порта. Функциональный интерфейс предсказуем и не изменяется.

Когда вы генерируете код для Подсистемы одноразового использования с набором интерфейса Function параметров блоков к Allow arguments (Optimized), генератор кода генерирует интерфейс функции Подсистемы, который передает данные через аргументы. Аргументы функции не могут соответствовать с графическим интерфейсом блока Подсистемы.

В этом примере показано, как сгенерированный код отличается, когда вы задаете интерфейс Function как Allow arguments (Optimized) и Allow arguments (Match graphical interface).

Сгенерируйте функциональный интерфейс, который оптимизировал аргументы

1. Откройте модель ex_mux_allow_arguments в качестве примера. Подсистема в модели содержит три входных параметров и два выходных параметров.

2. Щелкните правой кнопкой по Subsystem и выберите Block Parameters (Subsystem) из контекстного меню. В качестве альтернативы щелкните в Подсистеме, чтобы открыть диалоговое окно Block Parameters в панели Property Inspector.

3. Наблюдайте эти предварительно установленные настройки, которые необходимы, чтобы сгенерировать ожидаемый код:

  • Во вкладке Main Обработка параметров блоков, когда выбран атомарный модуль.

  • Во вкладке Code Generation Функциональной упаковкой является Nonreusable function и интерфейсом Function является Allow arguments (Optimized).

4. Откройте приложение Embedded Coder. Нажмите Build.

Сгенерированный код в ex_mux_allow_arguments.c файл содержит интерфейс функции Подсистемы с аргументами:

/* Output and update for atomic system: '<Root>/Subsystem' */
static void FPCSS_Mux(real_T rtu_In1, real_T rtu_In2, real_T rty_Out2[4])
{
  /* Constant: '<S1>/Constant1' */
  rtDW.Constant1 = 5.0;

  /* Gain: '<S1>/Gain4' */
  rtDW.Gain4 = 10.0 * rtu_In1;

  /* Gain: '<S1>/Gain1' incorporates:
   *  Constant: '<S1>/Constant'
   */
  rty_Out2[0] = 150.0;
  rty_Out2[1] = 15.0 * rtu_In2;
  rty_Out2[2] = 15.0 * rtu_In1;
  rty_Out2[3] = 15.0 * rtu_In2;
}

Allow arguments (Optimized) спецификация приводит к оптимизированному сгенерированному коду путем сокращения глобального RAM. Функциональный интерфейс имеет некоторые вводы и выводы как аргументы функции. Сгенерированный функциональный интерфейс не совпадает с графическим интерфейсом блока Подсистемы.

Сгенерируйте Функциональный Интерфейс, Который Имеет Аргументы тот Графический интерфейс Соответствия

1. В модели ex_mux_allow_arguments в качестве примера, откройте диалоговое окно Subsystem Block Parameters.

2. На вкладке Code Generation задайте интерфейс Function как Allow arguments (Match graphical interface) и нажмите Apply.

3. Сгенерируйте код для модели.

Сгенерированный код в ex_mux_allow_arguments.c файл содержит интерфейс функции Подсистемы с аргументами, которые совпадают с интерфейсом блока Subsystem:

/* Output and update for atomic system: '<Root>/Subsystem' */
static void FPCSS_Mux(real_T rtu_In1, const real_T rtu_In2[2], real_T rtu_In3,
                      real_T rty_Out1[2], real_T rty_Out2[4])
{
  /* SignalConversion generated from: '<S1>/Out1' incorporates:
   *  Constant: '<S1>/Constant1'
   *  Gain: '<S1>/Gain4'
   */
  rty_Out1[0] = 5.0;
  rty_Out1[1] = 10.0 * rtu_In1;

  /* Gain: '<S1>/Gain1' incorporates:
   *  Constant: '<S1>/Constant'
   */
  rty_Out2[0] = 150.0;
  rty_Out2[1] = 15.0 * rtu_In3;
  rty_Out2[2] = 15.0 * rtu_In2[0];
  rty_Out2[3] = 15.0 * rtu_In2[1];
}

Allow arguments (Match graphical interface) спецификация генерирует предсказуемый интерфейс и сопоставляет аргументы функции с графическим интерфейсом блока Subsystem. Существуют массивы, когда часть аргументов функции, чтобы составлять комбинацию ввода или вывода сигнализирует, что th блок Mux использует.

Для Enabled, инициированной, или восстановленной подсистемы с Allow arguments (Match graphical interface) спецификация, сгенерированная функция содержит аргументы, соответствующие, каждый Включает, блок Trigger и/или подарок блока Reset в той Подсистеме.

Ограничения

  • Набор интерфейса Function как Allow arguments (Match graphical interface) спецификация не применима к опции контекстного меню C/C++> Сборка эта Подсистема.

  • Вы не можете управлять именами аргумента.

Похожие темы