slreportgen.finder.StateFinder class

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

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

Описание

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

Конструкция

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

Примечание

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

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

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

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

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.

Примеры

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

Создайте отчет, который включает свойства всех состояний Stateflow в shift_logic график 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");
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