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

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

Исходная модель без атомарных субдиаграмм

Эта модель содержит два блока Sine Wave (Simulink): один с частотой 1 радиан в секунду, и другой с частотой 2 радиана в секунду.

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

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

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

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

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

Щелкните правой кнопкой мыши состояние A и выберите Group & Subchart > Atomic Subchart. Конечные A изменяется на атомарной субдиаграмме и отображает метку Atomic в левом верхнем углу.

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

  1. Откройте диалоговое окно свойств для субдиаграммы A щелчком правой кнопкой мыши по субдиаграмме и выбором Свойств.

  2. Установите свойство упаковки функции генерации кода в Reusable function.

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

  4. В поле Имя файла генерации кода введите saturator как имя файла.

  5. Нажмите кнопку ОК.

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

  1. На вкладке Моделирование щелкните Свойства графика > Настройки модели, чтобы открыть диалоговое окно Параметры конфигурации.

  2. На вкладке Генерации кода установите параметр System target файла равным ert.tlc.

  3. В разделе Генерация кода > Отчет выберите Создать отчет генерации кода.

  4. В разделе продвинутые параметры выберите Model-to-code.

  5. Нажмите Применить.

Шаг 4: Настройка сгенерированных Имен функции

В диалоговом окне Параметров конфигурации, на вкладке Генерации кода > Identifiers, установите параметр Subsystem methods в формат схемы $R$N$M$F, где:

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

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

  • $M - это мангльная лексема.

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

Сгенерируйте код

Чтобы сгенерировать код для вашей модели при помощи Embedded Coder ®, нажмите Ctrl + B.

Отчет о генерации кода содержит ссылки на код, сгенерированный из графика (файлы модели) и атомарной субдиаграммы (файлы подсистемы). Чтобы просмотреть код субдиаграммы, щелкните saturator.c гиперссылка.

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

  • Имя корневой модели ex_reuse_states.

  • Имя блока A.

  • Лексема мангле пуста.

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

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

См. также

(Simulink)

Похожие темы