exponenta event banner

Управление форматом идентификатора

Сгенерированные идентификаторы можно настроить, указав параметры управления Формат идентификатора (Identifier format) на панели Создание кода (Code Generation) > Идентификаторы (Identifiers) в диалоговом окне Параметры конфигурации (Configuration Parameters). Для каждого параметра можно ввести макрос, указывающий, включен ли определенный текст в сгенерированные идентификаторы и в каком порядке. Например, можно указать, что имя корневой модели будет вставлено в каждый идентификатор, используя $R токен.

Макрос может включать в себя:

Процесс построения генерирует каждый идентификатор путем расширения маркеров и вставки результирующего текста в идентификатор. Маркеры расширяются в порядке, указанном в поле «Маркеры формата идентификатора». Группы символов вставляются в позиции вокруг маркеров непосредственно в идентификатор. Смежные расширения маркеров разделяются подчеркиванием (_) символ.

Маркеры формата идентификатора

СимволОписание
$C

Этот маркер необходим для формата идентификатора общих утилит. Если идентификатор превышает максимальную длину идентификатора, генератор кода вставляет 8-символьную контрольную сумму, чтобы избежать конфликтов имен. Положение $C маркер в спецификации управляющих параметров формата идентификатора определяет позицию контрольной суммы в сгенерированном идентификаторе. Например, при использовании спецификации $N$Cконтрольная сумма добавляется к концу идентификатора. Этот маркер доступен только для общих утилит.

$M

Этот маркер является обязательным. При необходимости генератор кода вставляет искомый текст, чтобы избежать конфликтов имен. Измените длину символа контрольной суммы с помощью параметра Общая длина контрольной суммы. Положение $M маркер в спецификации параметров управления форматом идентификатора определяет положение текста с управлением именем в сгенерированном идентификаторе. Например, при использовании спецификации $R$N$M, к концу идентификатора добавляется (при необходимости) текст, определяющий имя. Дополнительные сведения см. в разделе Управление именами элементов управления в сгенерированных идентификаторах.

$U

Вставка текста, указанного для $U токен. Используйте параметр Custom token text, чтобы указать этот текст.

$F

Имя метода вставки (например, _Update для метода обновления). Этот маркер доступен только для методов подсистемы.

$N

Имя вставки объекта (объекта блока, сигнала или сигнала, состояния, параметра, общей функции утилиты или объекта параметра), для которого создается идентификатор.

$R

Вставьте имя корневой модели в идентификатор, заменив неподдерживаемые символы символом подчеркивания (_) символ. При использовании ссылочных моделей этот маркер требуется в дополнение к $M (см. раздел Предотвращение конфликтов имен идентификаторов с моделями, на которые имеются ссылки).

Примечание.Этот маркер заменяет параметр Префикс имени модели на глобальные идентификаторы в предыдущих версиях.

$H

Вставка тега, указывающего уровень иерархии системы. Для блоков корневого уровня тегом является текст root_. Для блоков на уровне подсистемы тег имеет вид sN_. N - уникальный номер системы, присвоенный программным обеспечением Simulink ®. Этот маркер доступен только для методов подсистем и имен полей глобальных типов.

Примечание.Этот маркер заменяет параметр «Включить номер иерархии системы в идентификаторы» в предыдущих версиях.

$A

Аббревиатура вставки типа данных (например, i32 для целых чисел) для идентификаторов сигналов и рабочих векторов. Этот маркер доступен для выходных переменных локального блока, локальных временных переменных и имен полей глобальных типов.

Примечание.Этот маркер заменяет аббревиатуру Include data type in identifier в предыдущих версиях.

$I
  • Вставка u если аргумент является входным.

  • Вставка y если аргумент является выходным.

  • Вставка uy если аргумент является входным и выходным.

Например, rtu_ для входного аргумента, rty_ для выходного аргумента, и rtuy_ для входного и выходного аргумента. Этот маркер доступен только для аргументов метода подсистемы.

$G

Вставьте имя класса хранения, связанного с элементом данных. Этот маркер также доступен в правиле именования, указанном для файла заголовка класса хранения в словаре Embedded Coder ®.

$E

Вставьте тип файла. $E представляет следующие экземпляры типов файлов:

  • capi

  • capi_host

  • dt

  • testinterface

  • private

  • types

Этот маркер необходим для заголовочных и исходных файлов.

В поле Значения параметра управления форматом идентификатора (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)