slreportgen.finder. Класс BlockFinder

Пакет: slreportgen.finder
Суперклассы:

Найдите блоки Simulink

Описание

Находит блоки в схеме Simulink®.

Конструкция

finder = BlockFinder(diagram) создает средство поиска, которое находит по умолчанию все типы блоков в заданной Диаграмме Simulink. Чтобы ограничить поиск к определенным типам блоков, используйте свойства средства поиска.

Примечание

Это средство поиска имеет два способа найти, что объекты — находят режим итератора и режим. В режиме находки используйте его метод find, чтобы возвратить результаты поиска как массив результатов. Затем используйте цикл for, чтобы обработать результаты. В режиме итератора используйте его hasNext и методы next, чтобы возвратить результаты поиска по одному. Используя эти методы итератора, используйте некоторое время цикл, чтобы обработать результаты. Ни один из этих методов не имеет преимущество производительности перед другим, так используйте или режим в зависимости от того, предпочитаете ли вы в то время как или циклы for.

finder = BlockFinder(Name,Value) свойства наборов с помощью пар "имя-значение". Можно задать несколько аргументов пары "имя-значение" в любом порядке. Заключите каждое имя свойства в одинарные кавычки.

Входные параметры

развернуть все

Свойство See Container.

Свойства

развернуть все

Схематически изобразите, в котором можно искать, заданный как одно из этих значений:

  • Обработайте к модели Simulink или подсистеме

  • Путь к модели Simulink или подсистеме

Тип блока, чтобы найти, такие как Усиление, заданное как строка или символьный массив или набор типов блока, чтобы найти, заданный как массив строк или массив ячеек символьных массивов.

Включать ли прокомментированные блоки в результаты поиска, заданные как логическое. Если false, прокомментированные блоки исключены из результатов поиска.

Свойства объектов найти, заданный как массив ячеек пар "имя-значение". Средство поиска возвращает только объекты, которые имеют заданные свойства с заданными значениями.

Пример: finder.Properties = {'Gain','5'}

Методы

results = find(finder) находит блоки в diagram заданными средством поиска. Этот метод возвращает блоки, которые он находит перенесенным в объекты результата типа slreportgen.finder.BlockResult. Чтобы добавить таблицы свойств блока, добавьте объекты результатов непосредственно в отчет или добавьте их в генератор отчетов, который вы затем добавляете в отчет. Отчеты, в которые можно добавить results этого метода, должны иметь отчеты типа slreportgen.report.Report

tf = hasNext(finder) определяет, если схема, что поисковые запросы средства поиска содержат по крайней мере один блок. Если схема имеет по крайней мере один блок, очереди метода hasNext, которые блокируются как следующий блок, который возвратит метод next. Метод hasNext затем возвращает true. Используйте метод next, чтобы получить тот блок. На последующих вызовах метод hasNext определяет, имеет ли схема блок, который еще не получил метод next. Это ставит блок в очередь для метода next, чтобы получить и возвращает true. Если больше нет блоков, которые будут получены, этот метод возвращает false. Чтобы прогрессивно искать схему блоки, используйте метод hasNext с методом next в некоторое время цикле.

result = next(finder) возвращает следующий поисковый result в очереди результата, которую создал метод hasNext. Этот метод возвращает блок, который он находит перенесенным в объект результата типа slreportgen.finder.BlockResult. Чтобы добавить таблицы свойств блока, добавьте объект результата в отчет непосредственно или добавьте его в генератор отчетов, который вы затем добавляете в отчет. Отчеты, в которые можно добавить results этого метода, должны иметь тип slreportgen.report.Report.

Копировать семантику

Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

Найдите блоки Inport и выходного порта в модели

Найдите блоки Inport и Вывода в модели sf_car.

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*

model_name = 'sf_car';
load_system(model_name)
rpt = slreportgen.report.Report('output','pdf');

add(rpt,TitlePage("Title",...
     sprintf('I/O Blocks in %s Model',model_name)));
add(rpt,TableOfContents);

diagFinder = SystemDiagramFinder(model_name);
diagFinder.IncludeRoot = false;
while hasNext(diagFinder)
    diagram = next(diagFinder);
    chapter = Chapter("Title",diagram.Name);
    add(chapter,diagram)
    sect = Section("Title","Inport Blocks");
    ioFinder = BlockFinder(diagram.Object);
    ioFinder.BlockTypes = "Inport";
    blocks = find(ioFinder);
    for block = blocks
        add(sect,block)
    end  
    add(chapter,sect);
    sect = Section("Title","Outport Blocks");
    ioFinder = BlockFinder(diagram.Object);
    ioFinder.BlockTypes = "Outport";
    outblocks = find(ioFinder);
    for block = outblocks
        add(sect,block)
    end  
    add(chapter,sect)
    add(rpt,chapter)
end
close(rpt)
close_system(model_name)
rptview(rpt)

Введенный в R2017b