Настройте сгенерированные правила именования идентификатора

Для GRT и целей RSim, генератор кода создает идентификаторы для переменных и функций в сгенерированном коде. Для целей ERT можно настроить именование идентификаторов в сгенерированном коде путем определения параметров на панели Code Generation > Identifiers в диалоговом окне Configuration Parameters. Можно также задать параметры, которые управляют идентификаторами, сгенерированными от Simulink® объекты данных. Для получения дальнейшей информации об этих параметрах, смотрите Параметры конфигурации Модели: Идентификаторы Генерации кода.

Примените правила именования к идентификаторам глобально

ЦельСпецификация
Определите максимальный номер символов, которые генератор кода использует для функции, typedef, и имена переменных (значение по умолчанию 31).Целочисленное значение для Максимального параметра длины идентификатора. Для получения дополнительной информации смотрите, Задают Длину Идентификатора, чтобы Постараться не Называть Столкновения. Если вы ожидаете, что ваша модель сгенерирует долгие идентификаторы (из-за использования длинных или названий параметра сигнала, например), или если идентификаторы искажаются больше, чем вы ожидаете, увеличиваете значение этого параметра.

Задайте макрос, который задает определенный текст, включенный в сгенерированных идентификаторах для:

  • Глобальные переменные

  • Глобальные типы

  • Имена полей глобальных типов

  • Методы подсистемы

  • Аргументы метода подсистемы

  • Локальные временные переменные

  • Локальные выходные переменные блока

  • Постоянные макросы

  • Разделяемый сервисный формат идентификатора

Макрос для параметров Identifier format control. Для получения дополнительной информации смотрите Управление форматом Идентификатора. См. также Исключения к Соглашениям Форматирования Идентификатора и Ограничения Параметров Управления форматом Идентификатора.
Определите минимальный номер символов, которые генератор кода использует для текста искажения.Целочисленное значение для Минимального параметра длины искажения. Для получения дополнительной информации смотрите, что Имя элемента управления Искажает в Сгенерированных Идентификаторах
Управляйте, сократило ли использование программного обеспечения имена для сгенерированных системой идентификаторов.

Shortened для сгенерированного Системой параметра идентификаторов. Эта установка:

  • Обеспечивает больше пробела для имен пользователей.

  • Обеспечивает более предсказуемую и сопоставимую систему именования, которая использует Camel-регистр.

  • Не включает символы нижнего подчеркивания или множественные числа.

  • Обеспечивает сопоставимые сокращения и от типа и от переменной.

Управляйте, описывает ли сгенерированный код встроенные значения параметров скаляра как литеральные значения или как макросы.

