slreportgen.finder. Класс StateflowDiagramElementFinder

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

Найдите элементы диаграммы Stateflow

Описание

StateflowDiagramElementFinder создает объект средства поиска, который находит элементы в схеме графика Stateflow®.

Конструкция

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

Примечание

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

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

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

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

Свойство See Container.

Свойства

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

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

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

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

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

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

Типы элементов Stateflowdiagram, чтобы найти, заданный как строка, символьный массив, массив строк или массив ячеек символьных массивов. Если тип является массивом, он задает набор типов элемента. Значением по умолчанию является 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, прокомментированные элементы исключены из результатов поиска.

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

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

Методы

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

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

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

Примеры

Найдите состояния Stateflow и переходы

Создайте отчет, который находит состояния Stateflow и переходы в модели fuelsys

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*
model_name = 'fuelsys';
load_system(model_name)

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

chartFinder = ChartDiagramFinder(model_name);
while hasNext(chartFinder)
    chart = next(chartFinder);
    chapter = Chapter("Title",chart.Name);
    add(chapter, chart)
    sect = Section("Title","States");
    stateFinder = StateFinder(chart.Object);
    states = find(stateFinder);
    for state = states
        add(sect,state)
    end  
    add(chapter,sect)

    sect = Section("Title","Transitions");
    transitionFinder = StateflowDiagramElementFinder...
       ('Container',chart.Object, 'Types', 'transition');
    transitions = find(transitionFinder);
    for transition = transitions
        add(sect,transition)
    end  
    add(chapter,sect)
    add(rpt, chapter)
end

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

Введенный в R2017b