Автоматизируйте управление меткой в проекте Simulink

Этот пример показывает как функциям Проекта 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'

Дополнительная информация

Проектная документация Simulink

Была ли эта тема полезной?