Этот пример показывает как функциям Проекта Simulink®, чтобы управлять метками.
Запустите следующие команды, чтобы создать и открыть рабочую копию "sldemo_slproject_airframe" примера.
Simulink.ModelManagement.Project.projectDemo('airframe'); rebuild_s_functions('no_progress_dialog');
Starting: Simulink Initializing: Project Path Setting up working folders Identifying shadowed project files Building with 'gcc'. MEX completed successfully.
Используйте функцию simulinkproject, чтобы получить объект проекта управлять в настоящее время открытым Проектом Simulink в командной строке.
project = simulinkproject;
Исследуйте свойство Files проекта. Свойство Files содержит массив объектов файла, один для каждого файла в проекте.
files = project.Files; disp(files);
1x30 ProjectFile array with properties: Path Labels Revision SourceControlStatus
Можно использовать индексацию, чтобы получить доступ к файлам в этом массиве. Следующая команда получает номер документа 2. Каждый файл имеет два свойства, описывающие его путь и присоединенные метки.
aFile = files(2); disp(aFile);
ProjectFile with properties: Path: '/tmp/BR2018bd_909044_106362/publish_examples1/bml.batserve.106183/work/MATLAB/projects/slexamples/airframe/custom_tasks/analyzeModelFiles.m' Labels: [1x1 slproject.Label] Revision: '' SourceControlStatus: NotUnderSourceControl
Найдите информацию о присоединенных метках файла путем индексации в свойство Labels объекта файла. Следующая команда присоединила первую метку к этому конкретному файлу.
label = aFile.Labels(1); disp(label);
Label with properties: File: '/tmp/BR2018bd_909044_106362/publish_examples1/bml.batserve.106183/work/MATLAB/projects/slexamples/airframe/custom_tasks/analyzeModelFiles.m' DataType: 'none' Data: [] Name: 'Analysis' CategoryName: 'Classification'
Следующий код присоединяет маркировать 'Design' в категории 'Классификации' ко всем файлам в проекте с.m расширением файла.
Сначала получите список файлов:
files = project.Files;
Затем цикл через каждый файл и присоединяют маркировать 'Design' от категории 'Классификации', если файл имеет расширение.m.
for fileIdx = 1:numel(files) file = files(fileIdx); [~, ~, fileExtension] = fileparts(file.Path); if strcmp(fileExtension,'.m') addLabel(file, 'Classification', 'Design'); end end
Можно установить и запросить данные по метке, которая присоединена к файлу. Для этого сначала необходимо найти объект файла. Можно сделать это цикличным выполнением через все файлы в проекте, как показано на предыдущем шаге. Также можно использовать функцию findFile на проекте.
Следующий код находит объект файла для файла 'utilities/rebuild_s_functions. m.
pathToLocate = fullfile('utilities','rebuild_s_functions.m'); file = findFile(project, pathToLocate);
Исследуйте свойство Labels получить массив объектов Метки, один для каждой метки, присоединенной к файлу.
labels = file.Labels; disp(labels);
Label with properties: File: '/tmp/BR2018bd_909044_106362/publish_examples1/bml.batserve.106183/work/MATLAB/projects/slexamples/airframe/utilities/rebuild_s_functions.m' DataType: 'none' Data: [] Name: 'Design' CategoryName: 'Classification'
Чтобы найти метку по наименованию, используйте findLabel на объекте файла.
label = findLabel(file, 'Classification','Design');
Необходимо создать новые метки, прежде чем можно будет присоединить их к файлу. Вы задаете метки в категориях, давая каждой категории имя и поддерживаемый тип данных.
Следующий код создает категорию меток под названием Инженеры, которые могут использоваться, чтобы обозначить принадлежность файла в проекте. Эти метки имеют тип данных char для присоединения данных Строки.
createCategory(project,'Engineers','char'); engineersCategory = findCategory(project, 'Engineers'); createLabel(engineersCategory,'Sam'); createLabel(engineersCategory,'Pat'); createLabel(engineersCategory,'Alex');
Можно теперь присоединить метку Сэма от категории 'Инженеров' до файла в проекте.
addLabel(file, 'Engineers', 'Sam'); label = findLabel(file, 'Engineers', 'Sam');
Следующие наборы команд данные для присоединенной метки.
label.Data = 'Maintenance responsibility';
disp(label)
Label with properties: File: '/tmp/BR2018bd_909044_106362/publish_examples1/bml.batserve.106183/work/MATLAB/projects/slexamples/airframe/utilities/rebuild_s_functions.m' DataType: 'char' Data: 'Maintenance responsibility' Name: 'Sam' CategoryName: 'Engineers'