slreportgen.finder.BlockFinder class

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

Описание

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

Конструкция

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

Примечание

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

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

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

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

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

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

расширить все

См. «свойство контейнера».

Свойства

расширить все

Схема, в которой нужно искать, заданная как одно из следующих значений:

  • Указатель на модель Simulink или подсистему

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

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

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

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

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

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

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

Методы

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

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

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

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

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

Поиск блоков Inport и Outport в модели

Поиск блоков Inport и Output в 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