Сгенерируйте пользовательский файл и функциональные баннеры

Используя файлы шаблона генерации кода (CGT), можно задать пользовательские баннеры файла и функциональные баннеры для файлов сгенерированного кода. Баннеры файла являются разделами комментария в заголовке и разделами трейлера сгенерированного файла. Функциональные баннеры являются разделами комментария для каждой функции в сгенерированном коде. Используйте эти баннеры, чтобы добавить оператор авторского права компании, задать символ специальной версии для вашей системы управления конфигурацией, удалить метки времени, и во многих других целях. Эти баннеры могут содержать символы, которые распространяют к сгенерированному коду.

Чтобы задать баннеры, создайте пользовательский файл CGT с индивидуально настраиваемыми разделами баннера. Процесс сборки создает исполняемый файл TLC из файла CGT. Процесс генерации кода затем вызывает файл TLC.

Вы не должны быть знакомы с TLC, программирующим, чтобы сгенерировать пользовательские баннеры. Можно изменить файлы в качестве примера, которые предоставляются целью ERT.

Примечание

Предшествующие релизы поддержали прямое использование индивидуально настраиваемых файлов TLC как шаблоны баннера. Вы задали их с Исходным файлом (.c) шаблон баннера и Заголовочный файл (.h) опции шаблона баннера цели ERT. Можно все еще использовать пользовательский шаблон баннера файла TLC, однако, можно теперь использовать файлы CGT вместо этого.

Опции шаблона ERT на Code Generation> панель Templates конфигурации модели, в разделе Code templates, поддерживают генерацию баннера.

Опции для функции и генерации баннера файла:

  • Шаблоны кода: Исходный файл (*.c) шаблон: файл CGT, чтобы использовать при генерации источника (.c или .cpp) файлы. Поместите этот файл в путь MATLAB®.

  • Шаблоны кода: Заголовочный файл (*.h) шаблон: файл CGT, чтобы использовать при генерации заголовка (.h) файлы. Необходимо поместить этот файл в путь MATLAB. Этот файл может быть тем же шаблоном, заданным в поле Code templates: Source file (*.c) template, в этом случае идентичные баннеры сгенерированы в исходных и заголовочных файлах.

    По умолчанию шаблоном и для исходных и для заголовочных файлов является matlabroot/toolbox/rtw/targets/ecoder/ert_code_template.cgt.

  • В каждом из этих полей нажмите Browse, чтобы перейти к и выбрать существующий файл CGT для использования в качестве шаблона. Нажмите Edit, чтобы открыть заданный файл в редактор MATLAB, где можно настроить его.

Создайте пользовательский файл и функциональный шаблон баннера

Чтобы настроить файл CGT для пользовательской генерации баннера, сделайте локальную копию шаблона кода по умолчанию и отредактируйте его, можно следующим образом:

  1. Активируйте конфигурацию модели, с которой вы хотите работать.

  2. Откройте панель Code Generation активной конфигурации модели.

  3. Кликните по вкладке Templates.

  4. По умолчанию шаблоном кода, заданным в полях Code templates: Source file (*.c) template и Code templates: Header file (*.h) template, является matlabroot/toolbox/rtw/targets/ecoder/ert_code_template.cgt.

  5. Если вы хотите использовать различный шаблон в качестве своей начальной точки, нажмите Browse, чтобы определить местоположение и выбрать файл CGT.

  6. Нажмите кнопку Edit, чтобы открыть файл CGT в редактор MATLAB.

  7. Сохраните локальную копию файла CGT. Сохраните копию в папке, которая находится вне структуры папок MATLAB, но на пути MATLAB. При необходимости добавьте папку в путь MATLAB.

  8. Если вы намереваетесь использовать файл CGT с пользовательской целью, определить местоположение файла CGT в папке под вашей целевой корневой папкой.

  9. Переименуйте свою локальную копию файла CGT. Когда вы переименовываете файл CGT, обновляете связанное поле Code templates: Source file (*.c) template или Code templates: Header file (*.h) template, чтобы совпадать с новым именем файла.

  10. Отредактируйте и настройте локальную копию файла CGT для генерации баннера, использование информации, предоставленной в, Настраивает Файл Шаблона генерации кода (CGT) для Файла и Функциональной Генерации Баннера.

  11. Сохраните свои изменения в файле CGT.

  12. Нажмите Apply, чтобы обновить конфигурацию модели.

  13. Сохраните свою модель.

  14. Сгенерируйте код. Исследуйте сгенерированный источник и заголовочные файлы, чтобы подтвердить, что они содержат баннеры, заданные шаблоном или шаблонами.