Значение Literals или Macros поскольку Сгенерировать скаляр встроил параметры как параметр.

  • Literals: Если вы устанавливаете Default parameter behavior на Inlined, параметры описываются как числовые константы.

  • Macros: Параметры описываются как переменные (с #define макросы). Эта установка делает код более читаемым.

Примените настраиваемые правила именования к идентификаторам

В этом примере показано, как применить универсальные правила именования для объектов данных Simulink®, включая сигналы, параметры и переменные памяти хранилища данных.

Когда ваша модель использует Объекты данных Simulink от Simulink пакет, идентификаторы в сгенерированном коде копируют имена объектов по умолчанию. Например, Simulink.Signal возразите названному Speed появляется как идентификатор Speed в сгенерированном коде.

Можно управлять этими идентификаторами путем определения называющих правил, которые характерны для Объектов данных Simulink. Когда вы задаете правила именования для сгенерированного кода, следуете правилам ANSI® C/C ++ для именования идентификаторов.

Примените строчное правило именования

1. Откройте модель.

model='rtwdemo_namerules';
open_system(model)

2. Откройте вкладку C Code и нажмите View Code.

3. В Параметрах конфигурации Модели перейдите к Идентификаторам> Продвинутые параметры> правила именования Объекта данных Simulink. В этой модели все три правила устанавливаются к Force lower case.

4. Сгенерируйте код для модели. Сгенерированный файл rtwdemo_namerules.c строчные идентификаторы использования для параметров.

/* Exported block parameters */
real_T f1 = 2.0;                       /* Variable: F1
                                        * Referenced by: '<Root>/Chart'
                                        */
real_T g1 = 3.0;                       /* Variable: G1
                                        * Referenced by:
                                        *   '<Root>/Chart'
                                        *   '<S3>/Gain1'
                                        */
real_T g2 = 4.0;                       /* Variable: G2
                                        * Referenced by: '<S3>/Gain2'
                                        */
real_T g3 = 5.0;                       /* Variable: G3
                                        * Referenced by: '<S2>/Gain'
                                        */

Примените правило именования Используя функцию

Можно настроить идентификаторы в сгенерированном коде путем определения функции MATLAB®.

1. Запишите функцию MATLAB, которая возвращает идентификатор путем изменения имени объекта данных, затем сохраните функцию в рабочей папке. Например, следующая функция возвращает имя идентификатора путем добавления типа данных объекта данных к имени того объекта данных.

function revisedName = append_text(name, object)
% APPEND_TEXT: Returns an identifier for generated
% code by appending text to a data object name.
%
% Input arguments:
% name: data object name as spelled in model
% object: information about model
%
% Output arguments:
% revisedName: altered identifier returned for use in
% generated code.
%
%
DataType = Simulink.data.evalinGlobal(object.modelName,[name,'.DataType']);

revisedName = [name,'_',DataType];

2. В Параметрах конфигурации Модели перейдите к Идентификаторам> Продвинутые параметры> правила именования Объекта данных Simulink. От Параметра, называющего выпадающий список, выберите Custom M-function.

3. В поле M-функции под Parameter naming, введите имя файла, который задает функцию MATLAB, append_text.m, затем нажмите Apply.

4. Сгенерируйте код для модели. Сгенерированный код реализует правило именования объекта параметра в rtwdemo_namerules.c.

/* Exported block parameters */
real_T F1_auto = 2.0;                  /* Variable: F1
                                        * Referenced by: '<Root>/Chart'
                                        */
real_T G1_auto = 3.0;                  /* Variable: G1
                                        * Referenced by:
                                        *   '<Root>/Chart'
                                        *   '<S3>/Gain1'
                                        */
real_T G2_auto = 4.0;                  /* Variable: G2
                                        * Referenced by: '<S3>/Gain2'
                                        */
real_T G3_auto = 5.0;                  /* Variable: G3
                                        * Referenced by: '<S2>/Gain'
                                        */

Задайте правило именования для класса памяти define

Можно задать правило именования, которое применяется только к Объектам данных Simulink, класс памяти которых вы устанавливаете на Define.

1. Откройте Редактор Отображений Кода. На вкладке C Code выберите Code Interface> Default Code Mappings.

2. Во вкладке Parameters Редактора Отображений Кода найдите, что строка таблицы данных пометила External Parameter Objects. Нажмите Кнопку Обновить в той строке.

3. Найдите строку в таблице данных, которая соответствует Simulink.Parameter объект G1, который находится в базовом рабочем пространстве. В выпадающем меню, набор Класс памяти для G1 к Define.

4. в Model Configuration Properties перейдите к Идентификаторам> Продвинутые параметры> правила именования Объекта данных Simulink. От #define naming выпадающий список, выберите Custom M-function.

5. В поле M-функции под #define naming, введите имя файла, который задает функцию MATLAB, append_text.m.

6. От Параметра, называющего выпадающий список, выберите Force lower case, затем нажмите Apply.

7. Сгенерируйте код для модели. Сгенерированный файл rtwdemo_namerules.h представляет G1 с G1_auto и K1 с K1_auto.

/* Definition for custom storage class: Define */
#define G1_auto                        3.0                       /* Referenced by:
                                                                  * '<Root>/Chart'
                                                                  * '<S3>/Gain1'
                                                                  */
#define K1_auto                        6.0                       /* Referenced by: '<Root>/Chart' */

Замените правила именования объекта данных

Можно заменить правила именования объекта данных для отдельных объектов данных путем определения Identifier свойство. Сгенерированный код использует текст, который вы задаете как идентификатор, чтобы представлять объект данных, независимо от именования правил.

1. Во вкладке Parameters Редактора Отображений Кода найдите строку в таблице данных, которая соответствует Simulink.Parameter объект G2. Щелкните правой кнопкой мыши по строке и выберите Open.

2. В Property Inspector перейдите к вкладке Code Generation. Задайте Identifier свойство как myIdentifier. Нажмите Apply.

3. Сгенерируйте код для модели. Сгенерированный файл rtwdemo_namerules.c представляет G2 с переменной myIdentifier.

/* Exported block parameters */
real_T f1 = 2.0;                       /* Variable: F1
                                        * Referenced by: '<Root>/Chart'
                                        */
real_T myIdentifier = 4.0;             /* Variable: G2
                                        * Referenced by: '<S3>/Gain2'
                                        */
real_T g3 = 5.0;                       /* Variable: G3
                                        * Referenced by: '<S2>/Gain'
                                        */

Смотрите также

Для просмотра документации необходимо авторизоваться на сайте