Можно настроить сгенерированные идентификаторы, задав параметры Identifier format control на панели Code Generation > Identifiers в диалоговом окне Параметры конфигурации. Для каждого параметра можно ввести макрос, который определяет, включен ли определенный текст в сгенерированные идентификаторы и в каком порядке. Например, можно задать, чтобы имя корневой модели было вставлено в каждый идентификатор с помощью $R
лексема.
Макрос может включать:
Действительные лексемы, перечисленные в лексемах идентификатора. Вы можете использовать или опускать лексемы в зависимости от того, что вы хотите включить в имя идентификатора. Параметр Shared utilities identifier format требует, чтобы вы указали лексему контрольной суммы, $C
. Другие параметры требуют искривления лексемы, $M
. Для получения дополнительной информации см. раздел «Управление именем» в разделе «Сгенерированные идентификаторы». Лексема управления подвержена ограничениям использования и упорядоченного расположения, отмеченным в Значениях параметров управления формата идентификатора.
Декораторы токенов, которые перечислены в Control Case with Token Decorators. Можно использовать декораторы токенов, чтобы управлять случаем сгенерированных идентификаторов для каждой лексемы.
Действительные символы идентификатора языка 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 Parameter Values перечисляет значение макроса по умолчанию, поддерживаемые лексемы и применимые ограничения для каждого параметра Identifier format control.
Идентификатор Формат Значений Параметров Управления
Параметр | Значение по умолчанию | Поддерживаемые лексемы | Ограничения |
---|---|---|---|
Global variables | $R$N$M | $M , $R , $G , $N , $U | $F , $H , $A , $E , и $I не разрешены. |
Global types | $N$R$M_T | $M , $R , $G , $N , $U | $F , $H , $A , $E , и $I не разрешены. |
Field name of global types | $N$M | $M , $N , $H , $A , $U | $R , $F , $G , $E , и $I не разрешены. |
Subsystem methods | $R$N$M$F | $M , $R , $N , $H , $F , $U | $F и $H пусты для Stateflow® функции; $A , $G , $E , и $I не разрешены. |
Subsystem method arguments | rt$I$N$M
| $M , $N , $I , $U | $R , $F , $H , $G , $E , и $A не разрешены. |
Local temporary variables | $N$M | $M , $R , $N , $A , $U | $F , $H , $G , $E , и $I не разрешены. |
Local block output variables | rtb_$N$M | $M , $N , $A , $U | $R , $F , $H , $G , $E , и $I не разрешены. |
Constant macros | $R$N$M | $M , $R , $N , $U | $F , $H , $A , $G , $E , и $I не разрешены. |
Shared utilities identifier format | $N$C | $N , $C , $R , $U | $C обязательно. $M , $F , $H , $A , $G , $E , и $I не разрешены. |
EMX array utility functions identifier format | emx$M$N | $M , $N , $R | $C , $U , $F , $H , $A , $G , $E , и $I не разрешены. |
EMX array types identifier format | 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 не разрешены. |
Цели, не основанные на ERT (такие как цель GRT), неявно используют $R$N$M
по умолчанию спецификация. Эта спецификация по умолчанию состоит из имени корневой модели, за которым следует имя генерирующего объекта (сигнал, параметр, состояние и так далее), за которым следует текст управления именем.
Для ограничений, которые применяются к параметрам Identifier format control, смотрите Исключения к Соглашениям о форматировании идентификаторов и Ограничения параметров управления формата идентификатора.
На панели Code Generation > Identifiers можно использовать декораторы маркеров для управления случаем сгенерированных идентификаторов. Поместите декоратор сразу после целевой лексемы и заключайте декоратор в квадратные скобки [ ]
. Для примера можно задать 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
и a DWork
структура, представленная DW
, результатом является ModelName_Dw
.
В этом примере показано, как можно настроить сгенерированные идентификаторы путем определения параметров управления форматом идентификатора на панели Генерация кода > Идентификаторы в диалоговом окне Параметры конфигурации. Чтобы сохранить трассируемость модели, важно, чтобы инкрементные изменения модели оказывали минимальное влияние на имена идентификаторов, которые появляются в сгенерированном коде. В этом примере показано, как можно использовать управление именами путем определения параметров управления форматом идентификатора, чтобы минимально повлиять на имена идентификаторов.
model='rtwdemo_symbols';
open_system(model)
% Cleanup
rtwdemoclean;
close_system(model,0)