Настройте файл Шаблона генерации кода (CGT) для файла и функциональной генерации баннера

В этом разделе описывается отредактировать файл CGT для пользовательского файла и функциональной генерации баннера. Для описания файлов CGT смотрите Файлы Шаблона генерации кода (CGT).

Компоненты Файла и Функциональных Разделов Баннера в файле CGT

В файле CGT можно изменить следующие разделы: баннер файла, функциональный баннер, совместно использовал баннер служебной функции и трейлер файла. Каждый раздел задан открытыми и близкими тегами. Теги, характерные для каждого раздела, показывают в следующей таблице.

Раздел файла CGTОткрытый тегЗакройте тег
Баннер файла<FileBanner></FileBanner>
Функциональный баннер<FunctionBanner></FunctionBanner>
Разделяемо-служебный баннер<SharedUtilityBanner></SharedUtilityBanner>
Трейлер файла<FileTrailer></FileTrailer>

Можно настроить баннеры включением лексем и комментариев между открытым и близким тегом для каждого раздела. Лексемы обычно являются переменными TLC, например, <ModelVersion>, которые заменяются значениями в сгенерированном коде.

Примечание

Включая C комментируют индикаторы, '/*' или '* / ', в содержимом вашего баннера может ввести ошибку в сгенерированном коде.

Открытый тег включает атрибуты тега. Заключите значение атрибута в двойных кавычках. Атрибуты, доступные для открытого тега:

  • width: задает ширину файла или функциональных комментариев баннера в сгенерированном коде. Значение по умолчанию равняется 80.

  • style: задает контур для файла или функциональных комментариев баннера в сгенерированном коде.

Открытый синтаксис тега следующие:

<OpenTag style = “style_value” width = “num_width”>

Примечание

Если параметр Configuration Parameters > Code Generation > Language устанавливается на C++, выбрать стиль комментария, который использует обозначение комментария C (/*...*/), необходимо также установить параметр Configuration Parameters > Comments > Comment style на Multi-line.

Встроенные параметры стиля для style атрибут:

  • classic

    /* single line comments */
    /*
     * multiple line comments
     * second line
     */

  • classic_cpp

    // single line comments
    //
    // multiple line comments
    // second line
    //

  • box

    /**********************************************************/
    /* banner contents                                        */
    /**********************************************************/

  • box_cpp

    ////////////////////////////////////////////////////////////
    // banner contents                                        //
    ////////////////////////////////////////////////////////////

  • open_box

    /**********************************************************
     * banner contents
     **********************************************************/

  • open_box_cpp

    ////////////////////////////////////////////////////////////
    // banner contents
    ////////////////////////////////////////////////////////////

  • doxygen

    /** single line comments */
    
    /**
     * multiple line comments
     * second line
     */

  • doxygen_cpp

    /// single line comments
    
    ///
    /// multiple line comments
    /// second line
    ///

  • doxygen_qt

    /*! single line comments */
    
    /*!
     * multiple line comments
     * second line
     */

  • doxygen_qt_cpp

    //! single line comments
    
    //!
    //! multiple line comments
    //! second line
    //!

Баннер файла

Этот раздел содержит комментарии и лексемы для использования в генерации пользовательского баннера файла. Баннер файла предшествует коду C or C++, сгенерированному моделью. Если вы не используете раздел баннера файла из файла CGT, то никакой баннер файла не испускает к сгенерированному коду.

Примечание

Если вы настраиваете свой баннер файла, программное обеспечение не испускает индивидуально настраиваемый баннер для файла const_params.c.

Следующий раздел является разделом баннера файла, которому предоставляют файл CGT по умолчанию, matlabroot/toolbox/rtw/targets/ecoder/ert_code_template.cgt.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Custom file banner section (optional)
%%
<FileBanner style="classic">
File: %<FileName>

Code generated for Simulink model %<ModelName>.

Model version                        : %<ModelVersion>
Simulink Coder version               : %<RTWFileVersion>
C/C++ source code generated on       : %<SourceGeneratedOn>
%<CodeGenSettings>
</FileBanner>

Сводные данные лексем для генерации баннера файла

FileName

Имя сгенерированного файла (например, "rtwdemo_udt.c").

FileType

Любой "source" или "header". Определяет, является ли сгенерированным файлом .c или .cpp файл или .h файл.

FileTag

