Можно настроить сгенерированные идентификаторы путем определения параметров Identifier format control на панели Code Generation > Symbols в диалоговом окне Configuration Parameters. Для каждого параметра можно ввести макрос, который задает, ли, и в том, какой порядок, определенный текст включен в сгенерированных идентификаторах. Например, можно указать, что корневое имя модели вставляется в каждый идентификатор с помощью лексемы $R
.
Макрос может включать:
Допустимые лексемы, которые перечислены в Лексемах Формата Идентификатора. Можно использовать или не использовать лексемы в зависимости от того, что вы хотите включать в имя идентификатора. Параметр Shared utilities identifier format требует, чтобы вы задали лексему контрольной суммы, $C
. Другие параметры требуют лексемы искажения, $M
. Для получения дополнительной информации смотрите, что Имя элемента управления Искажает в Сгенерированных Идентификаторах. Лексема искажения подвергается использованию и ограничениям упорядоченного расположения, отмеченным в Значениях параметров Управления форматом Идентификатора.
Маркерные декораторы, которые перечислены в Случае Управления с Маркерными Декораторами. Можно использовать маркерных декораторов, чтобы управлять случаем сгенерированных идентификаторов для каждой лексемы.
Допустимый C или символы идентификатора языка C++ (a-z, A-Z, _ , 0-9
).
Процесс сборки генерирует каждый идентификатор путем расширения лексем и вставки результирующего текста в идентификатор. Лексемы расширены в порядке, перечисленном в Лексемах Формата Идентификатора. Группы символов вставляются в положения, которые вы задаете вокруг лексем непосредственно в идентификатор. Непрерывные маркерные расширения разделяются подчеркиванием (_
) символ.
Лексемы формата идентификатора
Лексема | Описание |
---|---|
$C | Эта лексема требуется для Shared utilities identifier format. Если идентификатор превышает Maximum identifier length, генератор кода вставляет контрольную сумму с 8 символами, чтобы не называть столкновения. Положение лексемы |
$M |
Эта лексема требуется. При необходимости генератор кода вставляет искажающий имя текст, чтобы не называть столкновения. Измените длину знака контрольной суммы при помощи параметра Shared checksum length. Положение лексемы |
$U | Вставьте текст, который вы задаете для лексемы |
$F | Вставьте имя метода (например, |
$N | Вставьте имя объекта (блок, объект сигнала или сигнала, состояние, параметр, совместно использовало служебную функцию или объект параметра), для которого генерируется идентификатор. |
$R | Вставьте корневое имя модели в идентификатор, заменив неподдерживаемые символы на подчеркивание ( Примечание: Эта лексема заменяет опцию Prefix model name to global identifiers в предыдущих релизах. |
$H | Вставьте тег, указывающий на уровень системной иерархии. Для блоков корневого уровня тег является текстом Примечание: Эта лексема заменяет опцию Include System Hierarchy Number in Identifiers в предыдущих релизах. |
$A | Вставьте акроним типа данных (например, Примечание: Эта лексема заменяет опцию Include data type acronym in identifier в предыдущих релизах. |
$I |
Например, |
$G | Вставьте имя класса памяти, который сопоставлен с элементом данных. Эта лексема также доступна в правиле именования, что вы задаете для Header File для класса памяти в Словаре Embedded Coder®. |
$E | Вставьте тип файла.
Эта лексема требуется для Header files и Source files. |
Значения параметров Управления форматом идентификатора перечисляют макро-значение по умолчанию, поддерживаемые лексемы и применимые ограничения для каждого параметра Identifier format control.
Значения параметров управления форматом идентификатора
Параметр | Значение по умолчанию | Поддерживаемые лексемы | Ограничения |
---|---|---|---|
Global variables (Simulink Coder) | $R$N$M | $M , $R , $G , $N , $U | $F , $H , $A , $E и $I не позволены. |
Global types (Simulink Coder) | $N$R$M_T | $M , $R , $G , $N , $U | $F , $H , $A , $E и $I не позволены. |
Field name of global types (Simulink Coder) | $N$M | $M , $N , $H , $A , $U | $R , $F , $G , $E и $I не позволены. |
Subsystem methods (Simulink Coder) | $R$N$M$F | $M , $R , $N , $H , $F , $U | $F и $H пусты для функций Stateflow®; $A , $G , $E и $I не позволены. |
Subsystem method arguments (Simulink Coder) | rt$I$N$M | $M , $N , $I , $U | $R , $F , $H , $G , $E и $A не позволены. |
Local temporary variables (Simulink Coder) | $N$M | $M , $R , $N , $A , $U | $F , $H , $G , $E и $I не позволены. |
Local block output variables (Simulink Coder) | rtb_$N$M | $M , $N , $A , $U | $R , $F , $H , $G , $E и $I не позволены. |
Constant macros (Simulink Coder) | $R$N$M | $M , $R , $N , $U | $F , $H , $A , $G , $E и $I не позволены. |
Shared utilities identifier format (Simulink Coder) | $N$C | $N , $C , $R , $U | $C требуется. $M , $F , $H , $A , $G , $E и $I не позволены. |
EMX array utility functions identifier format (Simulink Coder) | emx$M$N | $M , $N , $R | $C , $U , $F , $H , $A , $G , $E и $I не позволены. |
EMX array types identifier format (Simulink Coder) | emxArray_$M$N | $M , $N , $R |
$C , $U , $F , $H , $A , $G , $E и $I не позволены. |
Header files | $R$E | $R , $U , $E |
$C , $M , $N , $F , $H , $A , $G и $I не позволены. |
Source files | $R$E | $R , $U , $E |
$C , $M , $N , $F , $H , $A , $G и $I не позволены. |
Data files | $R_data | $R , $U |
$C , $M , $N , $F , $H , $A , $G , $E и $I не позволены. |
Цели Non-ERT-based (такие как цель GRT) неявно используют спецификацию $R$N$M
по умолчанию. Эта спецификация по умолчанию состоит из корневого имени модели, сопровождаемого под названием генерирующийся объект (сигнал, параметр, состояние, и так далее), сопровождаемый искажающим имя текстом.
Для ограничений, которые применяются к параметрам Identifier format control, смотрите Исключения к Соглашениям Форматирования Идентификатора и Ограничения Параметров Управления форматом Идентификатора.
На Code Generation> панель Symbols, можно использовать маркерных декораторов, чтобы управлять случаем сгенерированных идентификаторов. Разместите декоратора сразу после целевой лексемы и заключите декоратора в квадратные скобки [ ]
. Например, можно установить Global variables на $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
. Например, если вы устанавливаете параметр Global variables на $R[u_]$N[uL]$M
для модели под названием modelName
и структура DWork
, представленная DW
, результатом является ModelName_Dw
.
Этот пример показывает, как можно настроить сгенерированные идентификаторы путем определения параметров управления форматом Идентификатора на Генерации кода> панель Символов в диалоговом окне Configuration Parameters.
model='rtwdemo_symbols';
open_system(model)
% Cleanup
rtwdemoclean;
close_system(model,0)