Можно сгенерировать код для Подсистемы одноразового использования, которая имеет предсказуемый функциональный интерфейс. Предсказуемый интерфейс может быть полезен для отладки и тестирования вашего кода и интеграции его с внешними приложениями. Сгенерированный код с 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++> Сборка эта Подсистема.
Вы не можете управлять именами аргумента.