Сгенерированные идентификаторы можно настроить, указав параметры управления Формат идентификатора (Identifier format) на панели Создание кода (Code Generation) > Идентификаторы (Identifiers) в диалоговом окне Параметры конфигурации (Configuration Parameters). Для каждого параметра можно ввести макрос, указывающий, включен ли определенный текст в сгенерированные идентификаторы и в каком порядке. Например, можно указать, что имя корневой модели будет вставлено в каждый идентификатор, используя $R токен.
Макрос может включать в себя:
Допустимые маркеры, перечисленные в поле «Маркеры формата идентификатора». Маркеры можно использовать или опускать в зависимости от того, что требуется включить в имя идентификатора. Параметр формата идентификатора общих утилит требует указания токена контрольной суммы. $C. Другие параметры требуют маркера искажения, $M. Дополнительные сведения см. в разделе Управление именами элементов управления в сгенерированных идентификаторах. Маркер искажения подвержен ограничениям использования и упорядочения, указанным в значениях управляющих параметров формата идентификатора.
Маркеры-декораторы, которые перечислены в контрольном случае с маркерами-декораторами. Можно использовать декораторы токенов для управления случаем сгенерированных идентификаторов для каждого токена.
Допустимые символы идентификатора языка C или C++ (a-z, A-Z, _ , 0-9).
Процесс построения генерирует каждый идентификатор путем расширения маркеров и вставки результирующего текста в идентификатор. Маркеры расширяются в порядке, указанном в поле «Маркеры формата идентификатора». Группы символов вставляются в позиции вокруг маркеров непосредственно в идентификатор. Смежные расширения маркеров разделяются подчеркиванием (_) символ.
Маркеры формата идентификатора
| Символ | Описание |
|---|---|
$C | Этот маркер необходим для формата идентификатора общих утилит. Если идентификатор превышает максимальную длину идентификатора, генератор кода вставляет 8-символьную контрольную сумму, чтобы избежать конфликтов имен. Положение |
$M | Этот маркер является обязательным. При необходимости генератор кода вставляет искомый текст, чтобы избежать конфликтов имен. Измените длину символа контрольной суммы с помощью параметра Общая длина контрольной суммы. Положение |
$U | Вставка текста, указанного для |
$F | Имя метода вставки (например, |
$N | Имя вставки объекта (объекта блока, сигнала или сигнала, состояния, параметра, общей функции утилиты или объекта параметра), для которого создается идентификатор. |
$R | Вставьте имя корневой модели в идентификатор, заменив неподдерживаемые символы символом подчеркивания ( Примечание.Этот маркер заменяет параметр Префикс имени модели на глобальные идентификаторы в предыдущих версиях. |
$H | Вставка тега, указывающего уровень иерархии системы. Для блоков корневого уровня тегом является текст Примечание.Этот маркер заменяет параметр «Включить номер иерархии системы в идентификаторы» в предыдущих версиях. |
$A | Аббревиатура вставки типа данных (например, Примечание.Этот маркер заменяет аббревиатуру Include data type in identifier в предыдущих версиях. |
$I |
Например, |
$G | Вставьте имя класса хранения, связанного с элементом данных. Этот маркер также доступен в правиле именования, указанном для файла заголовка класса хранения в словаре Embedded Coder ®. |
$E | Вставьте тип файла.
Этот маркер необходим для заголовочных и исходных файлов. |
В поле Значения параметра управления форматом идентификатора (Identifier Format Control Parameter Values) перечислены значение макроса по умолчанию, поддерживаемые маркеры и применимые ограничения для каждого параметра управления форматом идентификатора.
Значения управляющих параметров формата идентификатора
| Параметр | Значение по умолчанию | Поддерживаемые маркеры | Ограничения |
|---|---|---|---|
| Глобальные переменные | $R$N$M | $M, $R, $G,$N,$U | $F, $H, $A, $E, и $I не допускаются. |
| Глобальные типы | $N$R$M_T | $M, $R, $G,$N,$U | $F, $H, $A, $E, и $I не допускаются. |
| Имя поля глобальных типов | $N$M | $M, $N, $H, $A, $U | $R, $F, $G, $E, и $I не допускаются. |
| Методы подсистем | $R$N$M$F | $M, $R, $N, $H, $F, $U | $F и $H пусты для функций Stateflow ® ;$A, $G, $E, и $I не допускаются. |
| Аргументы метода подсистемы | rt$I$N$M
| $M, $N, $I, $U | $R, $F, $H, $G, $E, и $A не допускаются. |
| Локальные временные переменные | $N$M | $M, $R, $N, $A, $U | $F, $H, $G, $E, и $I не допускаются. |
| Выходные переменные локального блока | rtb_$N$M | $M, $N, $A, $U | $R, $F, $H, $G, $E, и $I не допускаются. |
| Постоянные макросы | $R$N$M | $M, $R, $N, $U | $F, $H, $A, $G, $E, и $I не допускаются. |
| Формат идентификатора общих утилит | $N$C | $N, $C, $R, $U | $C требуется. $M, $F, $H, $A, $G, $E, и $I не допускаются. |
| Формат идентификатора служебных функций массива EMX | emx$M$N | $M, $N,$R | $C, $U, $F, $H, $A, $G, $E, и $I не допускаются. |
| Формат идентификатора типов массива EMX | emxArray_$M$N | $M, $N,$R |
$C, $U, $F, $H, $A, $G, $E, и $I не допускаются. |
| Заголовочные файлы | $R$E | $R,$U,$E |
$C, $M, $N, $F, $H, $A, $G, и $I не допускаются. |
| Исходные файлы | $R$E | $R,$U,$E |
$C, $M, $N, $F, $H, $A, $G, и $I не допускаются. |
| Файлы данных | $R_data | $R,$U |
$C, $M, $N, $F, $H, $A, $G, $E, и $I не допускаются. |
Цели, не основанные на ERT (например, цель GRT), неявно используют значение по умолчанию $R$N$M спецификация. Эта спецификация по умолчанию состоит из имени корневой модели, за которым следует имя генерирующего объекта (сигнал, параметр, состояние и т. д.), за которым следует текст управления именами.
Ограничения, применимые к параметрам управления форматом идентификатора, см. в разделах Исключения из правил форматирования идентификаторов и Ограничения параметров управления форматом идентификаторов.
На панели «Создание кода» > «Идентификаторы» можно использовать декораторы маркеров для управления случаем созданных идентификаторов. Поместите декоратор сразу после маркера цели и заключите его в квадратные скобки [ ]. Например, можно задать для параметра Глобальные переменные значение $R[uL]$N$M, которая заглавно переводит первую букву имени модели и заставляет остальные символы в имени модели переходить в нижний регистр.
В таблице показано, как управлять расширением $R маркер для модели, имя которой modelName.
| Требуемое расширение | Описание | Маркер и декоратор |
|---|---|---|
ModelName | Первая буква имени модели - прописная. Остальные символы не изменяются. | $R[u] |
Modelname | Первая буква имени модели - прописная. Остальные символы - строчные. | $R[uL] |
MODELNAME | Все символы прописные. | $R[U] |
modelname | Все символы имеют строчный регистр. | $R[L] |
mODELNAME | Первая буква имени модели имеет строчный регистр. Остальные символы - прописные. | $R[lU] |
modelName | Первая буква имени модели имеет строчный регистр. Остальные символы не изменяются. | $R[l] |
При использовании декоратора генератор кода удаляет символ подчеркивания (_), которая отображается между маркерами по умолчанию. Однако каждый декоратор можно добавить с подчеркиванием: $R[U_]$N. Например, если для параметра Глобальные переменные задано значение $R[u_]$N[uL]$M для модели с именем modelName и DWork структура, представленная DW, результат: ModelName_Dw.
В этом примере показано, как можно настроить сгенерированные идентификаторы, указав параметры управления Формат идентификатора на панели Создание кода (Code Generation) > Идентификаторы (Identifiers) в диалоговом окне Параметры конфигурации (Configuration Parameters). Для поддержания прослеживаемости модели важно, чтобы инкрементные ревизии модели оказывали минимальное влияние на имена идентификаторов, которые появляются в сгенерированном коде. В этом примере показано, как можно использовать управление именами, указывая параметры управления форматом идентификатора, чтобы минимально повлиять на имена идентификаторов.
model='rtwdemo_symbols';
open_system(model)

% Cleanup
rtwdemoclean;
close_system(model,0)