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

Атомарный подграфик является графическим объектом, который помогает вам создать автономные субкомпоненты в графике Stateflow®. Атомарные подграфики поддерживаются только в диаграммах Stateflow в моделях Simulink®. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Подграфиков (Stateflow).

Цель примера

Примите, что у вас есть следующая модель, и график имеет два состояния:

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

Преобразуйте состояние в атомарный подграфик

Чтобы преобразовать состояние в атомарный подграфик, щелкните правой кнопкой по состоянию и выберите 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. Откройте диалоговое окно Model Configuration Parameters.

  2. В панели Code Generation, набор System target file к ert.tlc.

  3. В Code Generation> панель Report, выберите Create code generation report.

    Этот шаг автоматически выбирает Open report automatically и Code-to-model.

  4. Выберите Model-to-code.

  5. Нажмите Apply.

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

  1. В диалоговом окне Model Configuration Parameters перейдите к Code Generation> панель Symbols.

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

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

    • $N является именем блока.

    • $M является лексемой искажения.

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

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

  3. Нажмите 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.

Примечание

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