Этот пример показывает как функциям проекта, чтобы управлять метками.
Запустите следующие команды, чтобы создать и открыть рабочую копию "sldemo_slproject_airframe" примера.
Simulink.ModelManagement.Project.projectDemo('airframe'); rebuild_s_functions('no_progress_dialog');
Building with 'gcc'. MEX completed successfully.
Используйте функцию currentProject, чтобы получить объект проекта управлять в настоящее время открытым проектом в командной строке.
project = currentProject;
Исследуйте свойство 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/BR2019ad_1035872_198992/publish_examples0/bml.batserve.038276/work/MATLAB/projects/examples/airframe5/custom_tasks/analyzeModelFiles.m" Labels: [1x1 matlab.project.Label] Revision: "" SourceControlStatus: NotUnderSourceControl
Найдите информацию о присоединенных метках файла путем индексации в свойство Labels объекта файла. Следующая команда присоединила первую метку к этому конкретному файлу.
label = aFile.Labels(1); disp(label);
Label with properties: File: "/tmp/BR2019ad_1035872_198992/publish_examples0/bml.batserve.038276/work/MATLAB/projects/examples/airframe5/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/BR2019ad_1035872_198992/publish_examples0/bml.batserve.038276/work/MATLAB/projects/examples/airframe5/utilities/rebuild_s_functions.m" DataType: 'none' Data: [] Name: "Design" CategoryName: "Classification"
Чтобы найти метку по наименованию, используйте findLabel на объекте файла.
label = findLabel(file, 'Classification','Design'); disp(label);
Label with properties: File: "/tmp/BR2019ad_1035872_198992/publish_examples0/bml.batserve.038276/work/MATLAB/projects/examples/airframe5/utilities/rebuild_s_functions.m" DataType: 'none' Data: [] Name: "Design" CategoryName: "Classification"
Необходимо создать новые метки, прежде чем можно будет присоединить их к файлу. Вы задаете метки в категориях, давая каждой категории имя и поддерживаемый тип данных.
Следующий код создает категорию меток под названием Инженеры, которые могут использоваться, чтобы обозначить принадлежность файла в проекте. Эти метки имеют тип данных 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/BR2019ad_1035872_198992/publish_examples0/bml.batserve.038276/work/MATLAB/projects/examples/airframe5/utilities/rebuild_s_functions.m" DataType: 'char' Data: 'Maintenance responsibility' Name: "Sam" CategoryName: "Engineers"