Учитывая имена файлов file.c или .cpp и file.h; тегами файла является "file_c" и "file_h", соответственно.

ModelName

Имя генерации модели.

ModelVersion

Номер версии модели.

Description

Описание модели задано в файле CGT или тексте, заданном во вкладке Descripton в Model Properties (Modeling> Model Settings). Эта лексема не поддерживается для моделей, на которые ссылаются, в иерархии модели - ссылки.

RTWFileVersion

Номер версии model.rtw файл.

RTWFileGeneratedOn

Метка времени model.rtw файл.

TLCVersion

Версия компилятора выходного языка.

SourceGeneratedOn

Метка времени сгенерированного файла.

CodeGenSettings

Настройки генерации кода для модели: выходной язык, целевой выбор, производственный аппаратный выбор, тестирует аппаратный выбор, цели генерации кода (в порядке приоритетов), и Советник Генерации кода результат валидации.

Функциональный баннер

Этот раздел содержит комментарии и лексемы для использования в генерации пользовательского функционального баннера. Функциональный баннер предшествует C или функции C++, сгенерированной во время процесса сборки. Если вы не используете функциональный раздел баннера из файла CGT, функциональный баннер по умолчанию испускает к сгенерированному коду. Следующий раздел является функциональным разделом баннера по умолчанию, которому предоставляют файл CGT по умолчанию, matlabroot/toolbox/rtw/targets/ecoder/ert_code_template.cgt.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Custom function banner section (optional)
%%   Customize function banners by using the following predefined tokens:
%% %<ModelName>, %<FunctionName>, %<FunctionDescription>, %<Arguments>,
%% %<ReturnType>, %<GeneratedFor>, %<BlockDescription>.
%%
<FunctionBanner style="classic">
%<FunctionDescription>
%<BlockDescription>
</FunctionBanner>

Сводные данные лексем для функциональной генерации баннера

FunctionName

Имя функции

Arguments

Список аргументов функции

ReturnType

Возвратите тип функции

ModelName

Имя генерации модели

FunctionDescription

Короткий краткий обзор о функции

GeneratedFor

Полный блок path для сгенерированной функции

BlockDescription

Ввод данных пользователем от параметра Block Description диалогового окна свойств блока. BlockDescription содержит дополнительный маркерный атрибут, style. Единственное допустимое значение forstyle content_only, который является чувствительным к регистру и вложенным в двойных кавычках. Используйте content_only разработайте, когда это необходимо, чтобы включать только содержимое описания блока, которое вы ввели в диалоговое окно параметров блоков. Синтаксис для маркерного атрибута style :

%<BlockDescription style = "content_only">

Разделяемый баннер служебной функции

Разделяемый раздел баннера служебной функции содержит комментарии и лексемы для использования в генерации пользовательского разделяемого баннера служебной функции. Разделяемый баннер служебной функции предшествует C, или C++ совместно использовал служебную функцию, сгенерированную во время процесса сборки. Если вы не используете разделяемый раздел баннера служебной функции из файла CGT, совместно использованный баннер служебной функции значения по умолчанию испускает к сгенерированному коду. Следующий раздел является совместно использованным разделом баннера служебной функции значения по умолчанию, которому предоставляют файл CGT по умолчанию, matlabroot/toolbox/rtw/targets/ecoder/ert_code_template.cgt.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Custom shared utility function banner section (optional)
%%   Customize banners for functions generated in shared location by using the
%% following predefined tokens: %<FunctionName>, %<FunctionDescription>,
%% %<Arguments>, %<ReturnType>.
%%
<SharedUtilityBanner style="classic">
%<FunctionDescription>
</SharedUtilityBanner>

Сводные данные лексем для разделяемой генерации баннера служебной функции

FunctionName

Имя функции

Arguments

Список аргументов функции

ReturnType

Возвратите тип функции

FunctionDescription

Короткий краткий обзор о функции

Трейлер файла

Раздел трейлера файла содержит комментарии для генерации пользовательского трейлера файла. Трейлер файла следует за кодом C or C++, сгенерированным из модели. Если вы не используете раздел трейлера файла из файла CGT, никакой трейлер файла не испускает к сгенерированному коду. Следующий раздел является трейлером файла по умолчанию, обеспеченным в файле CGT по умолчанию.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Custom file trailer section (optional)
%%
<FileTrailer style="classic">
File trailer for generated code.

[EOF]
</FileTrailer>

Лексемы, доступные для баннера файла, доступны для трейлера файла. См. Сводные данные Лексем для Генерации Баннера Файла.