Для поддержки пользовательской обработки файлов предоставляются следующие файлы:
Библиотека функций TLC, реализующая API шаблона кода. matlabroot/rtw/c/tlc/mw/codetemplatelib.tlccodetemplatelib.tlc также предоставляет полную документацию API в заголовках комментариев, предшествующих каждой функции.
Пример шаблона пользовательской обработки файлов (CFP), который следует использовать в качестве отправной точки для создания собственных шаблонов CFP. Рекомендации и примеры создания шаблона CFP приведены в разделе Создание исходного файла и файла заголовка с помощью шаблона пользовательской обработки файлов (CFP).matlabroot/toolbox/rtw/targets/ecoder/example_file_process.tlc
Файлы TLC, поддерживающие создание односкоростных и многоскоростных основных программных модулей (см. Пользовательская настройка генерации основных программных модулей).
После создания шаблона CFP его необходимо интегрировать в процесс создания кода с помощью поля Редактирование шаблона настройки файла. См. раздел Задание шаблонов для создания кода.
Шаблон пользовательской обработки файлов (CFP) накладывает простую структуру на процесс создания кода. Шаблон, файл шаблона генерации кода (CGT), разбивает код, сгенерированный для каждого файла, на несколько разделов. Эти разделы обобщены во встроенных маркерах CGT и соответствующих разделах кода и подразделах, определенных для встроенных разделов.
Код для каждого раздела собирается в буферы, а затем в указанном порядке передается в создаваемый файл.
Чтобы создать раздел файла, шаблон CFP должен сначала собрать код, который будет сгенерирован, в буфер. Затем для создания раздела шаблон вызывает функцию TLC.
LibSetSourceFileSection(fileH, section, tmpBuf)
где
fileH является ссылкой на создаваемый файл.
section является разделом или подразделом кода, в который должен быть выпущен код. раздел должен быть одним из имен разделов или подразделов, перечисленных в подразделах, определенных для встроенных разделов.
Определите section аргумент следующим образом:
Если подразделы, определенные для встроенных разделов, не определяют подразделы для данного раздела, используйте имя раздела в качестве section аргумент.
Если подраздел Определено для встроенных разделов определяет один или несколько подразделов для данного раздела, можно использовать либо имя раздела, либо имя подраздела в качестве section аргумент.
Если вы определили пользовательский маркер, обозначающий пользовательский раздел, не вызывайте LibSetSourceFileSection. Для пользовательских разделов предусмотрены специальные вызовы API (см. раздел Создание пользовательского раздела).
tmpBuf - буфер, содержащий код, который должен быть выдан.
Нет необходимости создавать все доступные разделы. Шаблон должен создавать только те разделы, которые требуются в конкретном файле.
Обратите внимание, что проверка законности или синтаксиса не выполняется для пользовательского кода в каждом разделе.
Типичные примеры использования см. в разделе Создание исходных и заголовочных файлов с помощью шаблона пользовательской обработки файлов (CFP).
Embedded Coder ® предоставляет расширяемый API для расширения созданного кода и создания дополнительных файлов. Параметр конфигурации модели File customization template указывает пользовательский сценарий компилятора целевого языка (TLC), который выполняется в конце процесса создания кода. С помощью этого сценария можно создать дополнительный код для интерфейса с кодом приложения.
В этом примере файл сценария TLC rtwdemofileprocess.tlc создает дополнительную функцию точки входа, rtwdemo_fileprocess, которая вызывает функцию шага и при необходимости инициализирует модель. Функция инициализации прозрачна для вызывающего абонента.
1. Открыть пример модели rtwdemo_fileprocess.
open_system('rtwdemo_fileprocess');

2. Убедитесь, что для параметра конфигурации модели Файл шаблона настройки задано значение rtwdemofileprocess.tlc двойным щелчком на желтой кнопке «Конфигурация шаблонов вида».
3. Создать код.
4. Проверьте созданный код. Дополнительная функция, rtwdemo_fileprocess, появляется в конце созданного файла rtwdemo_fileprocess.c. Точка входа объявлена extern в rtwdemo_fileprocess.h в качестве rtwdemofileprocess.tlc скрипт указывает.