exponenta event banner

Настройка процесса построения с помощью sl_customization.m

Файл настройки Simulink ® sl_customization.m - механизм, позволяющий использовать MATLAB ® для настройки интерфейса процесса сборки. Программное обеспечение Simulink считывает sl_customization.m при наличии файла на пути MATLAB, когда он запускается и настройки, указанные в файле, применяются к сеансу Simulink. Для получения дополнительной информации о sl_customization.m см. раздел Регистрация настроек.

Файл sl_customization.m

sl_customization.m файл может использоваться для регистрации специфичных для установки функций подключения, которые будут вызываться в процессе построения. Функции захвата, с помощью которых выполняется регистрация sl_customization.m дополняют зацепы системного целевого файла (STF) (описанные в разделе Настройка процесса построения с помощью STF_make_rtw_hook File) и команды создания посткодов (описанные в разделе Настройка обработки построений посткодового поколения).

На следующем рисунке показана взаимосвязь между крючками уровня установки и другими доступными механизмами настройки процесса сборки.

Регистрация функций захвата процесса построения с помощью sl_customization.m

Для регистрации функций захвата на уровне установки, которые вызываются в процессе сборки, создается функция MATLAB с именем sl_customization.m и включить его в путь MATLAB установки Simulink, которую требуется настроить. sl_customization функция принимает один аргумент: дескриптор объекта диспетчера настройки. Например,

function sl_customization(cm)

В качестве отправной точки для ваших настроек, sl_customization сначала функция должна получить настройки по умолчанию (заводские), используя следующую инструкцию назначения:

hObj = cm.RTWBuildCustomizer;

Затем следует вызвать методы для регистрации настроек. Объект диспетчера настройки включает в себя следующий метод регистрации настроек обработчика обработчиков построения:

  • addUserHook(hObj, hookType, hook)

    Регистрирует сценарий или функцию захвата MATLAB, указанные hook для этапа процесса построения, представленного hookType. Допустимые значения для hookType являются 'entry', 'before_tlc', 'after_tlc', 'before_make', 'after_make', и 'exit'.

Этот метод используется для регистрации специфичных для установки функций захвата в экземпляре sl_customization функция.

Программное обеспечение Simulink считывает sl_customization.m при запуске файла. При последующем изменении файла необходимо перезапустить сеанс Simulink или ввести следующую команду в окне команд для включения изменений:

sl_refresh_customizations

Переменные, доступные для функций sl_customization.m Hook

Следующие переменные доступны для sl_customization.m функции захвата для использования:

  • modelName - название модели Simulink (действительно для всех этапов);

  • dependencyObject - Объект, содержащий зависимости созданного кода (действителен только для 'after_make' этап)

Сценарий hook может напрямую обращаться к допустимым переменным. Функция hook может передавать допустимые переменные в качестве аргументов функции. Например:

hObj.addUserHook('after_make', 'afterMakeFunction(modelName,dependencyObject);');

Пример настройки процесса построения с помощью sl_customization.m

sl_customization.m файл, показанный в примере, sl_customization.m для настроек процесса построения, использует addUserHook метод для указания специфичных для установки зацепов процесса сборки, которые должны быть вызваны в 'entry' и 'after_tlc' этапы процесса построения. Для получения информации об исходном коде функции hook см. примеры CustomRTWEnteyHook.m и CustomRTWPostProcessHook.m.

Пример 1. sl_customization.m для настройки процесса построения
function sl_customization(cm)
% Register user customizations

% Get default (factory) customizations
hObj = cm.RTWBuildCustomizer;

% Register build process hooks
hObj.addUserHook('entry', 'CustomRTWEntryHook(modelName);');
hObj.addUserHook('after_tlc', 'CustomRTWPostProcessHook(modelName);');

end
Пример 2. CustomRTWEntryHook.m
function [str, status] = CustomRTWEntryHook(modelName)
str =sprintf('Custom entry hook for model ''%s.''',modelName);
disp(str)
status =1;
Пример 3. CustomRTWPostProcessHook.m
function [str, status] = CustomRTWPostProcessHook(modelName)
str =sprintf('Custom post process hook for model ''%s.''',modelName);
disp(str)
status =1;

При включении указанных выше трех файлов в путь MATLAB установки Simulink, которую требуется настроить, в выводимых на экран выходных данных для построений появляются сообщения о кодированной функции захвата. Например, при открытии модели на основе ERT rtwdemo_udt, откройте панель Создание кода (Code Generation) диалогового окна Параметры конфигурации (Configuration Parameters) и нажмите клавиши Ctrl + B, чтобы инициировать построение, и отобразятся следующие сообщения:

>> rtwdemo_udt

### Starting build procedure for model: rtwdemo_udt
Custom entry hook for model 'rtwdemo_udt.'
Custom post process hook for model 'rtwdemo_udt.'
### Successful completion of build procedure for model: rtwdemo_udt
>> 

Связанные темы