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

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

Поскольку этот пример не использует атомарные субдиаграммы, сгенерированный код для всей модели хранится в одном файле. Чтобы найти код для определенной части графика, необходимо просмотреть весь файл.
Напротив, можно преобразовать состояние A для атомарной субдиаграммы и указать, что код для субдиаграммы появляется в отдельном файле. Этот метод генерации кода позволяет выполнить модульное тестирование для определенной части графика. Вы избегаете поиска через несвязанный код и фокусируетесь только на коде, который вас интересует.
Шаг 1. Преобразование состояния в атомарную субдиаграмму
Щелкните правой кнопкой мыши состояние A и выберите Group & Subchart > Atomic Subchart. Конечные A изменяется на атомарной субдиаграмме и отображает метку Atomic в левом верхнем углу.

Шаг 2: Настройка автономного файла C для атомарной субдиаграммы
Откройте диалоговое окно свойств для субдиаграммы A щелчком правой кнопкой мыши по субдиаграмме и выбором Свойств.
Установите свойство упаковки функции генерации кода в Reusable function.
Установите значение свойства Code generation file name options User specified.
В поле Имя файла генерации кода введите saturator как имя файла.
Нажмите кнопку ОК.
Шаг 3: Настройка отчета генерации кода
На вкладке Моделирование щелкните Свойства графика > Настройки модели, чтобы открыть диалоговое окно Параметры конфигурации.
На вкладке Генерации кода установите параметр System target файла равным ert.tlc.
В разделе Генерация кода > Отчет выберите Создать отчет генерации кода.
В разделе продвинутые параметры выберите Model-to-code.
Нажмите Применить.
Шаг 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.
Примечание. Номера линий, которые появляются в отчете генерации кода, могут отличаться от показанных номеров.
Sine Wave (Simulink)