slreportgen.finder. Класс StateFinder

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

Найдите состояния Stateflow

Описание

Находит состояния Stateflow®.

Конструкция

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

Примечание

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

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

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

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

Свойство See Container.

Свойства

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

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

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

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

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

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

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

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

Пример: finder.Properties = {'ArrowSize','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 в некоторое время цикле.

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

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

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

Примеры

Найдите состояния Stateflow

Создайте отчет, который включает свойства всех состояний Stateflow в графике shift_logic модели sf_car.

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

model_name = 'sf_car';
load_system(model_name);

rpt = slreportgen.report.Report('output','pdf');
open(rpt)

add(rpt, TitlePage("Title",...
    sprintf('States in %s Model',model_name)));
add(rpt, TableOfContents);

chartFinder = ChartDiagramFinder(model_name);
charts = find(chartFinder);
while hasNext(chartFinder)
    diagram = next(chartFinder);
    stFinder = StateFinder(diagram.Object);
    states = find(stFinder);
    if ~isempty(states)
        chapter = Chapter("Title",diagram.Name);
        add(chapter,diagram)
        for state = states
           sect = Section("Title","States");       
           add(sect,states)
        end
        add(chapter,sect)
        add(rpt,chapter)
    end
end

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

Введенный в R2017b