slreportgen.finder.StateflowDiagramElementFinder class

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

Элементы схемы поиска Stateflow

Описание

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

Конструкция

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

Примечание

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

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

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

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

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

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

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

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

Свойства

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

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

  • Указатель на блок диаграммы Stateflow

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

  • Идентификатор диаграммы Stateflow

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

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

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

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

Методы

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

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

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

Примеры

Поиск состояний и переходов Stateflow

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

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*
model_name = 'sldemo_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