slreportgen.finder.DiagramElementFinder class

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

Создайте объект средства поиска элемента диаграммы

Описание

Находит элементы в блоке Simulink® или схеме графика Stateflow®.

Конструкция

finder = DiagramElementFinder(diagram) создает средство поиска, которое находит элементы схемы блока Simulink или диаграммы Stateflow. По умолчанию это средство поиска находит блоки, аннотации, линии, состояния и другие элементы в схеме. Используйте свойства средства поиска ограничить поиск к определенным типам элементов.

Примечание

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

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

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

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

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

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

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

Свойство See Container.

Свойства

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

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

  • Обработайте к блоку Simulink

  • Путь к блоку Simulink

  • Обработайте к блоку диаграммы Stateflow

  • Путь к блоку диаграммы Stateflow

  • ID диаграммы Stateflow

  • Объект диаграммы Stateflow

Типы Simulink или элементов диаграммы Stateflow, чтобы найти в виде строки, символьного массива, массива строк или массива ячеек символьных массивов. Если тип является массивом, он задает набор типов элемента. Значением по умолчанию является All или all, который находит все элементы во всех схемах. Используйте одно из этих значений, чтобы ограничить поиск к определенным типам элемента диаграммы. Можно использовать или полностью определенное имя или краткое название.

Полностью определенное имяКраткое название
Allall
Simulink.Annotationannotation
Simulink.Blockblock
Simulink.Segmentline
Simulink.Portport
Stateflow.Annotationsf_annotation
Stateflow.Boxbox
Stateflow.EMFunctionemfunction
Stateflow.Functionfunction
Stateflow.Junctionjunction
Stateflow.SLFunctionslfunction
Stateflow.Statestate
Stateflow.Transitiontransition
Stateflow.TruthTabletruthtable

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

Варианты, чтобы искать схемы в виде строки или вектора символов. Значением по умолчанию является Active. Допустимые значения:

  • All — Все варианты

  • Active — Только активные варианты

  • ActivePlusCode — Все активные варианты и варианты кода

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

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

Методы

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

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

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

Примеры

Найдите блок, аннотацию и линейные элементы

Найдите блок, аннотацию и элементы диаграммы линии на поисковую глубину 1 в f14 модель.

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

model_name = 'f14';
load_system(model_name);

rpt = slreportgen.report.Report('output','pdf');
add(rpt, TitlePage("Title",sprintf('%s Model',...
    model_name)));
add(rpt, TableOfContents);

diagFinder = SystemDiagramFinder("Container", ...
     model_name,"SearchDepth",1);
while hasNext(diagFinder)
    system = next(diagFinder);
    chapter = Chapter("Title",system.Name);
    add(chapter,system);
    sect = Section("Title","Diagram Elements");
    elemFinder = DiagramElementFinder("Container", ...
        system.Object, "Types",...
        ["block" "annotation" "line"]);
    elems = find(elemFinder);
    for elem = elems
        add(sect, elem);
    end  
    add(chapter, sect);
    add(rpt, chapter);
end

close(rpt);
close_system(model_name);
rptview(rpt);

Введенный в R2017b