slreportgen.finder.BlockFinder class

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

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

Описание

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

Конструкция

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

Примечание

Это средство поиска обеспечивает два способа получить результаты поиска:

  1. Чтобы возвратить результаты поиска как массив, используйте find метод. Добавьте результаты непосредственно в отчет или обработайте результаты в a for цикл.

  2. Чтобы выполнить итерации через результаты по одному, используйте hasNext и next методы в a while цикл.

Никакая опция не имеет преимущество эффективности.

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

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

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

Свойство See Container.

Свойства

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

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

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

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

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

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

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

ЗначениеОписание
"Active"Активные варианты (значение по умолчанию)
"All"Все варианты
"ActivePlusCode"Активные варианты и варианты кода

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

Пример: 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.

Примеры

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

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

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

model_name = 'slrgex_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