Можно настроить сгенерированные идентификаторы, задав параметры 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)