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

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

Задавать параметры генерации кода для соединенных атомарных субдиаграмм от той же библиотеки:

  1. Откройте модель библиотеки, которая содержит вашу атомарную субдиаграмму.

  2. Разблокируйте библиотеку.

  3. Щелкните правой кнопкой по графику библиотеки и выберите Block Parameters.

  4. В диалоговом окне задайте следующие параметры:

    1. На вкладке Main выберите параметр Treat as atomic unit.

    2. На вкладке Code Generation, установленный параметр Function packaging к Reusable function.

    3. Установите File name options на User specified.

    4. Для File name введите имя файла без расширения.

    5. Нажмите OK, чтобы применить изменения.

  5. (НЕОБЯЗАТЕЛЬНО) Настройте сгенерированные имена функций для атомарных субдиаграмм:

    1. Установите параметр конфигурации модели System target file на ert.tlc.

    2. Для параметра конфигурации модели Subsystem methods задайте формат имен функций с помощью комбинации следующих лексем правила именования:

      • $R — корневое имя модели

      • $F — тип функции интерфейса для атомарной субдиаграммы

      • $N — имя блока

      • $H — индекс подсистемы

      • $M — искажающий имя текст

    3. Нажмите OK, чтобы применить изменения.

Когда вы генерируете код для своей модели, отдельные хранилища файлов код для соединенных атомарных субдиаграмм от той же библиотеки.

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

Задавать параметры генерации кода для расцепляемой атомарной субдиаграммы:

  1. В вашем графике щелкните правой кнопкой по атомарной субдиаграмме и выберите Properties.

  2. В диалоговом окне задайте следующие свойства:

    1. Установите свойство Code generation function packaging на Reusable function.

    2. Установите Code generation file name options на User specified.

    3. Для Code generation file name введите имя файла без расширения.

    4. Нажмите OK, чтобы применить изменения.

  3. (НЕОБЯЗАТЕЛЬНО) Настройте сгенерированные имена функций для атомарных субдиаграмм:

    1. Установите параметр конфигурации модели System target file на ert.tlc.

    2. Для параметра конфигурации модели Subsystem methods задайте формат имен функций с помощью комбинации следующих лексем правила именования:

      • $R — корневое имя модели

      • $F — тип функции интерфейса для атомарной субдиаграммы

      • $N — имя блока

      • $H — индекс подсистемы

      • $M — искажающий имя текст

    3. Нажмите OK, чтобы применить изменения.

Когда вы генерируете код для своей модели, отдельные хранилища файлов код для атомарной субдиаграммы. Для получения дополнительной информации смотрите, Генерируют Код от Атомарных Субдиаграмм.

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

Преобразуйте состояние в атомарную субдиаграмму

Чтобы преобразовать состояние в атомарную субдиаграмму, щелкните правой кнопкой по состоянию и выберите Group & Subchart> Atomic Subchart. Состояние изменения в атомарной субдиаграмме:

Настройте автономный файл C для атомарной субдиаграммы

  1. Откройте диалоговое окно свойств для A.

  2. Установите свойство Code generation function packaging на Reusable function.

  3. Установите Code generation file name options на User specified.

  4. Для Code generation file name введите saturator как имя файла.

  5. Нажмите OK.

Настройте отчет генерации кода

  1. Установите параметр конфигурации модели System target file на ert.tlc.

  2. Выберите параметры конфигурации модели Create code generation report и Open report automatically.

  3. Выберите параметры Code-to-model и Model-to-code.

  4. Нажмите Apply.

Настройте сгенерированные имена функций

  1. Установите параметр конфигурации модели Subsystem methods на схему $R$N$M$F формата, где:

    • $R корневое имя модели.

    • $N имя блока.

    • $M лексема искажения.

    • $F тип функции интерфейса для атомарной субдиаграммы.

    Для получения дополнительной информации см. методы Подсистемы (Embedded Coder).

  2. Нажмите Apply.

Сгенерируйте код только для атомарной субдиаграммы

Чтобы сгенерировать код для вашей модели, нажмите Ctrl+B. В отчете генерации кода, который появляется, вы видите отдельный файл, который содержит сгенерированный код для атомарной субдиаграммы.

Смотреть код для saturator.c, кликните по гиперссылке в отчете видеть следующий код:

Линия 28 показывает что during функция, сгенерированная для атомарной субдиаграммы, имеет имя ex_reuse_states_A_during. Это имя следует схеме $R$N$M$F формата заданный для Subsystem methods:

  • $R корневое имя модели, ex_reuse_states.

  • $N имя блока, A.

  • $M лексема искажения, которая пуста.

  • $F тип функции интерфейса для атомарной субдиаграммы, during.

Примечание

Показанные номера строки могут отличаться от чисел, которые появляются в вашем отчете генерации кода.

Упаковка файла для атомарных подсистем (только код)

Эта модель показывает, как разделить атомарную подсистему в ее собственный исходный файл. Если подсистема задана как атомарная, на диалоговом окне Параметра блока Subsystem, на вкладке Code Generation, можно задать, как подсистема представлена в сгенерированном коде с помощью Функции упаковочный параметр:

  • Inline: Встроенная функция

  • Function: функция с вводом-выводом, переданным как глобальные данные

  • Reusable function: функция с вводом-выводом, переданным как аргументы функции

  • Auto: Simulink Coder оптимизирует на основе контекста

С Function и Reusable function опции, можно задать функцию и имя файла с Именем функции и Имя файла, соответственно. В модели, rtwdemo_filepart, SS1 подсистема сконфигурирована как Reusable function с именем функции myfun и имя файла myfile.

open_system('rtwdemo_filepart')

Эта возможность только делит код для подсистемы. Данные объявляются и принадлежат родительской модели. Для полной системной инкапсуляции (i.e., данные и функции), используйте Модель - ссылку.

bdclose('rtwdemo_filepart');

Похожие темы