exponenta event banner

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

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

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

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

Примечание

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

Параметры шаблона ERT на панели «Создание кода» > «Шаблоны» набора конфигурации в разделе «Шаблоны кода» поддерживают создание баннеров.

Функции и создание баннеров файлов:

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

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

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

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

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

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

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

  2. Откройте панель Создание кода активного набора конфигурации.

  3. Перейдите на вкладку Шаблоны (Templates).

  4. По умолчанию шаблон кода, указанный в полях Шаблоны кода: Шаблон исходного файла (* .c) и Шаблоны кода: Шаблон файла заголовка (* .h), имеет значение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 обновите связанное поле Шаблоны кода: Шаблон исходного файла (* .c) или Шаблоны кода: Шаблон верхнего колонтитула (* .h) в соответствии с именем нового файла.

  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 или 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 в меню «Свойства модели» («Моделирование» > «Параметры модели»). Этот маркер не поддерживается для ссылочных моделей в иерархии ссылок на модели.

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

Полный путь к блоку для созданной функции

BlockDescription

Пользовательский ввод из параметра «Описание блока» диалогового окна свойств блока. BlockDescription содержит необязательный атрибут токена, style. Единственное допустимое значение дляstyle является content_only, который чувствителен к регистру и заключен в двойные кавычки. Используйте content_only стиль, если требуется включить только содержимое описания блока, введенное в диалоговом окне параметров блока. Синтаксис атрибута token 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 или C++, сгенерированному из модели. Если из файла CGT опустить раздел трейлера файлов, в созданный код не будет выдан ни один трейлер файлов. В следующем разделе приведен трейлер файла по умолчанию, предоставленный в файле CGT по умолчанию.

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

[EOF]
</FileTrailer>

Маркеры, доступные для баннера, доступны для трейлера файлов. См. раздел Сводка маркеров для создания баннеров файлов.